class Primer::Beta::Link
Use ‘Link` for navigating from one page to another. `Link` styles anchor tags with default blue styling and hover text-decoration.
def before_render
def before_render raise ArgumentError, "href is required" if @system_arguments[:href].nil? && !Rails.env.production? end
def call
def call if tooltip.present? render Primer::BaseComponent.new(tag: :span, position: :relative) do render(Primer::BaseComponent.new(**@system_arguments)) do content end.to_s + tooltip.to_s end else render(Primer::BaseComponent.new(**@system_arguments)) do content end end end
def initialize(href: nil, scheme: DEFAULT_SCHEME, muted: false, underline: false, **system_arguments)
-
system_arguments
(Hash
) -- <%= link_to_system_arguments_docs %> -
underline
(Boolean
) -- Whether or not to underline the link. -
muted
(Boolean
) -- Uses light gray for Link color, and blue on hover. -
scheme
(Symbol
) -- <%= one_of(Primer::Beta::Link::SCHEME_MAPPINGS.keys) %> -
href
(String
) -- URL to be used for the Link. Required. If the requirements are not met an error will be raised in non production environments. In production, an empty link element will be rendered.
def initialize(href: nil, scheme: DEFAULT_SCHEME, muted: false, underline: false, **system_arguments) @system_arguments = deny_tag_argument(**system_arguments) @id = @system_arguments[:id] @system_arguments[:tag] = :a @system_arguments[:href] = href @system_arguments[:classes] = class_names( @system_arguments[:classes], SCHEME_MAPPINGS[fetch_or_fallback(SCHEME_MAPPINGS.keys, scheme, DEFAULT_SCHEME)], "Link", "Link--muted" => muted, "Link--underline" => underline ) end