Swatch band of the Stimpunks palette, light tints shading into dark Solarized surfaces

Color & Palette: Our Solarized System

🗺️

Home » Field Guide » Design » Color & Palette: Our Solarized System

This is the visual reference for the Stimpunks color system: what our palette is, why it looks the way it does, and how we derive it from Solarized. It complements the Reading Experience design & technical notes in the IT Field Guide (which cover how the palette — and the rest of the reading experience — is implemented) and the House Style Guide in the Editorial Field Guide (which covers how we write). Both are part of building access into the foundation rather than bolting it on — the same principle behind why we don’t use accessibility overlays.

The Solarized foundation

Our palette derives from Solarized, a sixteen-color scheme by Ethan Schoonover, designed for readability and low eye strain. Instead of chasing maximum contrast, Solarized fixes its colors in a perceptual color space so their relationships stay balanced and gentle to read for long stretches.

It divides into eight monotone “base” tones — from the darkest, base03, to the lightest, base3 — plus eight accent hues: yellow, orange, red, magenta, violet, blue, cyan, and green. The property we lean on hardest is that Solarized’s light and dark modes are deliberate mirror images of one another: the same base tones, reordered. Switching modes becomes a matter of swapping base3 ↔ base03 and base2 ↔ base02 for surfaces and lifting the text tones by a step, while the accent hues hold their place.

How we derive from it

That mirror relationship is the backbone of our two modes:

  • Surfaces use the warm base tones. The page background is Solarized base3 (#fdf6e3) in light and base03 (#002b36) in dark — the low-glare warm background Solarized was built around, chosen over pure white to reduce eye strain. The header, footer, and panels sit a step off the page in the same family.
  • Text mirrors across modes: near-black on the light page, and Solarized base0 (#839496) on the dark page, with an emphasized tone a step brighter.
  • Accents keep their hue in both modes but are tuned to the surface behind them. Our primary is a cyan — a subdued #4bbcd4 in light and Solarized’s own cyan #2aa198 in dark — dialed down from the original bright brand cyan so calls-to-action read as calm rather than glaring.
  • Lily-pad tints — the soft background washes behind grouped content — are pale Solarized-accent tints in light mode, spread around the wheel for variety. In dark mode they all resolve to a single Solarized panel tone (base02, #073642).

Why it feels the way it does

Every choice above has a technical reason and a felt one. The technical reason is Solarized. The felt one is biophilic design — building environments that connect people to the natural world, and choosing calm over impact.

Biophilic design is the designing for people as a biological organism, respecting the mind-body systems as indicators of health and well-being in the context of what is locally appropriate and responsive. […] Above all, biophilic design must nurture a love of place.

14 Patterns of Biophilic Design, Terrapin Bright Green

That is the whole reason the page background is a warm #fdf6e3 rather than pure white, and why our cyan is dialled down from the original bright brand colour. Neutral, natural tones are less overwhelming than saturated ones; a low-glare warm surface is easier to sit with for an hour than a bright one. The literature on biophilic environments reports lower stress and better sustained focus, and that is the effect we want from a page someone might read on their worst day.

It carries into art selection as well as colour. The botanical illustrations and natural imagery across the site are not filler — they are the same decision as the palette, made with pictures instead of hex values.

Annales Musei botanici lugduno-batavi Amsterdam Apud C. G. van der Post biodiversitylibrary.org/page/652019 Pink and yellow flowers with green stems and leaves
Annales Musei botanici lugduno-batavi, Amsterdam Apud C. G. van der Post — Biodiversity Heritage Library

A palette tuned for comfort over punch is a biophilic choice before it is an aesthetic one.

The palette in use

These swatches use the live palette variables, so they render in whichever mode you are currently viewing. Flip the Auto / Light / Dark control in the header and watch them change. Each caption gives the color’s role and its palette slug.

Surfaces

Page background
base

Header & footer
custom-color-1

Panel
custom-color-3

Neutral panel
tertiary

Text & accents

Body text
contrast

Emphasized text
black

Primary & CTA
primary

Secondary
secondary

Lily-pad tints

Cyan
custom-color-2

Green
custom-color-4

Yellow
custom-color-5

Coral
custom-color-6

Violet
custom-color-7

Rose
custom-color-8

Light ↔ dark mapping

The exact values behind each role, in both modes. The accent hues persist across modes; only their tone adapts. Everything that reads as a “raised” surface resolves to #073642 in dark.

RoleSlugLightDark
Page backgroundbase#fdf6e3#002b36
Header & footercustom-color-1#fcf6e5#002b36
Panelcustom-color-3#ece8d9#073642
Neutral paneltertiary#f2efe6#073642
Body textcontrast#000000#839496
Emphasized textblack#000000#93a1a1
Primary / CTAprimary#4bbcd4#2aa198
Secondarysecondary#345c00#859900
Lily pad — cyancustom-color-2#d4ece9#073642
Lily pad — greencustom-color-4#cfe6cf#073642
Lily pad — yellowcustom-color-5#f1e6c2#073642
Lily pad — coralcustom-color-6#f6dccb#073642
Lily pad — violetcustom-color-7#e3d9f2#073642
Lily pad — rosecustom-color-8#f4d8e3#073642
Pullquoteblock style#eee8d5#073642

In implementation, each value is declared once with the CSS light-dark() function, so a single declaration carries both modes. The switching mechanism, the Auto / Light / Dark toggle, and the component-level details live in the Reading Experience technical notes.

Paper mapping: the palette as ink

The broadsides are printed sheets, so they need the palette rendered as ink rather than as light. These are the values they use, and the reasoning behind them lives in Designing for Paper.

Paper has no dark mode. Everything above turns on the light ↔ dark mirror; none of that applies here. These values do not flip, because paper does not.

They are measured on white, not on our cream. A background colour does not print — browsers leave Background graphics off by default — so the warm #fdf6e3 surface never reaches the sheet. Ink is measured against the substrate it will actually meet.

The screen accents cannot cross over. Measured as body ink on white, five of Solarized’s eight accent hues fail WCAG AA as they ship — yellow, cyan and green at about 3.2:1, blue 3.7:1, violet 4.4:1 — and orange, red and magenta scrape past at roughly 4.6:1. Our own primary is the clearest case: #4bbcd4 is a calm call-to-action on a cream screen and 2.2:1 on white paper, which is not a colour you can print words in.

So each ink is a house tone or hue darkened until it clears. That is existing practice rather than a new invention — our light-mode secondary (#345c00) is already a darkened Solarized green. Paper simply needs it done to more of them.

RoleVariableValueOn whiteDerived from
Ink--sb-ink#002b3615.0:1Solarized base03
Secondary prose--sb-ink-2#07364213.0:1Solarized base02
Small print, credits--sb-ink-3#586e755.4:1Solarized base01
Spot — blue--sb-spot#175a7d7.5:1Solarized blue, darkened
Spot — magenta--sb-spot#96215c7.9:1Solarized magenta, darkened
Spot — orange--sb-spot#9c3a116.9:1Solarized orange, darkened
Spot — violet--sb-spot#4c50a07.1:1Solarized violet, darkened
Spot — cyan--sb-spot#0d5f597.5:1Solarized cyan, darkened
Spot — green--sb-spot#4954008.2:1Solarized green, darkened

Every value above is dark enough to carry white text, which is why each swatch is legible as its own label. Ratios are against white paper and were measured, not estimated. The swatch cells carry print-color-adjust: exact so the colour survives to paper — without it the backgrounds drop out and the labels print white on white, which is the very fault this section documents.

Each sheet takes a pair

A broadside uses two spots: one on the face, one on the reverse, carried as a coloured bar across the top of each side. The pair is the point. With six usable hues there are more sheets than hues before long, so a hue repeats — and it already has: green now appears on three sheets, magenta and violet on two each. A pair has never repeated, and the bar is what tells you which sheet you are holding when several are face-down in a stack. That is the reason not to reach for a tenth colour when the pairs start running low.

SheetFaceReverse
Eye Contactbluemagenta
Behaviorismorangeviolet
Sensory Access at Workcyangreen
Positive Greetings at the Doorvioletgreen
Cavendish Spacegreenmagenta

These are not theme presets. Unlike the core palette above, the paper inks are declared as literal hex inside each broadside’s own block — the same arrangement as the Progressive Pride accents below. There is no has-…-background-color class for them, and setting one will not produce them.

Rainbow (Progressive Pride) mapping

The decorative rainbow accents on the site — most visibly the Progressive Pride accordions on the philosophy pages — use the Progressive Pride Flag palette. Unlike the core palette above, these are applied as inline hex on individual blocks, so they don’t flip on their own. Each light value is standardized to the flag’s standard hex, and dark mode remaps it with an attribute-selector override keyed to that value (see the Reading Experience notes, §7). When updating a block, set its color to the Light value; the Dark value is what dark mode maps it to automatically.

ColorLightDark
Red#e40303#8f2b2b
Orange#ff8c00#9a5416
Yellow#ffed00#7a6d18
Green#008026#1f6636
Blue#004dff#2f4f9c
Violet#750787#5a2d73
Pink#ffafc8#8a4a5e
Light blue#74d7ee#23697a
Brown#613915#6b4a30
White#ffffff#3c4245
Black#000000#2c2c2f

White and black can’t stay literal in dark mode — white would glare and black would vanish into the page — so they map to a neutral slate and a near-black grey. Every dark bar carries light text. Use the full 6-digit hex (e.g. #ffffff, not #fff) so the dark-mode selectors match.

The swatch cells above carry print-color-adjust: exact. Without it the backgrounds drop out when the page is printed — browsers omit background graphics by default — and every light-text label prints white on white. A colour reference that goes blank on paper is not much of a reference. See Designing for Paper.