Skip to content
Work Services Packages About Brand Signal Test Book a call

Proof of practice · Brand Development

Our system,
in public

This is not a case study about a design system. It is the design system this page is rendered from. Every token below is live — change one value in tokens.css and this page changes with the rest of the site. If we could not hold our own rules, you should not let us write yours.

Tokens
48 custom properties
Type families
3
Components
24 in the library
Source of truth
tokens.css
01

Colour

Eight values with defined roles. A colour without a role is decoration, and decoration gets used inconsistently by definition.

Aubergine

--k-ink

#1E0A1E

Page ground. Everything sits on this.

Surface

--k-ink-2

#2C1230

Raised surfaces — cards, widgets, rows.

Surface 2

--k-ink-3

#3A1A3E

Second-level raise inside a surface.

Mint

--k-mint

#3DFFAE

Primary action. One per screen region.

Magenta

--k-magenta

#C21E7A

Emphasis and the left edge of the aberration.

Cream

--k-cream

#F5F3EC

Primary text. Never pure white.

Aqua

--k-aqua

#C6F5E8

Code, tertiary accent, stripe segment.

Yellow

--k-yellow

#F5E61A

Attention. Used sparingly or it stops working.

The one rule that matters

Mint is the action colour and nothing else. The moment a mint element is not clickable, every mint element stops meaning anything. Same rule, different colour, applies in any system worth having.

02

Type

League Gothic compressed for display, Lato for anything you have to read, JetBrains Mono for labels and data. Three families, no exceptions, no decorative fourth.

TokenFamilySize (px)Use
--k-t-megaLeague Gothic56 → 160Hero only. One per page.
--k-t-xxlLeague Gothic42 → 100h1 on interior pages.
--k-t-xlLeague Gothic34 → 68Section headings.
--k-t-lgLeague Gothic25 → 38Large card headings.
--k-t-mdLeague Gothic27Standard h3.
--k-t-ledeLato17 → 21Lede paragraphs.
--k-t-baseLato16.5Body copy.
--k-t-labelJetBrains Mono11Labels, eyebrows, buttons.

Live specimen

Systems, not visuals

Lede text carries the argument. It is dimmed rather than sized down, so the hierarchy survives being read on a phone at arm's length.

Body copy sits at 16.5px with a 1.65 line height. Long enough to read comfortably, short enough that a paragraph does not become an obligation.

Labels are mono, uppercase, letter-spaced

03

The signature

Every system needs one thing that is unmistakably yours. Ours is chromatic aberration — a magenta and mint RGB split on display type, borrowed from a printing error and used deliberately.

Most brands are broken

.k-split-text — magenta 3px left, mint 3px right

Rule 01

Display type only

Never on body copy. It is a signature, not a texture, and it destroys legibility below about 32px.

Rule 02

Offset stays proportional

3px at hero scale, 2px below it. Fixed offsets look accidental at the wrong size.

Rule 03

One per viewport

Two split headlines in view at once and neither reads as deliberate.

The structural accent

The rainbow stripe brackets every page — top and bottom, six pixels, five fixed segments. It is the only ornamental element in the system, which is what lets it work.

04

Components

Rendered live from the same stylesheet the rest of the site loads.

Buttons

Primary Ghost Magenta Small

One primary per screen region. Ghost for the secondary path. Magenta is reserved for destructive or contrarian actions and is almost never used.

Tags

Verified metric Retained Entry tier Aqua Capability

Mint tags carry confirmed numbers and nothing else. That constraint is what makes them credible on the proof wall.

Form controls

Motion

  • 150ms — hover and focus. Anything slower feels broken.
  • 280ms — state changes, drawers, accordions.
  • 600ms — scroll reveals and data animations only.
  • Always — prefers-reduced-motion disables all of it. Non-negotiable.
05

Voice

The part most systems skip, which is why most brands look consistent and read like four different companies.

We do

State it plainly

Short sentences. Concrete nouns. The uncomfortable version rather than the diplomatic one.

We do

Frame in outcomes

Not "we offer brand strategy". What breaks without it, and what it costs.

We do

Ask open questions

Open questions over hard closes. If the offer needs pressure, the offer is the problem.

We never

Manufacture urgency

No countdown timers, no expiring slots. We flagged it as a red flag in a client audit, so we do not run it on ourselves.

We never

Use filler

No “in today’s fast-paced landscape”. If a sentence survives being deleted, delete it.

We never

Claim what we cannot show

Every number on this site was confirmed in writing. One fabricated figure costs the whole wall.

06

Want one
of these?

A system you can hand to someone else and have them build in it correctly on the first try. That is the deliverable — not a folder of files.

Brand Signal Test Book a call