Design system Actions and links

Link

Navigation in text: prose links, object names, contact protocols, and the way back. A link navigates; a button acts.

.mk-link.mk-object-link.mk-contact-link.mk-backlink

Overview

A link navigates; a button acts. The base link carries navigation inside text: accent ink with an underline in the same colour. On hover the ink shifts to a clearly deeper tone and the underline strengthens. Object, contact and back links change the resting emphasis to match their navigation context.

Usage

  • Navigate without changing dataA link moves to another view, record, document, anchor, or external protocol. Use a button when the primary result is an operation.
  • Match the variant to the destinationUse Prose link within a sentence, Object link when the visible object name is the destination, Contact link for telephone or email, and Backlink for a parent or preceding view.
  • Write destination-led textThe label identifies where the link goes. Avoid generic labels that hide the destination or describe an unrelated implementation detail.

Variants

A link inherits the surrounding type rather than carrying a size tier. Choose the variant by the kind of destination and the role the linked text plays.

VariantSpecimenTokenUse
Prose link Link .mk-link Linked words name a destination inside a sentence or paragraph.
Object link Object link .mk-object-link An object's visible name and outline open mark lead to that object's destination.
Contact link +968 9 000 0000 .mk-contact-link A telephone number or email hands navigation to its operating-system protocol.
Backlink ← Go back .mk-backlink A quiet directional route opens the parent or preceding view.
External destination External link (opens in a new tab) target="_blank" The external mark supplements any link that opens a new browser tab.

States

Every state below is the real component wearing that state, not a picture of it. The columns share one set of kinds so a state can be read across them.

  • Rest preserves each variant's roleProse and Contact links use accent ink, Object link uses full ordinary ink with the outline open mark, and Backlink uses its arrow instead of a resting underline.
  • Hover strengthens navigation intentThe text and icon move to a visibly deeper accent, and every visible underline becomes 2px in the link's current colour.
  • Keyboard focus uses one shared outlineThe standard 2px camel ring hugs the linked words without changing the variant's resting treatment.

Do and don't

Read the full description.

Do

The linked words name the destination. The sentence reads whole even if the link is ignored.

For the full description, click here.

Don't

"Click here" names nothing. Read out of context — which is how assistive technology lists links — it is a destination with no name.

Do

The icon carries the kind, the value is the link. Nothing says "Phone:".

Don't

The word restates what the icon or the value's own shape already says — an icon replaces a label, and a number shaped like a phone number needs neither.

Do

The arrow and label state the direction before the press.

Don't

Without the arrow, the phrase reads like ordinary copy instead of directional navigation.

Copy

  • Link the name, not the verbThe linked words are the destination's own name — full description, never click here or a lone here.
  • ShortA few words. A whole linked sentence underlines itself into noise.
  • Names and values verbatimAn object link is the object's own name; a contact link is the number or address as written. Nothing prepended, nothing paraphrased.
  • The backlink states directionUse “Go back” or the concise parent name.

Accessibility

  • A real anchorAn <a href>, so it opens in a new tab on request and shows in the links list — never a span with a handler.
  • Marked without colourThe base link's resting underline, the object link's quiet rule, the backlink's arrow, the contact link's protocol context — every kind survives monochrome.
  • The external mark speaksVisible arrow, and the words "opens in a new tab" for the screen reader.
  • The surrounding row carries the target floorA text link is not padded into a button box; its line or row supplies the touch height.

When to reach for something else

  • It does somethingUse Button. Acting dressed as moving breaks the reader's model of what a press costs.
  • The whole tile navigatesUse Card — its container owns the full-tile target while the visible object link continues to name the destination.
  • The row acts instead of navigatingUse Row action.

Markup

<!-- in prose -->
Open the <a class="mk-link" href="/destination">full description</a>.

<!-- leaving the page -->
<a class="mk-link" href="…" target="_blank" rel="noopener">
  external link
  <svg data-mk-icon="external" aria-hidden="true"></svg><span class="mk-sr-only"> (opens in a new tab)</span>
</a>

<!-- an object's name -->
<a class="mk-object-link" href="/objects/123">
  Object name<svg class="mk-object-link-mark" data-mk-icon="open" aria-hidden="true"></svg>
</a>

<!-- a contact fact, inside its icon-fact -->
<span class="fact-row">
  <svg data-mk-icon="phone" aria-hidden="true"></svg>
  <a class="mk-contact-link" href="tel:+96890000000">+968 9 000 0000</a>
</span>

<!-- the way up, above the page title -->
<a class="mk-backlink" href="/parent">← Go back</a>
<h1>Page title</h1>