Version 2.1 · synced from niklausgerber.com 33deff2

Design system

Catalogue

Every foundation, component, pattern, and page template of niklausgerber.com, rendered from the live code.

01

How it works

Five layers, each built from the one before: foundations (the values), components (one part, such as a tile), patterns (parts working together, such as navigation), templates (a whole page type), and pages: the live site itself, shown as a specimen on each template page and linked from there.

Examples are taken from the live pages by selector and rendered, each in its own frame at its real width, with the live stylesheet and scripts copied into site/ by scripts/sync-from-site.sh. A few examples that a script creates or that need a forced state are composed from the live classes and say so. Component examples show the relevant widths in light and dark; template specimens follow your system’s light or dark setting. Pattern recordings are made from the live code by scripts/record-patterns.py.

scripts/check.sh fails when the site has moved on and site/ has not been synced (it needs a clone of the website beside this repo), when the catalogue is not rebuilt from its sources, when an example no longer matches its page, when a link is broken, when a token pair falls below its contrast, or when the recordings are older than the scripts they show. It cannot judge whether the prose still describes the site correctly: that is what the review before each release is for.

This build: site commit 33deff2 (“site.css: offer heading sets its size once; drop unused .tldr and .close-links-2”), synced 12 November 2026.

02

Foundations

03

Components

Navigation

Page structure

Content

Actions

Illustration

Accessibility

04

Patterns

05

Templates