PostHog — Design System
PostHog turns its whole site into a bit: a fake desktop OS on warm paper #EEEFE9 where every page opens as a draggable document window, so the marketing reads like files on a founder's computer. Open Runde headlines stay document-small (24px/800) while IBM Plex Sans carries 15px body — README typography, not billboard type. Hand-drawn hedgehogs do the brand work, amber #CD8407 buttons and the signal orange #F54E00 do the pointing, and the conversion moments are jokes played straight: a shrink-wrapped 'PostHog 3000' CD-ROM box, a fake cart toast, a pricing letter from the co-founder. It is the rare developer brand where humor is the design system — and the transparency reads as credibility.
This is a static, crawlable rendering for search & AI engines. The interactive version — filters, live decode console, copy & export — is at https://mozaika.design/ds/posthog.
Tokens
PostHog's decoded design system: background #E1D7C2, text #4D4F46, accent #CD8407, link #E3DFD1, primary #E1D7C2; type scale h1 16px / h2 16px / body 12px; 4px spacing base; 4px base radius. The single interactive/action color is #CD8407 — used only on interactive or must-notice elements (buttons, links, key highlights), never on large fills.
Color roles
| Role | Value |
|---|---|
| bg | #E1D7C2 |
| surface | #D8CEBA |
| border | #CAC2AF |
| text | #4D4F46 |
| text_muted | #858275 |
| primary | #E1D7C2 |
| accent | #CD8407 |
| link | #E3DFD1 |
| secondary | #DDD6C5 |
| button_bg | #CD8407 |
| button_text | #23251D |
Using these colors
- Action color
#CD8407— the single interactive color; only on things you click or must notice, never large fills. primary#E1D7C2,secondary#DDD6C5are visually the same color (Δ8) — treat as one role (the action color).accent,button_bgare all#CD8407— one role, not several (the action color).- accent
#CD8407— THE accent / action color — interactive & must-notice only (buttons, links, focus, one key highlight); never large fills or backgrounds. Scarcity is what makes it read as designed. - link
#E3DFD1— fails contrast on the background (~1.1:1) — this is a dark UI color, NOT a readable link; use the text or action color for links (verify against the reference).
Typography
- Heading: Open Runde
- Body: IBM Plex Sans
- h1: 16px
- h2: 16px
- body: 12px
Spacing
- base unit: 4px
- scale: 2px, 4px, 6px, 8px, 12px, 16px, 24px, 32px
Radii
- base: 4px
- button: 6px
Per-section tokens (28)
- Hero
- Pricing / Plans
- Hero
- Testimonial / Social Proof
- Feature
- Feature
- Feature
- Logo Wall
- Pricing / Plans
- Feature
- Feature
- Comparison
- Feature
- Pricing / Plans
- Testimonial / Social Proof
- Feature
- Feature
- Feature
- Feature
- CTA / Sign-up
- Feature
- Feature
- Comparison
- Stats / Metrics
- Integrations
- Feature
- FAQ
- CTA / Sign-up
Export: DESIGN.md
# PostHog — Design System > light, modern, medium, tailwind PostHog turns its whole site into a bit: a fake desktop OS on warm paper #EEEFE9 where every page opens as a draggable document window, so the marketing reads like files on a founder's computer. Open Runde headlines stay document-small (24px/800) while IBM Plex Sans carries 15px body — README typography, not billboard type. Hand-drawn hedgehogs do the brand work, amber #CD8407 buttons and the signal orange #F54E00 do the pointing, and the conversion moments are jokes played straight: a shrink-wrapped 'PostHog 3000' CD-ROM box, a fake cart toast, a pricing letter from the co-founder. It is the rare developer brand where humor is the design system — and the transparency reads as credibility. ## Colors | Role | Value | |------|-------| | bg | `#E1D7C2` | | surface | `#D8CEBA` | | border | `#CAC2AF` | | text | `#4D4F46` | | text_muted | `#858275` | | primary | `#E1D7C2` | | accent | `#CD8407` | | link | `#E3DFD1` | | secondary | `#DDD6C5` | | button_bg | `#CD8407` | | button_text | `#23251D` | **Using these colors** - **Action color** `#CD8407` — the single interactive color; it appears only on things you click or must notice (buttons, key highlights), never on large fills or backgrounds. - `primary` `#E1D7C2`, `secondary` `#DDD6C5` are visually the same color (Δ8) — treat as one role. - `accent`, `button_bg` are all `#CD8407` — one role, not several (your action color). - **accent** `#CD8407` — THE accent / action color — interactive & must-notice only (buttons, links, focus, one key highlight); never large fills or backgrounds. Scarcity is what makes it read as designed. - **link** `#E3DFD1` — fails contrast on the background (~1.1:1) — this is a dark UI color, NOT a readable link; use the text or action color for links (verify against the reference). ## Typography - Heading: **Open Runde** _(free fallback: Newsreader)_ - Body: **IBM Plex Sans** - h1: 16px - h2: 16px - body: 12px > **Fonts —** Open Runde may be proprietary — safe free fallback: Newsreader (Google Fonts). IBM Plex Sans — free, on Google. ## Spacing - base unit: 4px - scale: 2px, 4px, 6px, 8px, 12px, 16px, 24px, 32px ## Radius - base: 4px - button: 6px ## Primary button - bg `#CD8407` · text `#23251D` · radius 6px ## How to apply Paste the Tailwind `@theme` (or CSS variables) as your base, then build each section to its spec — verify every color, radius, and font against these tokens.
Export: Tailwind v4 (@theme)
@theme {
/* action color #CD8407 — the one interactive color; buttons/links/emphasis only, never large fills. */
--color-bg: #E1D7C2;
--color-surface: #D8CEBA;
--color-border: #CAC2AF;
--color-text: #4D4F46;
--color-text-muted: #858275;
--color-primary: #E1D7C2; /* a neutral UI color (chips, tags, icon fills, chrome), not the action color (action = #CD8407). */
--color-accent: #CD8407; /* THE accent / action color — interactive & must-notice only (buttons, links, focus, one key highlight); never large fills or backgrounds. Scarcity is what makes it read as designed. */
--color-link: #E3DFD1; /* fails contrast on the background (~1.1:1) — this is a dark UI color, NOT a readable link; use the text or action color for links (verify against the reference). */
--color-secondary: #DDD6C5; /* optional secondary accent — LOW decode confidence; use rarely (a status color or a single decorative moment) or omit it entirely. Prefer one accent unless the reference clearly shows two. */
--color-button-bg: #CD8407; /* primary-button fill — the main call-to-action color. */
--color-button-text: #23251D;
/* fonts: Open Runde may be proprietary — safe free fallback: Newsreader (Google Fonts). IBM Plex Sans — free, on Google. */
--font-heading: "Open Runde", "Newsreader", system-ui, -apple-system, 'Segoe UI', sans-serif;
--font-body: "IBM Plex Sans", system-ui, -apple-system, 'Segoe UI', sans-serif;
--text-h1: 16px;
--text-h2: 16px;
--text-body: 12px;
--radius-base: 4px;
--radius-button: 6px;
--spacing-1: 2px;
--spacing-2: 4px;
--spacing-3: 6px;
--spacing-4: 8px;
--spacing-5: 12px;
--spacing-6: 16px;
--spacing-7: 24px;
--spacing-8: 32px;
}Export: CSS variables
:root {
/* action color #CD8407 — the one interactive color; buttons/links/emphasis only, never large fills. */
--bg: #E1D7C2;
--surface: #D8CEBA;
--border: #CAC2AF;
--text: #4D4F46;
--text-muted: #858275;
--primary: #E1D7C2; /* a neutral UI color (chips, tags, icon fills, chrome), not the action color (action = #CD8407). */
--accent: #CD8407; /* THE accent / action color — interactive & must-notice only (buttons, links, focus, one key highlight); never large fills or backgrounds. Scarcity is what makes it read as designed. */
--link: #E3DFD1; /* fails contrast on the background (~1.1:1) — this is a dark UI color, NOT a readable link; use the text or action color for links (verify against the reference). */
--secondary: #DDD6C5; /* optional secondary accent — LOW decode confidence; use rarely (a status color or a single decorative moment) or omit it entirely. Prefer one accent unless the reference clearly shows two. */
--button-bg: #CD8407; /* primary-button fill — the main call-to-action color. */
--button-text: #23251D;
--font-heading: "Open Runde", "Newsreader", system-ui, -apple-system, 'Segoe UI', sans-serif;
--font-body: "IBM Plex Sans", system-ui, -apple-system, 'Segoe UI', sans-serif;
--radius: 4px;
--radius-button: 6px;
}
/* fonts: Open Runde may be proprietary — safe free fallback: Newsreader (Google Fonts). IBM Plex Sans — free, on Google. */