ActionsStable

Link

Sourcecomponents/Link.astro

Overview

3 sizes × 4 states, on light, dark & image — the whole link system. No underline; the colour and trailing arrow carry it.

Anatomy

The link’s internal spacing — label, then the gap to the trailing arrow. No underline.

  • Text — body size · Medium 500 (matches the copy)
  • Label ↔ arrow gap — --space-xs (8px)
  • Arrow — 1em, tracks the text size · nudges 3px right on hover
  • No underline — colour + arrow mark it as a link

Props

PropTypeDefaultNotes
href string — Destination. Required.
size 'body-1' | 'body-2' | 'body-3' 'body-2' Matches the body text it sits next to.
surface 'light' | 'dark' 'light' Violet on white; 'dark' turns it white for dark sections and imagery.
external boolean false Opens in a new tab and swaps the forward arrow for an up-right one.

Usage

Match size to the surrounding text. It's always a standalone, forward link with the arrow — for a mid-sentence link use Inline Link.

<!-- Standalone forward action -->
<Link href="/services">Learn more</Link>
<Link href="/work" size="body-1">See the work</Link>

<!-- On a dark section or image -->
<Link href="/work" surface="dark">See the work</Link>

<!-- Off-site -->
<Link href="https://…" external>Read the case study</Link>

Rules

Do

Use it as a standalone, forward link — "Learn more →", "See the work →".

Switch to surface="dark" on dark sections and imagery.

Don't

Drop it inside a sentence — that's Inline Link (no arrow).

Use it for menu or footer navigation — that's Nav Item.