← all systems posthog
edit →

Design System Inspired by PostHog

1. Visual Theme & Atmosphere

PostHog’s website feels like a startup’s internal wiki that escaped into the wild — warm, irreverent, and deliberately anti-corporate. The background isn’t the expected crisp white or dark void of developer tools; it’s a warm, sage-tinted cream (#fdfdf8) that gives every surface a handmade, paper-like quality. Colors lean into earthy olive greens and muted sage rather than the conventional blues and purples of the SaaS world. It’s as if someone designed a developer analytics platform inside a cozy garden shed.

The personality is the star: hand-drawn hedgehog illustrations, quirky action figures, and playful imagery replace the stock photography and abstract gradients typical of B2B SaaS. IBM Plex Sans Variable serves as the typographic foundation — a font with genuine technical credibility (created by IBM, widely used in developer contexts) deployed here with bold weights (700, 800) on headings and generous line-heights on body text. The typography says “we’re serious engineers” while everything around it says “but we don’t take ourselves too seriously.”

The interaction design carries the same spirit: hover states flash PostHog Orange (#F54E00) text — a hidden brand color that doesn’t appear at rest but surprises on interaction. Dark near-black buttons (#1e1f23) use opacity reduction on hover rather than color shifts, and active states scale slightly. The border system uses sage-tinted grays (#bfc1b7) that harmonize with the olive text palette. Built on Tailwind CSS with Radix UI and shadcn/ui primitives, the technical foundation is modern and component-driven, but the visual output is stubbornly unique.

Key Characteristics:

2. Color Palette & Roles

Primary

Secondary & Accent

Surface & Background

Neutrals & Text

Semantic & Accent

Gradient System

3. Typography Rules

Font Family

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
Display HeroIBM Plex Sans Variable30px8001.20-0.75pxExtra-bold, tight, maximum impact
Section HeadingIBM Plex Sans Variable36px7001.500pxLarge but generous line-height
Feature HeadingIBM Plex Sans Variable24px7001.330pxFeature section titles
Card HeadingIBM Plex Sans Variable21.4px7001.40-0.54pxSlightly unusual size (scaled)
Sub-headingIBM Plex Sans Variable20px7001.40-0.5pxContent sub-sections
Sub-heading UppercaseIBM Plex Sans Variable20px7001.400pxUppercase transform for labels
Body EmphasisIBM Plex Sans Variable19.3px6001.56-0.48pxSemi-bold callout text
Label UppercaseIBM Plex Sans Variable18px7001.500pxUppercase category labels
Body SemiIBM Plex Sans Variable18px6001.560pxSemi-bold body text
BodyIBM Plex Sans Variable16px4001.500pxStandard reading text
Body MediumIBM Plex Sans Variable16px5001.500pxMedium-weight body
Body RelaxedIBM Plex Sans Variable15px4001.710pxRelaxed line-height for long reads
Nav / UIIBM Plex Sans Variable15px6001.500pxNavigation and UI labels
CaptionIBM Plex Sans Variable14px400–7001.430pxSmall text, various weights
Small LabelIBM Plex Sans Variable13px500–7001.00–1.500pxTags, badges, micro labels
MicroIBM Plex Sans Variable12px400–7001.330pxSmallest text, some uppercase
CodeSource Code Pro14px5001.430pxCode snippets and terminal

Principles

4. Component Stylings

Buttons

Cards & Containers

Inputs & Forms

Image Treatment

AI Chat Widget

5. Layout Principles

Spacing System

Grid & Container

Whitespace Philosophy

Border Radius Scale

6. Depth & Elevation

LevelTreatmentUse
Level 0 (Flat)No shadow, warm parchment backgroundPage canvas, most surfaces
Level 1 (Border)1px solid #bfc1b7 (Sage Border)Card containment, input borders, section dividers
Level 2 (Compound Border)Multiple 1px borders on different sidesInput groupings, toolbar elements
Level 3 (Deep Shadow)0px 25px 50px -12px rgba(0, 0, 0, 0.25)Modals, floating elements, mega-menu dropdowns

Shadow Philosophy

PostHog’s elevation system is remarkably minimal — only one shadow definition exists in the entire system. Depth is communicated through:

Decorative Depth

7. Do’s and Don’ts

Do

Don’t

8. Responsive Behavior

Breakpoints

NameWidthKey Changes
Mobile Small<425pxSingle column, compact padding, stacked cards
Mobile425px–640pxSlight layout adjustments, larger touch targets
Tablet640px–768px2-column grids begin, nav partially visible
Tablet Large768px–1024pxMulti-column layouts, expanded navigation
Desktop1024px–1280pxFull layout, 3-column feature grids, expanded mega-menu
Large Desktop1280px–1536pxMax-width container, generous margins
Extra Large>1536pxCentered container at max-width

Touch Targets

Collapsing Strategy

Image Behavior

9. Agent Prompt Guide

Quick Color Reference

Example Component Prompts

Iteration Guide

When refining existing screens generated with this design system:

  1. Verify the background is warm parchment (#fdfdf8) not pure white — the sage-cream warmth is essential
  2. Check that all text uses the olive family (#4d4f46, #23251d) not pure black or neutral gray
  3. Ensure hover states flash PostHog Orange (#F54E00) — if hovering feels bland, you’re missing this
  4. Confirm borders use sage-tinted gray (#bfc1b7) not neutral gray — warmth runs through every element
  5. The overall tone should feel like a fun, scrappy startup wiki — never corporate-polished or sterile