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)

Parameters:
  • 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