Sharp · Warm · Intellectual
A design system
rooted in northern forests.
Created for a clean and lightweight design. Framework-agnostic tokens and component classes. Zero runtime, zero framework dependency.
About
A design system that knows what it is.
From the Old Saxon farn — feather-leaf, forest floor, northern ground.
Farn is built on one conviction: a design system should have a point of view. Not neutral components, but a coherent vocabulary — warm enough to feel human, sharp enough to feel considered. Four token palettes, a two-layer semantic architecture, and component classes with light and dark surface variants.
Architecture
Tokens all the way down.
Three tiers, each building on the last. Swap a palette token and the entire system updates. Components never reference raw colours.
Palette tokens
Named colour, spacing, type, and motion values. The raw vocabulary — never referenced by components directly.
--fo1-fern--in0-void--space-mdSemantic tokens
Purpose-named aliases that resolve per theme and surface. Light, dark, and surface overrides cascade automatically.
--color-bg--color-accent--color-textComponent tokens & classes
Opt-in CSS classes built on top of semantic tokens. Override at the component level without touching the palette.
.btn.btn-p.card.badgePalette
Four palettes.
One vocabulary.
The token story
One component. Every surface.
Toggle the theme — tokens resolve automatically. The card, badge, and button below share no hardcoded colours.
Included
The complete token system.
CSS tokens
Two-layer architecture: palette → semantic. Custom properties that resolve automatically with data-theme and data-surface.
Component classes
Shipped CSS classes for buttons, cards, badges, forms, and more. Load farn-components.css alongside the token bundle.
Zero dependencies
Pure CSS custom properties. Load from CDN or install from npm. Works with any stack — React, Vue, Svelte, plain HTML, or none.
Ready to build
Start building
with Farn.
CSS tokens and component classes. No runtime, no framework, no build step.
Just add the stylesheet and start building.


