Link

A navigation primitive — moves the user to a destination without state change.

Live previewrendered from recipe via {tokens} resolution
ARIA notes

Use semantic <a> with href. Never use a <button> styled as a link or vice versa. Distinguish links from buttons by behaviour: links navigate, buttons do.

When to use Link

Use a link to navigate to a destination. Links are for reading; buttons are for doing. The distinction is invariant.

When to use

  • Cross-references between pages, articles, or sections.
  • External resources (with target="_blank" and rel="noopener noreferrer").
  • Inline navigation within prose.

When not to use

  • For actions — even visually styled as a link. Buttons handle actions; links handle navigation. The distinction matters for keyboard users (Space activates a button, Enter activates a link), screen readers (different roles), and the user's mental model (links don't perform work).

Underlines are non-negotiable

PointSav links carry an underline at all times. Hover does not add the underline; it changes colour. Removing the underline is an anti-pattern that depends on colour alone (WCAG 1.4.1) — links indistinguishable from prose without the underline fail accessibility.

Visited state

Visited links shift to interactive-primary-pressed. This is optional in the substrate's recipe (some surfaces — search results, navigation toolbars — should not differentiate visited). The recipe ships with visited styling on; remove via .ps-link:not(.ps-link--no-visited):visited in customer themes.