Fluxthinking — decoded design system
Fluxthinking'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/fluxthinking.com.
Decoded design system
Fluxthinking's decoded design system: background #FBFBFD, text #1D1D1F, accent #16A085, link #526860, primary #4D6259; type scale h1 72px / h2 64px / body 14px; 4px spacing base; 2px base radius. The single interactive/action color is #111111 — used only on interactive or must-notice elements (buttons, links, key highlights), never on large fills.
Color roles
| Role | Value |
|---|---|
| bg | #FBFBFD |
| surface | #EDEDEF |
| border | #D9D9DB |
| text | #1D1D1F |
| text_muted | #717173 |
| primary | #4D6259 |
| accent | #16A085 |
| link | #526860 |
| secondary | #16A085 |
| button_bg | #111111 |
| button_text | #FFFFFF |
Using these colors
- Action color
#111111— the single interactive color; only on things you click or must notice, never large fills. accent,secondaryare all#16A085— one role, not several (the action color).- accent
#16A085— accent for emphasis — keep it rare on the page. - primary
#4D6259— a neutral UI color (chips, tags, icon fills, chrome), not the action color (action = #111111). - link
#526860— reads as a neutral UI color, not a link accent — verify against the reference (action = #111111).
Typography
- Heading: Plus Jakarta Sans
- Body: Plus Jakarta Sans
- h1: 72px
- h2: 64px
- body: 14px
Spacing
- base unit: 4px
- scale: 12px, 14px, 16px, 24px, 28px, 32px, 40px, 44px, 48px, 64px
Radii
- base: 2px
- button: 100px
Shadows (elevation)
- subtle:
rgba(0, 0, 0, 0.06) 0px 1px 0px 0px - overlay:
rgba(0, 0, 0, 0.06) 0px 2px 40px 0px, rgba(255, 255, 255, 0.8) 0px 1px 0px 0px
Motion
Micro-interactions run at 700ms (dominant) with ease.
- durations: 700ms · 200ms · 250ms
- easings:
ease·cubic-bezier(0.25, 0.46, 0.45, 0.94) - animated properties: opacity, transform, color, background
Native design tokens
| Token | Value |
|---|---|
--teal | #16A085 |
--teal-deep | #0e7a64 |
--teal-light | #1ec9a8 |
--amber | #E67E22 |
--amber-deep | #c9661a |
--sage | #526860 |
--sage-deep | #4d6259 |
--ink | #111111 |
--body | #1d1d1f |
--muted | #6e6e73 |
…and 6 more measured on the page.
Button states (measured)
- primary hover: background
#333333 - primary focus: outline
1px auto rgb(16, 16, 16)
Layout (measured)
- container max-width:
1120px - nav: 64px fixed, backdrop
saturate(1.8) blur(20px) - common grid: 2 columns
Motion choreography (measured)
Load order: div.hero-orb×2
Responsive (measured)
- mobile (390px): hero 42px · nav hamburger
Install it
Drop this measured system into any shadcn/Tailwind project in one command:
npx shadcn add mozaika.design/r/decode/fluxthinking.com
Or as a Meta Astryx theme — a ready defineTheme file with the measured hover/press states baked in:
curl -o src/themes/fluxthinking.theme.ts https://mozaika.design/api/astryx/decode/fluxthinking.com.ts
registry item · astryx theme · or query it over MCP: get_design_system("Fluxthinking")
Export: DESIGN.md
# Fluxthinking — Design System > light, professional, medium, custom — deep decode (measured live) ## Colors | Role | Value | |------|-------| | bg | `#FBFBFD` | | surface | `#EDEDEF` | | border | `#D9D9DB` | | text | `#1D1D1F` | | text_muted | `#717173` | | primary | `#4D6259` | | accent | `#16A085` | | link | `#526860` | | secondary | `#16A085` | | button_bg | `#111111` | | button_text | `#FFFFFF` | **Using these colors** - **Action color** `#111111` — the single interactive color; it appears only on things you click or must notice (buttons, key highlights), never on large fills or backgrounds. - `accent`, `secondary` are all `#16A085` — one role, not several. - **accent** `#16A085` — accent for emphasis — keep it rare on the page. - **primary** `#4D6259` — a neutral UI color (chips, tags, icon fills, chrome), not the action color (action = #111111). - **link** `#526860` — reads as a neutral UI color, not a link accent — verify against the reference (action = #111111). - **Page coverage** (full-page screenshot pixels): `#FBFBFD` 94.4% · `#D4DBDA` 5.6% ## Typography - Heading: **Plus Jakarta Sans** - Body: **Plus Jakarta Sans** | Role | Size / weight · line-height · tracking | |------|------------------------------------------| | hero | 72px / 200 · lh 76px · tracking -3.24px | | h2 | 64px / 200 · lh 67px · tracking -2.56px | | h3 | 56px / 200 · lh 60px · tracking -2.24px | | body | 14px / 300 · lh 24px | | small | 13px / 300 · lh 21px | | eyebrow | 11px / 600 · tracking 0.88px | - Weight ladder: 200 · 300 · 400 · 500 · 600 — use these exact measured weights, not the 400/600 defaults. > **Fonts —** Plus Jakarta Sans — free, on Google. ## Spacing - base unit: 4px (inferred from the measured scale) - measured scale: 12px, 14px, 16px, 24px, 28px, 32px, 40px, 44px, 48px, 64px — snap all gaps/padding to these - section rhythm: 120px top/bottom padding per section (measured) ## Radius - base: 2px - button: 100px - card: 50px ## Buttons | Button | Fill / text | Border | Radius | Padding | Font | Shadow | |--------|-------------|--------|--------|---------|------|--------| | primary | `#111111` / `#FFFFFF` | none | 100px | 8px 18px 8px 18px | 400 13px / -0.13px | none | **States (measured, not guessed)** - primary hover: background `#333333` - primary focus: outline `1px auto rgb(16, 16, 16)` - transition: `background 0.2s ease` ## Shadows (elevation) - subtle: `rgba(0, 0, 0, 0.06) 0px 1px 0px 0px` - overlay: `rgba(0, 0, 0, 0.06) 0px 2px 40px 0px, rgba(255, 255, 255, 0.8) 0px 1px 0px 0px` ## Motion - durations: 700ms (dominant) · 200ms · 250ms - easings: `ease` (dominant) · `cubic-bezier(0.25, 0.46, 0.45, 0.94)` - animated properties: opacity, transform, color, background 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 | |-------|-------| | `--teal` | `#16A085` | | `--teal-deep` | `#0e7a64` | | `--teal-light` | `#1ec9a8` | | `--amber` | `#E67E22` | | `--amber-deep` | `#c9661a` | | `--sage` | `#526860` | | `--sage-deep` | `#4d6259` | | `--ink` | `#111111` | | `--body` | `#1d1d1f` | | `--muted` | `#6e6e73` | | `--silver` | `#a1a1a6` | | `--bg` | `#fbfbfd` | _…and 4 more measured on the page._ Prefer these names when extending their system — it's the brand's actual vocabulary. ## Layout (measured) - container max 1120px · common grid: 2-col - nav: 64px fixed · backdrop saturate(1.8) blur(20px) · border-bottom 1px solid rgba(0, 0, 0, 0.08) · bg rgba(251, 251, 253, 0.85) | Section (y) | Height | Cols | Gap | Pad y | Split | |---|---|---|---|---|---| | 0 | 900 | 3 | — | 64/120 | 33/21/46 | | 900 | 600 | 2 | 80 | 100/100 | — | | 1500 | 640 | 2 | 96 | 120/120 | — | | 2139 | 1198 | 2 | 64 | 120/120 | — | | 3337 | 1116 | 2 | 1 | 120/120 | — | | 4452 | 1026 | 2 | 80 | 100/100 | — | ## Motion choreography (measured) Load order: `div.hero-orb`×2 @0ms - `div.hero-orb` ×2 — transform translate(0px) scale(1)→translate(16px, 14px) scale(1.04) — 12000ms ease-in-out · loops Rebuild the timeline, not just the durations — order, delays and staggers above are the choreography. ## Responsive (measured) - mobile (390px): hero 42px · body 16px · nav: hamburger ## 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/fluxthinking.com
An automated reading of Fluxthinking's publicly-visible CSS (colors, fonts, spacing, motion) — not affiliated with fluxthinking.com. No screenshots stored. Removal requests: hello@mozaika.design.