SAT · 15 AUG 2026 · 08:18 BST
O
OpenPress V 1.01
Breaking
Home / Style Guide
Internal reference · v1.0

Style Guide

Color, type, icons, and components, read straight from the theme — the reference to hand a new contributor before they open a template file.

Foundations

O
OpenPress

The mark: an accent-filled square with the initial, set in Playfair Display, next to the full wordmark. Give it room — never crowd it against other logos or copy.

A warm-newsprint editorial system: a cream page in daylight, deep canvas after dark, one amber-gold accent doing the work of a masthead flag — signalling "read this" the way a red thread or a wax seal would on a printed page, without shouting.

Live indicator

Breaking

.eyebrow + .live-dot — the pairing used anywhere something is happening now: breaking news, a live blog, this very label.

Color Palette

Every token has a Day value and a Night value — flip the theme toggle in the top bar and the whole site (this page included) repaints from the same eight variables. Click a hex to copy it.

--background

Background

--foreground

Foreground

--card

Card

--secondary

Secondary

--muted

Muted

--muted-foreground

Muted foreground

--accent

Accent / Primary

--border

Border

Typography

Display — Playfair Display

Headlines and section titles only. Weights 700–900, always paired with tight leading.

text-5xl / 48px Deadline at dawn
text-3xl / 30px Deadline at dawn
text-2xl / 24px Deadline at dawn
text-lg / 18px Deadline at dawn

Body — Inter

Everything a reader actually reads: ledes, body copy, UI labels, captions.

text-lg / 18px Independent journalism, published the hour it happens.
text-base / 16px Independent journalism, published the hour it happens.
text-sm / 14px Independent journalism, published the hour it happens.
text-xs / 12px Independent journalism, published the hour it happens.

Utility — JetBrains Mono

Timestamps, data, feed URLs, and the eyebrow label — anywhere the type itself should read as instrumentation, not prose.

Eyebrow label https://openpress.tech/feed/ 18:32 GMT

Spacing & Radius

Corner radius

rounded · 4px

rounded-md · 6px

rounded-full · pill

Layout metrics

1400px

max-w-[1400px] · content width

24px

px-6 · side gutter

40–56px

py-10 / py-12 / py-14 · section rhythm

Iconography

Lucide, self-hosted at a pinned version so a CDN outage can never break the icon set. Click one to copy its data-lucide name.

Navigation

Actions

Content

Status & contact

Buttons & Badges

Buttons

Primary Secondary Text link →

Badge

Archive Coming soon

Used on nav-card and footer links for anything not live yet — set from OpenPress > Navigation Cards / Footer, no template edits needed.

Category pill

All Billing

Cards & Components

Standard card

border + rounded-md + bg-card + card-hover. The base container for forms, FAQ items, and feed rows alike.

Quick-fact card

Icon badge + label, from the legal pages' trust-badge row.

Accordion (from the FAQ template)

What powers this accordion?
A native <details>/<summary> element — works with zero JS, keyboard- and screen-reader-friendly by default.
Where is it used?
The FAQ page template — search, category pills, and expand/collapse-all are the only parts that need JS.

Forms

Same border/radius/padding as text input

Focus state: border switches to the accent color (focus:border-accent) — no color-only error/success states elsewhere without an icon or label alongside them.