Design System
Foundations · Getting started

Getting started.

One shared source of truth for the Akku product surface. Nineteen reference pages, every token paste-ready, every pattern wired to the same variables. This is the front door — read it once, then come back when you need to look something up.

19 pages reference surfaces
5 sections start · color · type · foundations · content
180+ tokens css vars, one file
AA WCAG 2.2 default

Three ways in

Pick the one that fits. Most teammates land on (2) first — the system is meant to be scanned, not read.

01 · Designing

Open a reference page.

Every page is self-contained: ramps, role aliases, in-use examples, and the paste-ready CSS. Start with Palette and Type.

Mental model — tokens first, compositions second.

02 · Building

Pull the tokens.

All variables live in _shared.css. Import once at the root; reference tokens, never raw hex.

<link rel="stylesheet"
  href="_shared.css">
03 · Reviewing

Check the patterns.

Before reinventing — confirm we don't already have one. Patterns covers empty, loading, confirm, forms, and feedback.

If the pattern doesn't exist, propose one.

File structure

Flat. One HTML per reference page, two shared stylesheets, no build step. You can open any file directly in a browser.

No build tools

Pages reference _shared.css for tokens and shell chrome; component pages also pull components.css. Change a variable in one place, every page updates.

akku-design-system/ ├── index.html # this directory's front page ├── _shared.css # tokens + shell: required ├── components.css # component primitives │ ├── start/ │ ├── getting-started.html │ └── logo.html ├── color/ │ ├── iris.html coral.html teal.html │ ├── state.html neutrals.html │ └── palette.html ├── type/ type.html ├── foundations/ │ ├── spacing.html layout.html │ ├── motion.html dark.html │ └── a11y.html └── content/ ├── voice.html patterns.html ├── components.html icons.html └── dataviz.html

Tokens

Three layers. Pick the highest-level one that fits — it's the one that survives a re-theme.

Reference tokens

Raw scale values — ramps, spacing steps, radii. Don't reference these in product code; they exist so the role tokens can move.

/* reference — do not consume directly */
--iris-500:  #8D58FE;
--coral-500: #FF7F50;
--teal-500:  #0ABAB5;
--space-4:   16px;
--radius-md: 8px;

Role & alias tokens

What you actually use. Every role resolves to a reference token — swapping the reference updates every consumer.

/* role — consume these */
--color-primary:  var(--iris-500);
--color-danger:   #DC2626;
--ink:            #0F172A;
--ink-muted:      #475569;
--bg-elev:        #FFFFFF;
--rule:           #E2E8F0;

Section map

The whole system, in one glance. Every page, grouped by where it sits.

House rules

Six rules everyone agrees to. These apply before taste, after needs.

Do

Reach for a token first

If it exists, use it. If it almost exists, propose an extension. Raw hex values in product code get reverted.

Don't

Don't invent parallel systems

If the button isn't in Components, it should be — not forked into a one-off stylesheet.

Do

Ship AA by default

Contrast, focus, targets, reduced-motion — the a11y page is the contract. If you need to break it, document the exception.

Don't

Don't localize the voice

Every surface sounds the same. Pillars are plain · calm · respectful — no exclamations, no emoji, no "please".

Do

Copy the patterns

Empty states, errors, confirmations — use the recipes. We've already chosen how those moments read.

Don't

Don't hand-roll motion

Three easings, five durations — that's the kit. Custom curves only for genuinely novel moments, reviewed with design.

Found a gap?

The system grows from real product needs, not speculation. If you're about to hand-roll something — open a proposal first. Two lines describing the problem beat a polished RFC.