# Link

Level: atom.

## Purpose and use

Navigate to a destination using a native anchor. Use Button for an operation with no destination. Supply descriptive destination text and a real href; the default # is a preview value.

## Anatomy and behavior

The anchor renders linkText and a configurable font. State presets render hover, pressed and focused examples. Disabled removes href, sets aria-disabled and removes sequential keyboard focus; it does not implement a separate router or output event.

## Accessibility and content

Native anchor activation and browser link behavior apply while enabled. Focused is a visual preset, not a focus() command. Disabled only suppresses the native destination; custom parent click handlers must respect the intended disabled state.

## Local component contract

This is the current owned contract for `component.link`. Behavior above was checked
against the local implementation, template and focused tests listed below.
Historical migration evidence does not override these current sources.

### Public type values

`WblLinkState`: `Default | Hover | Pressed | Disabled | Focused` (case-sensitive). linkText/href/font are strings; font defaults to the description-accent typography token.

### Classes and selectors

- `WblLinkComponent` — `wbl-link` (src/app/design-system/primitives/link/link.component.ts).

### Inputs

- `WblLinkComponent.linkText = input('Link')`
- `WblLinkComponent.href = input('#')`
- `WblLinkComponent.state = input<WblLinkState>('Default')`
- `WblLinkComponent.font = input('var(--typography-description-accent-lion)')`

### Models

- None.

### Outputs

- None.

### Slots and projection markers

- The exact template has no Angular content-projection slot.

### Local evidence

- Behavior/template: `src/app/design-system/primitives/link/link.component.html` (reviewed in D-025, 2026-09-05).

- Code: `src/app/design-system/primitives/link/link.component.ts`.
- Focused test: `src/app/design-system/primitives/link/link.component.spec.ts`.
- Public export: `export * from './primitives/link/link.component';` in `src/app/design-system/index.ts`.
- Storybook: `storybook/stories/link.stories.ts` (`Design System/Primitives/wbl-link`).

## Figma status

This runtime contract does not infer a Figma owner. Assembly evidence, when
verified, is maintained separately through the inventory-linked sidecar.

## Provenance

The archived source-document copy is historical evidence only. The active
resolver is local code/test/export and the exact Storybook story above.
