Skip to content

Commit 0e7809d

Browse files
Jeffrey Lauwersclaude
andcommitted
docs: SkipLink documenteren en statistieken bijwerken (v5.22.0)
- SkipLink toegevoegd aan README.md component tabel (Accessibility Components) - docs/03-components.md: nieuwe Accessibility Components sectie met SkipLink specs - docs/changelog.md: v5.22.0 entry - Statistieken bijgewerkt: 50 componenten, 1292 tests, 64 test suites Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent ec7d836 commit 0e7809d

4 files changed

Lines changed: 97 additions & 13 deletions

File tree

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ pnpm --filter @dsn/design-tokens watch
6565
# Start Storybook in development mode
6666
pnpm dev
6767

68-
# Run tests (1282 tests across 63 test suites)
68+
# Run tests (1292 tests across 64 test suites)
6969
pnpm test
7070

7171
# Run tests in watch mode
@@ -211,6 +211,12 @@ All components are fully typed with TypeScript and include comprehensive JSDoc d
211211
| **MenuLink** | Yes | Yes ||
212212
| **PageHeader** | Yes | Yes ||
213213

214+
**Accessibility Components (1)**
215+
216+
| Component | HTML/CSS | React | Web Component |
217+
| ------------ | -------- | ----- | ------------- |
218+
| **SkipLink** | Yes | Yes ||
219+
214220
**Form Components (25)**
215221

216222
| Component | HTML/CSS | React | Web Component |
@@ -384,7 +390,7 @@ Comprehensive documentation is available in the `/docs` folder:
384390

385391
- **Pre-commit hooks** via Husky + lint-staged (ESLint + Prettier)
386392
- **Type checking** across all packages (`pnpm type-check`)
387-
- **1282 tests** covering React components, Web Components, and utilities
393+
- **1292 tests** covering React components, Web Components, and utilities
388394
- **CI/CD** via GitHub Actions (lint, type-check, test, build)
389395

390396
## Tech Stack

docs/03-components.md

Lines changed: 68 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Components
22

3-
**Last Updated:** April 6, 2026
3+
**Last Updated:** April 9, 2026
44

55
Complete component specifications and guidelines for the Design System Starter Kit.
66

@@ -14,8 +14,9 @@ Complete component specifications and guidelines for the Design System Starter K
1414
4. [Display & Feedback Components](#display--feedback-components)
1515
5. [Navigation Components](#navigation-components)
1616
6. [Branding Components](#branding-components)
17-
7. [Form Components](#form-components)
18-
8. [Web Components Registration](#web-components-registration)
17+
7. [Accessibility Components](#accessibility-components)
18+
8. [Form Components](#form-components)
19+
9. [Web Components Registration](#web-components-registration)
1920

2021
---
2122

@@ -2200,6 +2201,66 @@ const [isOpen, setIsOpen] = React.useState(false);
22002201

22012202
---
22022203

2204+
## Accessibility Components
2205+
2206+
**Status:** Complete (HTML/CSS, React) — 1 component total
2207+
2208+
### SkipLink
2209+
2210+
**Status:** Complete (HTML/CSS, React)
2211+
2212+
**Location:** `packages/components-{html|react}/src/skip-link/` / `SkipLink/`
2213+
2214+
**Tokens:** `tokens/components/skip-link.json`
2215+
2216+
**Props:** `href` (required), `children` (default: `"Ga direct naar de hoofdinhoud"`), `className` + alle `React.AnchorHTMLAttributes<HTMLAnchorElement>` attributen
2217+
2218+
**Features:**
2219+
2220+
- Eerste focusbaar element op de pagina — plaatsen vóór `<header>` en `<nav>` in de DOM
2221+
- Standaard verborgen via `clip-path: inset(50%)` — blijft in de accessibility tree (screenreaders kunnen het vinden)
2222+
- Zichtbaar bij `:focus-visible` — gepositioneerd in de hoek van het viewport met focus-stijlen
2223+
- Z-index 600 — boven modals (500), drawer (500) en backdrop (400)
2224+
- Voldoet aan WCAG 2.1 succescriterium 2.4.1 (Bypass Blocks, Level A)
2225+
- `React.forwardRef<HTMLAnchorElement>`
2226+
2227+
**CSS-klassen:**
2228+
2229+
| Klasse | Element | Beschrijving |
2230+
| --------------- | ------- | -------------------------------------------------- |
2231+
| `dsn-skip-link` | `<a>` | Verbergt de link; onthult hem bij `:focus-visible` |
2232+
2233+
**Design Tokens:**
2234+
2235+
| Token | Waarde | Beschrijving |
2236+
| ------------------------------------- | ------------------------ | ---------------------------------------------------- |
2237+
| `--dsn-skip-link-z-index` | `600` | Boven modals en backdrop |
2238+
| `--dsn-skip-link-padding-block` | `{dsn.space.block.md}` | Verticale padding bij focus |
2239+
| `--dsn-skip-link-padding-inline` | `{dsn.space.inline.lg}` | Horizontale padding bij focus |
2240+
| `--dsn-skip-link-border-radius` | `{dsn.border.radius.md}` | Afgeronde hoeken bij focus |
2241+
| `--dsn-skip-link-offset-block-start` | `{dsn.space.block.md}` | Afstand van boven het viewport bij focus |
2242+
| `--dsn-skip-link-offset-inline-start` | `{dsn.space.inline.md}` | Afstand van de linkerkant van het viewport bij focus |
2243+
2244+
**Usage:**
2245+
2246+
```html
2247+
<!-- HTML/CSS — altijd als eerste element in <body> -->
2248+
<a href="#main-content" class="dsn-skip-link">Ga direct naar de hoofdinhoud</a>
2249+
<header>...</header>
2250+
<main id="main-content" tabindex="-1">...</main>
2251+
```
2252+
2253+
```tsx
2254+
// React
2255+
<SkipLink href="#main-content">Ga direct naar de hoofdinhoud</SkipLink>
2256+
<header>...</header>
2257+
<main id="main-content" tabIndex={-1}>...</main>
2258+
```
2259+
2260+
**Tests:** React (10 tests)
2261+
2262+
---
2263+
22032264
## Form Components
22042265

22052266
**Status:** Complete (HTML/CSS, React) — 25 components total
@@ -2511,15 +2572,15 @@ defineButton('my-custom-button');
25112572

25122573
## Component Statistics
25132574

2514-
**Total Components:** 49
2575+
**Total Components:** 50
25152576

25162577
**Implementations:**
25172578

2518-
- **HTML/CSS:** 49 components
2519-
- **React:** 49 components (1282 tests total, 63 test suites)
2579+
- **HTML/CSS:** 50 components
2580+
- **React:** 50 components (1292 tests total, 64 test suites)
25202581
- **Web Component:** 7 components (Button, Heading, Icon, Link, OrderedList, Paragraph, UnorderedList)
25212582

2522-
**Test Coverage:** 1282 tests across 63 test suites
2583+
**Test Coverage:** 1292 tests across 64 test suites
25232584

25242585
---
25252586

docs/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Design System Documentation
22

3-
**Version:** 5.18.0
4-
**Last Updated:** April 4, 2026
3+
**Version:** 5.22.0
4+
**Last Updated:** April 9, 2026
55

66
Complete documentation voor het Design System Starter Kit.
77

@@ -91,8 +91,8 @@ Complete documentation voor het Design System Starter Kit.
9191

9292
- **Tokens per configuration:** ~1100 (400 semantic + 700 component)
9393
- **Configurations:** 8 (2 themes × 2 modes × 2 project types)
94-
- **Components:** 48 (5 layout + 10 content + 9 display/feedback + 1 branding + 3 navigation + 25 form; HTML/CSS + React)
95-
- **Tests:** 1248 across 62 test suites
94+
- **Components:** 50 (5 layout + 10 content + 9 display/feedback + 1 branding + 5 navigation + 25 form + 1 accessibility; HTML/CSS + React)
95+
- **Tests:** 1292 across 64 test suites
9696
- **Storybook stories:** 130+
9797

9898
---

docs/changelog.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,23 @@ All notable changes to this project are documented in this file.
66

77
---
88

9+
## Version 5.22.0 (April 9, 2026)
10+
11+
### SkipLink component (issue #148, PR #149)
12+
13+
#### Added
14+
15+
- **SkipLink** component — toegankelijkheidskoppeling als eerste focusbaar element op de pagina (PR #149)
16+
- Standaard verborgen via `clip-path: inset(50%)`; zichtbaar bij `:focus-visible` in de hoek van het viewport
17+
- Voldoet aan WCAG 2.1 succescriterium 2.4.1 (Bypass Blocks, Level A)
18+
- `href` prop (verplicht), `children` prop (default: `"Ga direct naar de hoofdinhoud"`), `React.forwardRef<HTMLAnchorElement>`
19+
- 6 design tokens: `z-index: 600`, padding-block/inline, border-radius, offset-block/inline-start
20+
- Z-index 500 toegevoegd aan `modal-dialog.json` en `drawer.json`
21+
- `backdrop.json` comment bijgewerkt met volledige z-index schaal: backdrop (400) → modal-dialog/drawer (500) → skip-link (600)
22+
- 10 React tests
23+
24+
---
25+
926
## Version 5.21.1 (April 6, 2026)
1027

1128
### Fix: PageHeader large viewport verfijningen (PR #146)

0 commit comments

Comments
 (0)