Brand Guidelines — The Measured Index

One system, measured.

A warm-ivory editorial broadsheet where type does almost everything and restraint is the device. Two families, one accent, hairline rules. Everything on this page is driven by the same design tokens the site ships — change a token, change the brand.

Type leads the way

The page is set, not decorated. Fraunces leads; Inter does the functional work.

Restraint is the device

One accent, one dark close, one italic gesture per view — nothing unearned stays.

Hairlines, not boxes

Structure comes from 1px rules and generous space, never cards or containers.

Nonbreakingspace wordmark
On ivory — navy ink
On navy — ivory ink

Do

  • Draw it in currentColor so it inherits the text colour.
  • Give it clear space of at least the height of the ampersand bowl on every side.
  • Let it run the single written-once wipe on first view; static everywhere after.

Don't

  • Recolour it outside navy / ivory, or place it on a busy ground.
  • Stretch, rotate, outline or add effects — it is a single calligraphic path.
  • Set it below ~120px wide, where the entry stroke loses its weight.
  • Navy

    #0b253f

    --color-navy

    Display ink and the single dark close. Also the selection + focus ring.

  • Ink

    #071a2d

    --color-ink

    Body copy on the ivory ground. ≈15:1 — well clear of AA.

  • Ivory

    #fff9ed

    --color-ivory

    The page ground — a warm off-white broadsheet stock.

  • Cream

    #f4ead8

    --color-cream

    The one recessed tonal band (Approach). Use sparingly.

  • Warm tan

    #c9ad94

    --color-warm

    The only accent. Draws the link underline on hover/focus — never used for text.

  • Taupe — strong

    #685d4e

    --color-muted-strong

    Essential small text: eyebrows, labels, descriptors. ≈6:1 on ivory.

  • Taupe — quiet

    #786c5d

    --color-muted

    The quietest tier — decorative indices and ticks. ≈4.9:1 on ivory.

Semantic tokens & themes

Components reference role tokens — --surface, --text, --text-strong, --accent, --rule and friends — never the raw palette above. The default Light theme maps them onto these swatches; Dark re-points them to a warm-light-on-deep-navy set of the same family. Dark follows the operating system by default, with a masthead toggle to override that is remembered across visits.

Fraunces

The expressive serif. Variable optical-size (opsz) axis, set explicitly per step. Italic is reserved for a single accent word per view.

Inter

The clean grotesque foil. Body copy, eyebrows, labels and every functional role. Tabular lining numerals for indices.

Display scale — Fraunces

  • Proud of it

    Class
    .t-cta
    Token
    --t-cta
    Axes
    opsz 144 · wght 360
    Size
    2.5 → 6rem
  • Made with passion

    Class
    .t-hero
    Token
    --t-hero
    Axes
    opsz 144 · wght 360
    Size
    2.25 → 5.75rem
  • Clarity, restraint and care

    Class
    .t-statement
    Token
    --t-statement
    Axes
    opsz 72 · wght 360
    Size
    1.75 → 4.25rem
  • Think · Shape · Build

    Class
    .t-heading
    Token
    --t-heading
    Axes
    opsz 40 · wght 380
    Size
    1.75 → 3.5rem
  • Interaction Design

    Class
    .t-cap
    Token
    --t-cap
    Axes
    opsz 40 · wght 380
    Size
    1.5 → 2.75rem
  • hello@nonbreakingspace.co.uk

    Class
    .t-email
    Token
    --t-email
    Axes
    opsz 40 · wght 380
    Size
    1.125 → 1.875rem

Functional roles — Inter

  • Body

    --t-body

    wght 380 · line-height 1.6 · the reading voice

  • Eyebrow

    0.75rem

    wght 500 · 0.22em tracking · uppercase — the only caps

  • Meta label

    0.8125rem

    wght 500 · 0.12em tracking · uppercase descriptors

  • Row index

    0.75rem

    tabular lining numerals — two-digit foliation

  • Legal

    0.6875rem

    line-height 1.5 · colophon fine print

Links

  • --gutter

    clamp(1.5rem, 6vw, 9rem)

    Page inline padding (.wrap).

  • --content-max

    1280px

    Maximum measure for the centred column.

  • --pad-section

    clamp(5rem, 12vh, 9rem)

    Default vertical section rhythm.

  • --pad-statement

    clamp(7rem, 16vh, 13rem)

    The breathing room around the statement.

  • --pad-contact

    clamp(6rem, 14vh, 11rem)

    The dark close.

  • --rule-light

    rgb(7 26 45 / 0.12)

    Hairline on ivory — 1px borders, never shadows.

  • --rule-dark

    rgb(255 249 237 / 0.15)

    Hairline on navy.

  • Easing

    cubic-bezier(0.22, 1, 0.36, 1) — every transition uses this single curve.

  • Reveal

    Fade + 1.25rem rise over 0.7s, once per element as it scrolls in.

  • Wipe

    The wordmark performs a single left-to-right clip-path wipe over 0.9s — written once.

  • Restraint

    All motion is JS-gated and honours prefers-reduced-motion: reduce.

Voice

Plain, considered, British. Short declarative lines; one idea each. Sentence case everywhere except the tracked eyebrow. Never breezy, never salesy — the studio reads everything and means it.

Accessibility

WCAG 2.2 AA is the floor, not the goal. All text clears 4.5:1. Motion is gated behind prefers-reduced-motion, focus is always visible, and the wordmark is decorative unless labelled.

Get in touch — We read everything

Let’s make something to be proud of.