00 / Fri3nds design system

Style Guide

SUPERSEDED. This page was a second copy of the style guide from when Fri3nds and Direct were two skins of one system. Since the token flip on 2026-09-07 there is one brand and one style guide, at /style-guide. The values printed below this line are stale and should not be trusted or copied. Go to /style-guide instead.

01 / Colour

Tokens

Color/Background
#ffffff
Color/Background Alt
#f1f1ee
Color/Surface Subtle
#f1f1ee
Color/Surface Muted
#d9d6d0
Color/Accent
#e54a30 solid surfaces
Color/Background dark
#171615
Color/Border
#d9d6d0 at 2px
Color/Accent Gradient
#e54a30 gradients only
01b / Decorative colour

Five decorative colours, used only on team cards, why-choose-us cards, principle cards and the colour wave. Never for text, never as a page ground.

Decorative/Blue
neutralised to #f1f1ee
Decorative/Green
neutralised to #f1f1ee
Decorative/Pink
neutralised to #f1f1ee
Decorative/Orange
neutralised to #f1f1ee
Decorative/Red
neutralised to #f1f1ee, no usage on any rendered page
Decorative/Yellow Alt
neutralised to #f1f1ee, the first principles card only
05b / Grid

Twelve columns, six on mobile

u-grid-12 is the page grid. It halves to six columns at 479 and below, where the row gap stops matching the column gap: 24px between rows against 12px between columns. There is no max-width container, so the grid runs the full viewport inside the page inset.

02 / Text colour
Color/Text, 18.07 to 1 on background
Color/Text Muted 75, body copy, 5.61 to 1
Color/Text Muted 50, secondary labels, 5.61 to 1, passes AA for normal text
Color/Text Muted 25, fails AA at 1.73 to 1, never for readable copy
Color/Text Muted 15, 1.37 to 1, animation resting state only
Color/Accent as a text colour, 3.92 to 1, large text only
03 / Dark mode

A dark band flips every token

This section carries u-bg-dark, which applies the Dark variable mode. Background, text and surface tokens resolve to their dark values with no extra classes on the children.

Surface Muted, #3f3b37
Accent, unchanged
Border, #3f3b37
Text Muted 50, 8.21 to 1
04 / Typography
Aa
u-text-display, Public Sans 400, 26vw, line height 0.8, tracking -0.06em

We build brands that lead

u-text-h1, 90px at 1440, line height 0.9, tracking -0.03em

Brand Strategy and Identity

u-text-h2, 64px at 1440, line height 0.9, tracking -0.025em

Start Project

u-text-h3, 44px at 1440, line height 1, tracking -0.025em

Clarity-first Design

u-text-h4, 32px at 1440, line height 1, tracking -0.02em
Four to eight weeks
u-text-subhead, 28px at 1440
James Odinsky
u-text-h5, 24px at 1440
Direction for every part of your business
u-text-h6, 16px at 1440

u-text-body is the paragraph style. On the source site a paragraph was forced to uppercase mono, so body copy lived in divs. Here a paragraph is a paragraph, set in Public Sans at 16px with a line height of 1.5 so wrapped copy reads properly.

Label / uppercase mono
u-text-label, Chivo Mono, 14px at 1440, tracking +0.01em, uppercase
Small label
u-text-label-sm, Chivo Mono, 12px at 1440
Contact Us
u-text-link, 16px at 1440, line height 0.9, no underline
05 / Space

Seventeen steps

Values are the pixels the source site renders at 1440. The stepped root font size that made these scale per breakpoint has been removed, so a space token is one number everywhere.

Space/1, 2.5px
Space/2, 5px
Space/3, 7.5px
Space/4, 10px
Space/5, 12.5px
Space/6, 15px
Space/7, 20px
Space/8, 25px
Space/9, 30px
Space/10, 40px
Space/11, 60px
Space/12, 65px
Space/13, 80px
Space/14, 100px
Space/15, 120px
Space/16, 160px
Space/17, 240px, the standard section gap
06 / Radius and buttons
u-radius-sm, 5px
u-radius-md, 7.5px
u-radius-lg, 10px
u-radius-full, 50 percent
Start a projectSee our workDark button
btn plus is-primary, is-secondary or is-dark. Hover swaps the fill and the label colour over 0.2 seconds.
is-dark on a dark ground
07 / Utility allowlist

Every class on this site

Type
u-text-display
u-text-h1 to u-text-h6
u-text-subhead
u-text-body
u-text-link
u-text-label
u-text-label-sm
u-font-mono
Colour
u-bg-background
u-bg-alt
u-bg-subtle
u-bg-muted
u-bg-accent
u-bg-dark
u-fc-text
u-fc-muted-75, -50, -25, -15
u-fc-accent
u-fc-accent-text
Layout
u-page-inset
u-grid-2, -3, -4, -12
u-gap-2, -3, -4, -6, -7, -8, -9, -10, -11, -13
u-p-4, u-p-7, u-py-7
u-pb-2, u-pb-16, u-pb-17, u-pt-15
u-mt-9, -11, -14, -15
u-mb-9, -11, -14, -15
u-radius-sm, -md, -lg, -full
u-border
btn, is-primary, is-secondary, is-dark