Skip to content

Add link element#87

Draft
oliverabrahams wants to merge 8 commits intomainfrom
oa/link-text
Draft

Add link element#87
oliverabrahams wants to merge 8 commits intomainfrom
oa/link-text

Conversation

@oliverabrahams
Copy link
Copy Markdown
Contributor

@oliverabrahams oliverabrahams commented Apr 28, 2026

What does this change?

Adds the Link Element to the design system. It builds off the React Aria Link.

It has the same props as that link with one additional one for the typography variant, defaulting to body-sm

How has this change been tested?

It has been used in storybook but has not been dogfooded anywhere.

How can we measure success?

This component gets used in the upcoming migration of the Newsletters tool.

Have we considered potential risks?

Low risk, It is mostly just a few styles on top of the ReactAria Link

Link

A text link for navigation.

When to use

  • To navigate to another page, route or destination
  • When you need link semantics with keyboard and screen reader support

Links with an href will be handled by the browser, or via a client side router.
Links without an href will be rendered as a <span role="link"> instead of an <a>.
Use the onPress event to handle user interaction. If the intent is to trigger an action (not navigation), use the button component.

Example usage

import { Link } from '@guardian/stand/link';

/* types, if required */
import type { LinkProps, LinkTheme } from '@guardian/stand/link';

<Link>Hello</Link>;

Props

Name Type Required Default Description
children React.ReactNode No N/A Content to render inside the component.
href string No N/A Link destination URL.
theme LinkTheme No N/A Custom theme overrides.
cssOverrides SerializedStyles No N/A Custom CSS styles.
className string No N/A Additional class name(s).
isDisabled boolean No false Disables interaction and applies disabled styling to the link.
typography TypographyVariant No body-sm Typography variant to apply to the link text.
...props Omit<RACLinkProps, 'children'> No N/A All additional props supported by react-aria-components Link.

Accessibility

@oliverabrahams oliverabrahams added the 🐥 Canaries Release a canary version of `@guardian/stand` label Apr 28, 2026
# Conflicts:
#	src/index.ts
@oliverabrahams oliverabrahams added the feature Departmental tracking: work on a new feature label Apr 28, 2026
@github-actions
Copy link
Copy Markdown

Note

The following canaries were published to NPM:

🐥

@github-actions github-actions Bot removed the 🐥 Canaries Release a canary version of `@guardian/stand` label Apr 28, 2026
@github-actions
Copy link
Copy Markdown

Note

The following canaries were published to NPM:

🐥

@oliverabrahams oliverabrahams added the 🐥 Canaries Release a canary version of `@guardian/stand` label Apr 28, 2026
@github-actions github-actions Bot removed the 🐥 Canaries Release a canary version of `@guardian/stand` label Apr 28, 2026
@github-actions
Copy link
Copy Markdown

Note

The following canaries were published to NPM:

🐥

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 28, 2026

Dependency Compatibility Matrix

React Emotion TypeScript RAC Typecheck Unit E2E Build Overall
17 11.11.4 ~5.0 1.13.0 ok ok ok ok
17 11.11.4 ~5.0 1.17.0 ok ok ok ok
17 11.11.4 ~5.1 1.13.0 ok ok ok ok
17 11.11.4 ~5.1 1.17.0 ok ok ok ok
17 11.11.4 ~5.9 1.13.0 ok ok ok ok
17 11.11.4 ~5.9 1.17.0 ok ok ok ok
17 11.14.0 ~5.0 1.13.0 ok ok ok ok
17 11.14.0 ~5.0 1.17.0 ok ok ok ok
17 11.14.0 ~5.1 1.13.0 ok ok ok ok
17 11.14.0 ~5.1 1.17.0 ok ok ok ok
17 11.14.0 ~5.9 1.13.0 ok ok ok ok
17 11.14.0 ~5.9 1.17.0 ok ok ok ok
18 11.11.4 ~5.0 1.13.0 ok ok ok ok
18 11.11.4 ~5.0 1.17.0 ok ok ok ok
18 11.11.4 ~5.1 1.13.0 ok ok ok ok
18 11.11.4 ~5.1 1.17.0 ok ok ok ok
18 11.11.4 ~5.9 1.13.0 ok ok ok ok
18 11.11.4 ~5.9 1.17.0 ok ok ok ok
18 11.14.0 ~5.0 1.13.0 ok ok ok ok
18 11.14.0 ~5.0 1.17.0 ok ok ok ok
18 11.14.0 ~5.1 1.13.0 ok ok ok ok
18 11.14.0 ~5.1 1.17.0 ok ok ok ok
18 11.14.0 ~5.9 1.13.0 ok ok ok ok
18 11.14.0 ~5.9 1.17.0 ok ok ok ok
19 11.14.0 ~5.0 1.13.0 ok ok ok ok
19 11.14.0 ~5.0 1.17.0 ok ok ok ok
19 11.14.0 ~5.1 1.13.0 ok ok ok ok
19 11.14.0 ~5.1 1.17.0 ok ok ok ok
19 11.14.0 ~5.9 1.13.0 ok ok ok ok
19 11.14.0 ~5.9 1.17.0 ok ok ok ok

Columns show granular outcomes for each dependency set: ok = passed, fail = failed, skip = upstream failure prevented running later stages. Overall: ✅ all passed, ⚠️ only skips (no hard fails), ❌ at least one fail.
Last updated: 2026-04-28T13:06:19.175Z (commit a764174)

@oliverabrahams oliverabrahams added the run_chromatic Run the chromatic/storybook action. label Apr 28, 2026
@oliverabrahams oliverabrahams added the 🐥 Canaries Release a canary version of `@guardian/stand` label Apr 28, 2026
@github-actions
Copy link
Copy Markdown

Note

The following canaries were published to NPM:

🐥

@github-actions github-actions Bot removed the 🐥 Canaries Release a canary version of `@guardian/stand` label Apr 28, 2026
@oliverabrahams oliverabrahams changed the title Oa/link text Add link element Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Departmental tracking: work on a new feature run_chromatic Run the chromatic/storybook action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant