The System. Documented.
Tokens, components, and usage rules for the We Them Media visual system. If you’re contributing copy, design, or code, read this first.
The palette. Disciplined.
Three accent colors, three jobs. Coral is the door (CTAs). Ink is the brush (climax words). Gold is the halo (ambient glow). Don’t cross the streams.
Three families, one voice.
Fraunces for display (variable axes: opsz, WONK, SOFT). Newsreader for body. JetBrains Mono for labels, eyebrows, and Dymo tape.
Type scale (clamp values)
The kit, in the open.
.btn — All variants
<a href="#" class="btn btn-primary">Back the work →</a>
<a href="#" class="btn btn-secondary">Read the plan</a>
<a href="#" class="btn btn-ghost">Join the Discord</a>
.tape — Dymo label (default / coral / gold)
<span class="tape">NEWSLETTER 001</span>
<span class="tape coral">LIVE 06.01.26</span>
<span class="tape gold">FUNDED</span>
.section-card — Page-link card (secondary)
<a href="about.html" class="section-card">
<div class="num">02 — About</div>
<div class="title">The why <em>and how.</em></div>
<div class="deck">Why local journalism matters now…</div>
<div class="more">Read the manifesto →</div>
</a>
.polaroid-chamfer — Hero photo treatment
<div class="polaroid-chamfer">
<span class="badge">FIG. 01</span>
<div class="img" style="background-image: url(maceo-original.jpg);"
role="img" aria-label="..."></div>
<div class="cap">— Makurdi, Benue State. March 2025.</div>
</div>
.brush-line — Sumi-e divider SVG
<svg class="brush-line" viewBox="0 0 320 16" preserveAspectRatio="none" aria-hidden="true">
<use href="#brush"/>
</svg>
.spiral — Gurren colophon SVG
<svg class="spiral" aria-hidden="true"><use href="#spiral"/></svg>
.live-dot — Pulsing live indicator
<span class="live-dot" aria-hidden="true"></span> LIVE NOW
.climax-ink — The climax-word treatment
<h2>A global journalism network. <em><span class="climax-ink">Built in public.</span></em></h2>
Discipline keeps it soulful.
The system reads as bold-yet-subtle because each accent color has exactly one job. Cross the streams and it reads as decoration. Hold the line and it reads as voice.
Coral — primary CTA only
- Use on .btn-primary — the one click you want them to make.
- Use on the .num eyebrow on cards (it links the card to the path).
- Use on .live-dot and active-state link underlines.
- Don’t use coral for body text or paragraph copy.
- Don’t use coral on more than one CTA per viewport.
- Don’t use coral as a decorative accent — it loses authority.
Ink — brushwork only
- Use as the .climax-ink color and the sumi-e brushstroke beneath it.
- Use as the offset-shadow color on hover-lifted cards.
- Use on .brush-line dividers between major sections.
- Don’t use ink for buttons. That’s coral’s job.
- Don’t use ink for body text — it’s a brushwork color, not a reading color.
Gold — halo only
- Use on .halo-bleed pseudo-elements behind hero photos and page headers.
- Use on the .tape.gold variant for finale/funded states only.
- Don’t use gold as text color. The cream contrast fails AA on gold.
- Don’t use gold as a solid fill for buttons or cards.
- Don’t use gold without the blur+opacity treatment — it should feel ambient.
Brushstroke (.climax-ink)
- Apply to the single most important word/phrase in a heading.
- Use on a serif italic span (Fraunces opsz 144, SOFT 100) for the proper soulful weight.
- Maximum ONE per heading. Maximum 2–3 per page.
- Don’t apply decoratively or to verbs without weight.
- Don’t use on body text, captions, or button labels.
- Don’t stack brushstrokes near each other — the ink loses meaning.
Type pairing
- Pair Fraunces display + Newsreader body in display:body ratio of ~3:1.
- Use Newsreader italic for emphasis inside body copy — never bold.
- Use JetBrains Mono only for labels, eyebrows, tape, and tabular data.
- Don’t set body copy in Fraunces — it’s a display face.
- Don’t mix more than one italic + one display family per page.
Tape, polaroid, spiral
- Use .tape for status (LIVE, NEWSLETTER 001, FUNDED) — not navigation.
- Use .polaroid-chamfer once per major section, max. It’s a feature treatment.
- Keep the .spiral colophon at one location: beside the brand mark.
- Don’t use .tape for category labels or filters — it implies status.
- Don’t scatter polaroids across a page — they lose preciousness.
