Skip to content

Theme Editor

Create and customize themes in App Settings > Themes.

Theme Editor showing color-role rows, a selected surface role, and a live board preview.

Built-in presets can’t be edited in place. Start an editable theme in one of two ways from App Settings > Themes:

  • New Theme: in the library action row, tap New Theme to start from the default palette.
  • Customize: on any theme card, tap the Customize (paintbrush) button to copy it. The copy is named “<Theme> Custom”.

Either way, the new theme becomes active immediately and the editor opens with the name field focused.

The editor header has a Theme name field. Type a name — it’s saved when you save the theme.

  1. Pick a category from the group bar at the top: Surfaces, Regions, Borders, Text, Accents, or Board.
  2. Tap a role row in the list. A row shows the color swatch, the role name, and its hex value. A crown marks a seed role (other colors derive from it); a ”↳ source” pill marks a derived role.
  3. The detail panel opens with a color picker. Adjust the color — the preview updates live. Roles that support gradients have a Use Gradient toggle instead.

Changes are a live preview only until you save.

When you edit a seed role, a Cascade section lists every role that derives from it, updating in real time — so you can see the whole knock-on effect of one change. (It appears only when the edited role actually feeds other roles.)

To break a derived role away from its source and set it by hand, use Relink to toggle it back to the auto-derived value. Reset restores the selected role; Reset Theme restores them all.

The editor checks the draft theme while you work. Diagnostics can flag missing roles, weak contrast, focus-ring separation, control boundaries, and color pairs that may be hard to tell apart with color vision differences or in grayscale.

Theme Editor Diagnostics showing contrast issues and color vision warnings for the draft theme.

Rows with a warning icon need attention. Open the row, change the role color or the seed it derives from, then check the Diagnostics summary again. For color vision warnings, adjust lightness as well as hue so the roles stay distinct without relying on color alone.

Tap Save Theme. The button stays disabled until the theme has a name, has unsaved changes, and passes required structural validation; a confirmation toast appears when it saves. The theme is already active from when you created it — saving commits your edits to it.

GroupWhat It Controls
SurfacesPanel backgrounds, depth ladder (raised, elevated, overlay), control fills
RegionsRegion-specific surfaces: sidebar, gallery, header pills
BordersSubtle, strong, separator, focus-ring borders + shadow styles
TextPrimary, secondary, tertiary, disabled, inverse, on-accent, destructive
AccentsPrimary accent seed, active controls, indicators, success/warning/error
BoardDefault board background, grid pattern, group fill, item outline colors

When you change a seed color, the derivation engine generates related colors (lighter/darker variants, complementary accents) so the theme stays consistent without tuning every role by hand. The Cascade preview shows exactly which roles it touched.

See also: Accessibility.