Foblex Flow ships with a default SCSS theme and a selective SCSS API.
Use the default entrypoint when you want the shipped visual system immediately, and switch to mixins when you need tighter control over feature styling, scope, or bundle shape.
There are two public styling entry points:
@use '@foblex/flow/styles/default';@use '@foblex/flow/styles' as flow-theme;The theme is layered like this:
--ff-* alias tokens: the public variables consumed by runtime primitives.For application code, the public contract is:
@foblex/flow/styles;--ff-* alias tokens.ng addng add installs the library and also adds node_modules/@foblex/flow/styles/default.scss to the app styles when the entry is missing.
angular.json setupdefault.scss is the same as:
If you want to compose the theme by feature:
Add optional layers only when your editor needs them:
Important details:
theme-all() includes flow/canvas, node/group, connector, connection-all, external-item-all, and plugins.grouping() is opt-in and is not part of theme-all().connection-all() includes the base drag-handle styling, but not always-visible drag handles. Use connection-drag-handles-visible() for that behavior.The simplest option is a global stylesheet such as src/styles.scss.
If you apply theme mixins from a component stylesheet, remember that Angular view encapsulation will scope selectors unless you deliberately pierce it. Typical options are:
::ng-deep for demo/example-level scoping;ViewEncapsulation.None.In real applications, theme-tokens() is usually connected once at the application level, while per-editor overrides are done with CSS variables on a wrapper element.
That keeps your app aligned with future theme updates.
fConnectionContentfConnectionContent renders as a normal HTML element with the .f-connection-content class. It is not part of the SVG stroke itself, so the safest customization path is to style .f-connection-content directly.
The library base styles give it intrinsic width sizing (inline-size: max-content), which avoids the usual absolute-positioned shrink-to-fit behavior. If you want wrapped labels, set your own width or max-width.
Available default aliases for this element:
--ff-connection-content-color--ff-connection-content-background-color--ff-connection-content-border-color--ff-connection-content-border-color-selected--ff-connection-content-border-radius--ff-connection-content-font-size--ff-connection-content-padding-y--ff-connection-content-padding-xUse one of these strategies:
If you override connection internals from a component stylesheet, remember that projected SVG/content often requires global styles or ::ng-deep.
theme-tokens() should usually be included once per application theme root.default.scss is best when you want the whole theme quickly.If this guide saved time in your editor setup, please ⭐ the repo on GitHub.