Foblex Flow styling is token-driven.
The shipped SCSS creates three token layers, but for application-level customization you should usually touch only the final one: --ff-* alias tokens.
Defined in primitive-tokens().
These are the raw design values: grayscale, accent palette, radii, fonts, and shadows.
Examples:
--ff-gray-800--ff-blue-500--ff-radius-4--ff-shadow-2Defined in semantic-tokens().
These map primitives to UI intent: surfaces, borders, text, selection, minimap, magnetic helpers, and state colors.
Examples:
--ff-color-surface-card--ff-color-border-accent--ff-color-connection-hover--ff-color-minimap-viewDefined in ff-aliases().
These are the variables actually consumed by styling mixins and runtime classes.
Examples:
--ff-node-background-color--ff-group-background-color--ff-grouping-drop-target-border-color-active--ff-connector-size--ff-connection-selected-color--ff-selection-area-colorFor app code, these alias tokens are the recommended override layer.
Use the mixins as-is and change only --ff-* values:
This keeps all shipped selectors and interaction states, but changes the visual identity.
CSS variables cascade, so you can theme a single editor instance:
This is the preferred way to support multiple branded editors on the same page.
The shipped theme already defines defaults for .dark and [data-theme='dark'].
Override the same alias layer there:
These families cover the main public customization surface:
--ff-flow-*--ff-canvas-*--ff-node-*--ff-group-*--ff-grouping-drop-target-*--ff-handle-*--ff-connector-*--ff-outlet-*--ff-connection-*--ff-marker-*--ff-waypoint-*--ff-background-*--ff-selection-area-*--ff-minimap-*--ff-magnetic-*--ff-external-item-*If you stay within these families, you can usually upgrade the library without forking its internal styling files.
Touch the lower layers only when you are building a broader design system around Foblex Flow, for example:
For normal application work, overriding aliases is simpler, safer, and easier to reason about.