--- title: "Swappable themes" description: "FlowDrop's look and feel is fully themeable through CSS custom properties — swap palettes, spacing, and radius without touching component code." source: https://flowdrop.io/docs/editor/swappable-themes site: FlowDrop documentation --- # Swappable themes FlowDrop is designed to blend into your product, not the other way around. Every surface, color, border, and spacing value is driven by semantic CSS custom properties (`--fd-*`), so you can re-skin the entire editor — nodes, sidebar, toolbar, playground, and dialogs — by overriding a handful of tokens. ## Three themes, one editor FlowDrop ships with three themes out of the box. Each is just a set of `--fd-*` token overrides — the same editor, re-skinned. Launch any of them live in the demo: Full chrome and node palette — the standard FlowDrop feel. Quieter chrome for embedding inside an existing UI. A sketch-like, low-fidelity whiteboard skin. ## How it works Themes are just sets of token overrides. Because every component reads from the same `--fd-*` semantic tokens, changing a token cascades everywhere at once: ```css :root { --fd-primary: #8b5cf6; --fd-primary-hover: #7c3aed; --fd-radius-md: 0.75rem; } ``` Swap themes at runtime by toggling a class or `data-` attribute on a wrapping element and scoping your token overrides to it: ```css [data-fd-theme='violet'] { --fd-primary: #8b5cf6; --fd-primary-hover: #7c3aed; --fd-accent: #8b5cf6; } ``` Dark mode works the same way — every semantic token has a dark-mode equivalent that activates automatically via `data-theme="dark"`. ## Go deeper Full token reference — surfaces, borders, status colors, spacing, radius, typography, node layout, and ready-to-use theme examples.