Skip to content
MarshalMarshalHalden brand handoffDemo

Halden Guidelines

Grid carbon data for teams that schedule heavy compute.

Introduction

Halden mark
52% 30% 12% 6%

Halden's identity is built around one idea: the grid has a rhythm, and the product shows it. The mark is two uprights joined by a load curve. It is simple enough to work as a favicon and specific enough that no one mistakes it for a generic leaf.

The palette is pine and paper, with mint reserved for clean energy and amber for the hours to avoid. Colour carries meaning in the product, so the same rules hold in marketing. Mint never means anything other than low carbon.

Everything below is generated from one source, the same file the website and the app read their tokens from. Copy a value from this page and it will match production.

The mark

Halden mark

On light. The master file is linked in Exports; keep clear space around the mark of at least three-quarters of its own height.

Halden mark

On dark. A dedicated variant — never recolour the light master by hand.

Core

Pine12.34:1

#12332B

--color-pine

Primary ink and dark ground

Paper

#F5F3EE

--color-paper

Page ground

Ink16.11:1

#111917

--color-ink

Body text on paper

Slate5.75:1

#55625E

--color-slate

Secondary text

Pine and paper do the work. Every layout should read in these two alone.

Signal

Mint9.28:1

#9FE3C1

--color-clean

Low-carbon hours, on pine only

Amber6.35:1

#E8A33D

--color-dirty

High-carbon hours, on pine only

Mint deep4.78:1

#1E7A52

--color-clean-text

Mint as text on paper

Meaning, not decoration. Mint is clean hours, amber is dirty hours, and neither is used anywhere else.

Accessibility

AaPine on #F5F3EE12.34:1AAA
AaInk on #F5F3EE16.11:1AAA
AaSlate on #F5F3EE5.75:1AA
AaMint on #12332B9.28:1AAA
AaAmber on #12332B6.35:1AA
AaMint deep on #F5F3EE4.78:1AA

Every figure is computed from the palette at render time, so this table cannot fall out of step with the swatches above it. Anything below 4.5:1 may not carry body copy; anything below 3:1 may not carry meaning at all.

Typefaces

Aa

Geist 400, 500, 600, 700

Everything people read

SIL Open Font License

Aa

Geist Mono 400, 500

Readings, timestamps, gCO₂/kWh values

SIL Open Font License

Type scale

DisplayGeist · 700 · 56/60 · -1.8px · 3.500rem

Run when the grid is clean.

Homepage hero only

HeadingGeist · 700 · 32/38 · -0.9px · 2.000rem

Forecasts by region

Section titles

TitleGeist · 600 · 18/24 · -0.4px · 1.125rem

Cleanest window today

Cards, dialogs

BodyGeist · 400 · 16/26 · 1.000rem

Halden forecasts carbon intensity 72 hours ahead for every major grid region.

Paragraphs and UI copy

ReadingGeist Mono · 500 · 14/20 · 0.875rem

142 gCO₂/kWh · 03:00–06:00

Live values and units

Radius

sm 6px

Inputs, chips

md 12px

Cards

lg 20px

Panels and the app shell

Measures

Prose640pxMaximum line length for reading
Page1200pxMarketing content width

Usage

Do
  • Put mint and amber only on pine, where both clear contrast.
  • Use Mint deep when the clean signal has to appear as text on paper.
  • Set every reading in Geist Mono with its unit attached.
  • Give the mark a full tile of clear space on every side.
Don’t
  • Use mint as a decorative accent or a button colour.
  • Put amber text on paper. It fails contrast and it reads as a warning.
  • Recolour the mark outside the two supplied variants.
  • Round a reading to make a chart look smoother.

Exports

halden-tokens.cssDesign tokens, Tailwind v4 @theme
halden-brand.jsonThe full brand system as data
markThe master logo fileDownload

Every file here is generated from the same data this page renders, so a download can never disagree with the document. Licences for third-party assets are not granted by this document and must be obtained separately.