Fjord
v0.1 · specimen 2026-05-04

Fjord.
Loud at the edges.

A working showcase of the design system. Tokens are locked in — everything below is built from them.

01 Typography

Three families, one voice.

A Display — Archivo

Massive, tight, unflinching.

B Body — Space Grotesk

Geometric warmth that reads at length. Used for paragraphs, form fields, and most of the interface text. Pairs cleanly against Archivo without competing.

C Mono — IBM Plex Mono

labels, code, captions, status · tabular numbers 0123456789

Type scale — ratio 1.383

xs8.4pxThe grid is a frame
sm11.6pxThe grid is a frame
md16pxThe grid is a frame
lg22.1pxThe grid is a frame
xl30.6pxThe grid is a frame
2xl42.3pxThe grid is a frame
3xl58.5pxThe grid
disp81pxFrame

Body specimen

Setting body text against thick rules and oversized display creates a hierarchy that doesn’t need decoration. Adjust line-height and tracking to find the breathing room that works for your specific font pairing — then leave it alone.

Brutalist accents are for emphasis, not ornament. One hot color can cover primary action, focus state, and active selection. If you find yourself reaching for a second, ask whether the first one is doing enough.

02 Color

Cream, ink, one hot accent.

bg#f1ece1
surface#e6dfcd
ink#16130f
muted#6e6555
accent#ff4314
a-ink#ffffff

The accent is reserved. Primary action, focus, single emphasis — never decoration.

03 Components

Buttons, inputs, controls.

Buttons

Form fields

Drop files here or click to choose · images, PDFs, ZIPs

Breadcrumbs & pagination

Progress

A 32% · uploading
B 78% · rendering

Stepper

01 Choose stack Type, color, ratio
02 Lock tokens Export to canon
03 Build kit In progress
04 Ship v0.1 release

Avatars

JD KA MR +3
JD KA MR SK +9

Tooltip

Tabs

Overview — tabs use the same thick rule as section dividers, anchored to a 12px baseline. Active state inverts to ink.

Activity — auto-pairing by source order. Each <section> after the <header> binds to the button at the same index.

Settings — arrow keys, Home, and End move between tabs and switch the panel in one step (auto-activation).

Billing — full ARIA: role=tablist/tab/tabpanel, aria-selected, aria-controls, and roving tabindex.

Badges

Default Solid Accent Outline Live New

Callouts

Note

Keep accents reserved for primary attention. The thick left bar already pulls the eye.

Heads up

Accent variant for higher-priority callouts — warnings, blocking issues, important context.

04 Data

Cards, tables, numbers.

Stat cards

Active users
12,840
19200
210400
311200
410800
512100
611900
712840
↑ 8.2% wow
Conversion
3.91%
14.21
24.08
34.17
43.96
54.02
63.88
73.91
↓ 0.26pt wow
Revenue
$48.2k
132100
228400
335200
441800
538600
644900
748200
All-time high

Sparklines (inline)

Word-sized trends sit next to numbers without breaking line height — signups +12.4% · churn −0.4pt · uptime 99.97%

Data table

Project Owner Status Tasks Updated
Specimen sheet jane Active 28 2h
Token export pipeline kai Review 11 6h
Dark variant audit mira Draft 4 1d
Component coverage jane Done 62 3d

Bar chart

Mon
8,420
Tue
11,180
Wed
9,640
Thu
12,800
Fri
17,640
Sat
10,400
Sun
7,620

Line chart

A Plain
DayUsers
Mon8420
Tue11180
Wed9640
Thu12800
Fri17640
Sat10400
Sun7620
B Plain · with area
WkRevenue
W132100
W228400
W335200
W441800
W538600
W648200
W744900
W852700
C Accent · loud
DayUsers
Mon8420
Tue11180
Wed9640
Thu12800
Fri17640
Sat10400
Sun7620
D Accent · with area
WkRevenue
W132100
W228400
W335200
W441800
W538600
W648200
W744900
W852700

Pie chart

StatusCount
Complete61
In progress27
Blocked12

Donut (progress ring)

Capacity Complete Of target

Gauge (filled level)

Capacity Complete Of target

Lists

A Plain
  • Cream base, ink rules
  • Single hot accent for primary action
  • No radius, no soft shadows
  • Mono for labels and captions
B Numbered
  1. Pick the type stack first
  2. Lock the scale ratio
  3. Choose one accent — only one
  4. Build components from there
05 Patterns

Overlays & empty states.

Modal

Esc or click backdrop to close

Loader

Loading

Empty state

[ ]

No projects yet

Create your first project to see it appear here. You can spin one up from the dashboard or import an existing token sheet.

06 Code

Tokens in a single sheet.

/* drop into any page */
        :root {
            --font-display: "Archivo", system-ui, sans-serif;
            --font-body:    "Space Grotesk", system-ui, sans-serif;
            --font-mono:    "IBM Plex Mono", ui-monospace, monospace;

            --fs-base:    16px;
            --fs-ratio:   1.383;

            --wt-display: 800;
            --lh-tight:   0.95;
            --lh-body:    1.55;
            --tr-display: -0.035em;
            --tr-caption: 0.12em;

            --sp:         8px;
            --rule:       2px;
            --rule-thick: 12px;
            --radius:     0px;

            --bg:         #f1ece1;
            --surface:    #e6dfcd;
            --ink:        #16130f;
            --muted:      #6e6555;
            --accent:     #ff4314;
            --accent-ink: #ffffff;
        }
Confirm action

You’re about to lock the current tokens as the canonical sheet. This will overwrite any tokens already in tokens.css.