How Colours Work in Light and Dark Mode
Farkitect draws every diagram in the theme you’re using — light or dark. A colour that reads well on a light canvas can nearly disappear on a dark one (a pale grey line, a mid-grey border), and the reverse. So every colour on a diagram has two values: one for light mode and one for dark.
Most of the time the two are the same, and you never notice. When they need to differ — a border that needs to be dark on white and light on near-black — you set each side separately.
A colour pair
Section titled “A colour pair”Each colour setting holds a light value and a dark value. In the metamodel editor and the Appearance section they sit side by side, with a link between them:
- Linked (
=) — editing one side sets both. New colours start linked, and a pair opens linked when both sides match. - Unlinked (
≠) — each side is set on its own.
Either side can also be Auto.
What Auto means
Section titled “What Auto means”Auto isn’t “no colour”. It means “let the theme decide”, and it’s often the best choice — especially for borders, lines and text. What Auto gives depends on the setting:
| Setting | Auto in light mode | Auto in dark mode |
|---|---|---|
| Node fill | White | Dark grey |
| Node border | Charcoal (#3F3F46) |
Off-white (#E4E4E7) |
| Node text | Black or white, whichever contrasts with the fill | Black or white, whichever contrasts with the fill |
| Folded corner | The fill, about 15% darker | The fill, about 15% lighter |
| Edge line | Charcoal (#3F3F46) |
Off-white (#E4E4E7) |
| Edge labels | The theme’s label colours | The theme’s label colours |
Text that sits outside a node (a label placed below a symbol) uses the theme’s label colour on Auto. A folded corner on a node with no fill takes the theme’s border colour.
Where a colour comes from
Section titled “Where a colour comes from”A node or edge takes each colour from the first of these that sets it, for the current theme:
- This diagram — an override set in the Appearance section. It applies to this one occurrence, on this one diagram.
- The type — the element type’s or relationship type’s colour, set in the metamodel.
- Auto — the theme’s default, as above.
Each side falls through on its own. If a diagram overrides only the light side of a fill, dark mode uses the type’s dark fill. The Appearance section shows where each value comes from: Default #AFCFD8 · M2 means “inherited from the metamodel”, Default #3F3F46 · Auto means “the theme’s default”.
Two things always use the theme’s colours, whatever is set:
- Non-compliant nodes and edges (ones that break the metamodel’s rules) keep their grey, so the warning can’t be hidden by a colour choice.
- Chrome — the canvas, grid, label backgrounds and compartment dividers — is part of the theme, not the notation. The canvas colour can’t be set.
Contrast warnings
Section titled “Contrast warnings”Because you choose colours for each theme, you can choose ones that are hard to read. Farkitect shows a ⚠ beside a colour that falls below a readable contrast in either theme:
- text on its fill, or a label on its background: below 4.5 : 1;
- a line, or the border of an unfilled node, against the canvas: below 3 : 1.
These are the WCAG AA thresholds. The warning never stops you saving — a subtle border is sometimes exactly what you want — and Auto colours never trigger it.
Shadows
Section titled “Shadows”A drop shadow in light mode is a soft dark shadow below and to the right of the node. On a near-black canvas a dark shadow can’t be seen, so in dark mode the same setting draws a faint white halo in the same place. Shadows follow the node’s true outline, including folded corners, chamfers, chevron points and diamonds.
Themes, diagrams and exports
Section titled “Themes, diagrams and exports”- Switching the app theme redraws every diagram with that theme’s colours.
- The theme toggle on a diagram’s toolbar shows just that diagram in the other theme — useful for checking both without changing the app.
- An exported image or PDF uses the diagram’s current theme. To export in the other theme, switch the diagram’s toggle first.
The built-in metamodels
Section titled “The built-in metamodels”The metamodels Farkitect ships with were given curated palettes:
- Their fills are light pastels that read on either canvas, so each fill is the same in both themes.
- Their lines were mostly light greys chosen for a dark canvas, and nearly invisible on a light one. They’re now Auto: charcoal in light mode, off-white in dark.
- The few line colours that carry meaning keep their colour, with a dark value chosen to stay readable — for example M2 Common’s Trace, Realization, Annotation and Dependency lines are green (
#16A34A) in light mode and a brighter green (#4ADE80) in dark.
What happened to existing models
Section titled “What happened to existing models”When this arrived, every project was converted in place:
- Every colour became the same colour in both themes, so nothing changed its look except as below.
- Grey lines and borders — black, white and the greys between — became Auto, so they now follow the theme.
- In projects’ copies of the built-in metamodels, the curated palettes were applied where a line still had its original colour.
- Every other colour, including any colour someone had chosen, was kept exactly as it was.
Older .farki files are converted the same way when you import them — see Format versions.