Skip to main content
brickwork
GitHub Log in Get started
Display
Theme
Density
Direction
Brand

Back to Templates

customisation-l1 · html

L1 brand

Copy this page into your project. Recolour it with tokens. It is yours from that moment.

Open full page
), once for light and once for dark. Nothing * else on the page changes: the Northline markup below is identical to * the homepage, and every button, badge and alert recolours itself. */ :root { --bw-font-family-sans: "Source Sans 3", system-ui, sans-serif; --bw-font-family-display: "Source Serif 4", Georgia, serif; } /* L1 brand pack: load-bearing tokens only (light + dark). */ :root, [data-theme="light"] { --bw-color-accent: oklch(0.55 0.19 25); --bw-color-fg-on-accent: oklch(0.99 0 0); --bw-color-surface: oklch(0.99 0.005 90); --bw-color-fg: oklch(0.22 0.02 40); --bw-color-border: oklch(0.88 0.01 40); --bw-color-danger: oklch(0.55 0.2 25); --bw-color-success: oklch(0.55 0.14 150); --bw-color-warning: oklch(0.7 0.15 75); } [data-theme="dark"] { --bw-color-accent: oklch(0.7 0.16 25); --bw-color-fg-on-accent: oklch(0.18 0.02 40); --bw-color-surface: oklch(0.2 0.02 40); --bw-color-fg: oklch(0.95 0.01 90); --bw-color-border: oklch(0.35 0.02 40); --bw-color-danger: oklch(0.7 0.16 25); --bw-color-success: oklch(0.72 0.12 150); --bw-color-warning: oklch(0.78 0.12 75); } body { --bw-color-accent-fg: var(--bw-color-fg-on-accent); margin: 0; font-family: var(--bw-font-family-sans); background: var(--bw-color-surface); color: var(--bw-color-fg); } .nl-header { display: flex; align-items: center; gap: var(--bw-space-5); padding: var(--bw-space-4) var(--bw-space-6); border-bottom: 1px solid var(--bw-color-border); background: var(--bw-color-surface); } .nl-header__brand { display: inline-flex; align-items: center; gap: var(--bw-space-2); margin-right: auto; font-weight: 700; letter-spacing: -0.03em; color: var(--bw-color-fg); text-decoration: none; } .nl-header__mark { width: 1.125rem; height: 1.125rem; border-radius: 5px; background: var(--bw-color-accent); } .nl-header__nav { display: flex; align-items: center; gap: var(--bw-space-5); } .nl-header__nav a { color: var(--bw-color-fg-muted); text-decoration: none; font-size: var(--bw-font-size-sm); font-weight: 500; } .nl-header__nav a:hover { color: var(--bw-color-fg); } .nl-footer { display: flex; flex-wrap: wrap; gap: var(--bw-space-4); justify-content: space-between; padding: var(--bw-space-6); border-top: 1px solid var(--bw-color-border); color: var(--bw-color-fg-muted); font-size: var(--bw-font-size-sm); } .nl-footer p { margin: 0; } .nl-footer a { color: inherit; } .nl-eyebrow { margin: 0; font-size: var(--bw-font-size-sm); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bw-color-fg-muted); } .nl-heading { margin: 0; font-family: var(--bw-font-family-display); font-weight: 650; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; letter-spacing: -0.02em; text-wrap: balance; } .nl-lede { margin: 0; max-inline-size: 44ch; font-size: var(--bw-font-size-lg); line-height: 1.5; color: var(--bw-color-fg-muted); } .nl-actions { display: flex; flex-wrap: wrap; gap: var(--bw-space-3); } @media (max-width: 48rem) { .nl-header__nav { display: none; } } .nl-recolour { display: grid; gap: var(--bw-space-6); max-inline-size: 44rem; margin-inline: auto; padding: var(--bw-space-10) var(--bw-space-6); } .nl-recolour__intro { display: grid; gap: var(--bw-space-3); } .nl-fragment { display: grid; gap: var(--bw-space-4); padding: var(--bw-space-6); border: 1px solid var(--bw-color-border); border-radius: var(--bw-radius-lg); background: var(--bw-color-surface); } .nl-fragment__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--bw-space-3); } .nl-fragment__title { margin: 0; font-family: var(--bw-font-family-display); font-weight: 650; font-size: var(--bw-font-size-xl); letter-spacing: -0.01em; } .nl-fragment__body { margin: 0; color: var(--bw-color-fg-muted); line-height: 1.5; } .nl-fragment .bw-alert { margin-block-end: 0; } .nl-recolour__note { margin: 0; font-size: var(--bw-font-size-sm); color: var(--bw-color-fg-muted); } Skip to content
Northline Book a walkthrough

Themes · L1 brand pack

Recolour with an L1 brand pack

Swap one short block of colour tokens and the whole product follows. This page is Northline in a warm terracotta pack; the markup is unchanged.

Mersey hub: morning board

2 late loads

Fourteen routes are live. Two loads are running behind and the customer has not been told yet.

Route 14 is 22 minutes behind

Driver handoff at Widnes missed its window. Send the revised ETA before the customer rings.

See the default teal pack on the homepage and the landing page.