FlowDrop uses CSS custom properties with a --fd-* prefix as its theming API. Override these tokens to customize the editor’s appearance.
FlowDrop’s token system has three tiers:
Tier Purpose You customize? Internal Palette (--_*)Raw color values No Semantic Tokens (--fd-*)Public theming API Yes Component styles Consume semantic tokens No
Override --fd-* tokens and all components update automatically.
/* Example: Apply a purple theme */
--fd-primary-hover : # 7c3aed ;
--fd-primary-muted : # f5f3ff ;
Token Description --fd-backgroundMain background color --fd-foregroundMain text color --fd-mutedMuted background (cards, inputs) --fd-muted-foregroundMuted text color --fd-cardCard background --fd-card-foregroundCard text color
Token Description --fd-borderDefault border color --fd-border-mutedSubtle border --fd-border-strongEmphasized border --fd-ringFocus ring color
Token Description --fd-primaryPrimary action color (buttons, links) --fd-primary-hoverPrimary hover state --fd-primary-foregroundText on primary background --fd-primary-mutedLight primary background --fd-accentAccent color --fd-accent-hoverAccent hover state
Each status color has four variants:
Base Token -hover-foreground-muted--fd-success--fd-success-hover--fd-success-foreground--fd-success-muted--fd-warning--fd-warning-hover--fd-warning-foreground--fd-warning-muted--fd-error--fd-error-hover--fd-error-foreground--fd-error-muted--fd-info--fd-info-hover--fd-info-foreground--fd-info-muted
Token Default --fd-space-3xs4px --fd-space-2xs6px --fd-space-xs8px --fd-space-sm10px --fd-space-md12px --fd-space-lg14px --fd-space-xl16px --fd-space-2xl20px --fd-space-3xl24px
Token Default --fd-radius-sm4px --fd-radius-md6px --fd-radius-lg8px --fd-radius-xl12px --fd-radius-full9999px (pill shape)
Token Default --fd-text-xs12px --fd-text-sm14px --fd-text-base16px --fd-text-lg18px --fd-text-xl20px
Token Default Description --fd-sidebar-width320px Node sidebar width --fd-navbar-height60px Top navbar height --fd-toolbar-height40px Canvas toolbar height
Node dimensions use a 10px grid to align with the editor’s snap grid:
Token Default Description --fd-node-default-width290px Standard node width --fd-node-header-height60px Node header area --fd-node-terminal-size80px Terminal node size (start/end) --fd-node-square-size80px Square node size (gateway) --fd-handle-size20px Port handle hit area --fd-handle-visual-size12px Port handle visible size
For fine-grained accent control, FlowDrop exposes HSL components:
Token Default Description --fd-accent-hue17 Accent hue (0–360) --fd-accent-saturation100% Accent saturation --fd-accent-lightness34% Accent lightness --fd-accent-low(derived) Low-intensity accent --fd-accent-high(derived) High-intensity accent --fd-gray-hue210 Base hue for grays
Quick accent experiments:
--fd-accent-hue : 174 ; /* Teal */
--fd-accent-hue : 260 ; /* Purple */
--fd-accent-hue : 340 ; /* Pink */
--fd-accent-hue : 220 ; /* Blue */
--fd-accent-hue : 150 ; /* Green */
FlowDrop auto-switches tokens based on data-theme:
< html data-theme = " dark " ></ html >
Or programmatically:
import { setTheme, toggleTheme } from ' @flowdrop/flowdrop/settings ' ;
All semantic tokens have dark-mode equivalents that activate automatically. The accent HSL knobs adjust luminance in dark mode — --fd-accent-low becomes darker and --fd-accent-high becomes lighter.