LaunchDarkly — decoded design system
LaunchDarkly's design system, decoded live by Mozaika: measured color roles, type scale, buttons with real hover/focus states, motion and the brand's own tokens.
This is a static, crawlable rendering for search & AI engines. The interactive version — filters, live decode console, copy & export — is at https://mozaika.design/decode/launchdarkly.com.
Decoded design system
LaunchDarkly's decoded design system: background #191919, text #FFFFFF, accent #DDFF46, link #414042, primary #DDFF46; type scale h1 80px / h2 64px / body 16px; 4px spacing base; 16px base radius. The single interactive/action color is #DDFF46 — used only on interactive or must-notice elements (buttons, links, key highlights), never on large fills.
Color roles
| Role | Value |
|---|---|
| bg | #191919 |
| surface | #262626 |
| border | #3B3B3B |
| text | #FFFFFF |
| text_muted | #A7A7A7 |
| primary | #DDFF46 |
| accent | #DDFF46 |
| link | #414042 |
| secondary | #405BFF |
| button_bg | #DDFF46 |
| button_text | #191919 |
Using these colors
- Action color
#DDFF46— the single interactive color; only on things you click or must notice, never large fills. primary,accent,button_bgare all#DDFF46— one role, not several (the action color).- accent
#DDFF46— 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
#414042— fails contrast on the background (~1.7:1) — this is a dark UI color, NOT a readable link; use the text or action color for links (verify against the reference). - secondary
#405BFF— 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.
Typography
- Heading: Arial
- Body: Arial
- Mono: monoFont
- h1: 80px
- h2: 64px
- body: 16px
Spacing
- base unit: 4px
- scale: 5px, 6px, 8px, 10px, 12px, 16px, 20px, 22px, 24px, 31px
Radii
- base: 16px
- button: 12px
Motion
Micro-interactions run at 300ms (dominant) with ease.
- durations: 300ms · 200ms · 160ms
- easings:
ease·ease-in - animated properties: transform, border-color, background-color, color
Native design tokens
| Token | Value |
|---|---|
--border | #d8e5ee |
--green-900 | #007844 |
--cyan-800 | #288b9f |
--blue-400 | #7084ff |
--pink-600 | #d9305b |
--refresh-grey-800 | #212121 |
--purple-200 | #f1e5fa |
--refresh-lime-100 | #aaec3a |
--yellow-900 | #818c1f |
--black-00 | #2c2c2c |
…and 110 more measured on the page.
Button states (measured)
- primary hover: border
1px solid rgb(255, 255, 255)· color#FFFFFF - primary focus: outline
1px auto rgb(16, 16, 16)
Layout (measured)
- container max-width:
1416px - nav: 24px
- common grid: 2 columns
Motion choreography (measured)
Load order: div.primitives-module__Pbeuw → div.styles-module__5F-SCq__w×16 → button.styles-module__0nMkBW__p → div.Cost-module__gRBZNa__rev → div.Toxicity-module__IGtOPW_ → div.primitives-module__Pbeuw×4
Scroll reveal: 2 elements rest at a pre-reveal state, animate in over 22000ms.
Stagger: div ×16 — 80ms apart.
Input (measured)
height 56px · radius 0px
Responsive (measured)
- breakpoints: 500px · 659px · 768px · 1024px · 1099px · 1260px
- mobile (390px): hero 34px · nav inline
Install it
Drop this measured system into any shadcn/Tailwind project in one command:
npx shadcn add mozaika.design/r/decode/launchdarkly.com
Or as a Meta Astryx theme — a ready defineTheme file with the measured hover/press states baked in:
curl -o src/themes/launchdarkly.theme.ts https://mozaika.design/api/astryx/decode/launchdarkly.com.ts
registry item · astryx theme · or query it over MCP: get_design_system("LaunchDarkly")
Export: DESIGN.md
# LaunchDarkly — Design System > dark, modern, high, custom — deep decode (measured live) ## Colors | Role | Value | |------|-------| | bg | `#191919` | | surface | `#262626` | | border | `#3B3B3B` | | text | `#FFFFFF` | | text_muted | `#A7A7A7` | | primary | `#DDFF46` | | accent | `#DDFF46` | | link | `#414042` | | secondary | `#405BFF` | | button_bg | `#DDFF46` | | button_text | `#191919` | **Using these colors** - **Action color** `#DDFF46` — the single interactive color; it appears only on things you click or must notice (buttons, key highlights), never on large fills or backgrounds. - `primary`, `accent`, `button_bg` are all `#DDFF46` — one role, not several (your action color). - **accent** `#DDFF46` — 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** `#414042` — fails contrast on the background (~1.7:1) — this is a dark UI color, NOT a readable link; use the text or action color for links (verify against the reference). - **secondary** `#405BFF` — 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. - **Page coverage** (full-page screenshot pixels): `#191919` 53.5% · `#070707` 19.9% · `#FDFEF9` 16.6% · `#858292` 10% ## Typography - Heading: **Arial** - Body: **Arial** - Mono: **monoFont** _(measured)_ | Role | Size / weight · line-height · tracking | |------|------------------------------------------| | hero | 80px / 700 · lh 80px · tracking -2px | | h2 | 64px / 700 · lh 64px · tracking -3.2px | | h3 | 60px / 600 · lh 60px · tracking -1.2px | | body | 16px / 400 · lh 24px | | small | 15px / 400 · lh 24px | - Weight ladder: 400 · 500 · 600 · 700 — use these exact measured weights, not the 400/600 defaults. > **Fonts —** Arial — system font, no web load needed. ## Spacing - base unit: 4px (inferred from the measured scale) - measured scale: 5px, 6px, 8px, 10px, 12px, 16px, 20px, 22px, 24px, 31px — snap all gaps/padding to these - section rhythm: 120px top/bottom padding per section (measured) ## Radius - base: 16px - button: 12px - card: 16px - pill: 9999px - sharp: 2px ## Buttons | Button | Fill / text | Border | Radius | Padding | Font | Shadow | |--------|-------------|--------|--------|---------|------|--------| | primary | `#DDFF46` / `#191919` | 1px solid rgb(25, 25, 25) | 12px | 10px 12px 10px 16px | 500 18px / -0.18px | none | | secondary | `rgba(0, 0, 0, 0)` / `#FFFFFF` | 1px solid rgba(0, 0, 0, 0) | 8px | 8px 12px 8px 12px | 400 16px | none | **States (measured, not guessed)** - primary hover: border `1px solid rgb(255, 255, 255)` · color `#FFFFFF` - primary focus: outline `1px auto rgb(16, 16, 16)` - secondary hover: border `1px solid rgba(255, 255, 255, 0.1)` · background `#2C2C2C` - transition: `background-color 0.3s ease` ## Motion - durations: 300ms (dominant) · 200ms · 160ms - easings: `ease` (dominant) · `ease-in` - animated properties: transform, border-color, background-color, color Micro-interactions use the dominant duration + easing; nothing on the page animates slower than the longest duration above — don't invent springier motion. ## Their own tokens (verbatim from :root) | Token | Value | |-------|-------| | `--border` | `#d8e5ee` | | `--green-900` | `#007844` | | `--cyan-800` | `#288b9f` | | `--blue-400` | `#7084ff` | | `--pink-600` | `#d9305b` | | `--refresh-grey-800` | `#212121` | | `--purple-200` | `#f1e5fa` | | `--refresh-lime-100` | `#aaec3a` | | `--yellow-900` | `#818c1f` | | `--black-00` | `#2c2c2c` | | `--pink` | `#ff35a2` | | `--refresh-grey-500` | `#58595b` | _…and 108 more measured on the page._ Prefer these names when extending their system — it's the brand's actual vocabulary. ## Layout (measured) - container max 1416px · common grid: 2-col - nav: 24px | Section (y) | Height | Cols | Gap | Pad y | Split | |---|---|---|---|---|---| | 4 | 1060 | — | — | 0/0 | — | | 1228 | 2721 | 2 | 56 | 0/0 | 40/60 | | 3949 | 830 | — | — | 120/0 | — | | 4795 | 872 | 2 | 40 | 0/0 | — | ## Motion choreography (measured) Load order: `div.primitives-module__Pbeuw` @0ms → `div.styles-module__5F-SCq__w`×16 @299ms → `button.styles-module__0nMkBW__p` @300ms → `div.Cost-module__gRBZNa__rev` @782ms → `div.Toxicity-module__IGtOPW_` @965ms → `div.primitives-module__Pbeuw`×4 @1121ms - `div.styles-module__5F-SCq__w` ×16 — opacity 0→1 · transform translate3d(0px, 120px, 0px)→translateZ(0px) — 700ms cubic-bezier(0.22, 0.61, 0.36, 1) - `div.primitives-module__Pbeuw` — transform translateX(0px)→translateX(-50%) — 22000ms · loops - stagger: `div` ×16 — 80ms apart - scroll reveal: 2 elements rest at a pre-reveal state, animate in over 22000ms (2 revealed during the drive). Rebuild the timeline, not just the durations — order, delays and staggers above are the choreography. ## Components (measured) - input: h 56px · r 0px · bg rgba(0, 0, 0, 0) · placeholder #939598 - link: #405BFF · no underline ## Responsive (measured) - breakpoints: 500px · 659px · 768px · 1024px · 1099px · 1260px - mobile (390px): hero 34px · body 16px · nav: inline ## 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. Hover/focus states, shadows and motion timings above are measured from the live page — match them exactly, don't re-guess them. --- > **Decoded with Mozaika** — measured live, not guessed. Full decoded design system + one-command install: mozaika.design/decode/launchdarkly.com
An automated reading of LaunchDarkly's publicly-visible CSS (colors, fonts, spacing, motion) — not affiliated with launchdarkly.com. No screenshots stored. Removal requests: hello@mozaika.design.