THEME.DOWE

Named themes

Define semantic color systems once, inherit complete palettes safely, and generate the same active theme model for every target.

ROOT STRUCTURE

Select one default and declare every name

design.defaultTheme must match a declared theme. light and dark can reuse Dowe's integrated palettes, while project themes can extend either base and override only the roles that differ.

dowe
theme
  fonts default:"inter" install:["inter"]
  design defaultTheme:"light"
    theme name:"light"
      colors:
        primary color:"#1F3A5F" text:"#FFFFFF" title:"#FFFFFE"
        happy color:"#176C75" text:"#FFFFFE" title:"#FFFFFE"
        softHappy color:"#D9F3F1" text:"#124D53" title:"#124D53"
        background color:"#FFFFFF" text:"#17263A" title:"#17263E"
        surface color:"#F7F9FC" text:"#17263A" title:"#17263E"
        softPrimary color:"#CCFBF3" text:"#073B35" title:"#073B35"
    theme name:"dark"
      colors:
        primary color:"#6BC670" text:"#0E2513" title:"#0E2513"
        background color:"#0F1721" text:"#F4F7FB" title:"#F4F7FB"
        surface color:"#182331" text:"#F4F7FB" title:"#F4F7FB"
    theme name:"brand" extends:"light"
      colors:
        primary color:"#007565" text:"#FFFFFF" title:"#FFFFFF"
        softPrimary color:"#CCFBF3" text:"#073B35" title:"#073B35"

DEFAULT THEME

Controls the first render

The normalized default is active in initial HTML and native output before a stored theme preference is applied.

NAMED CATALOG

Available to every target

Every resolved name is emitted deterministically and becomes an option for SelectTheme.

INHERITANCE

Override a focused subset

extends resolves the parent first. Missing roles come from the parent instead of target-specific fallbacks.

SEMANTIC COLORS

Thirty-six required color roles

A resolved theme is complete before generation. Use hexadecimal #RGB, #RRGGBB, or #RRGGBBAA values in theme.dowe and semantic families in views.

Group
Tokens

No data

There are no records to display

BASE + ON

Strong semantic surfaces

solid uses primary for the fill, primaryText for ordinary content, and primaryTitle for Title or semantic headers.

SOFT CONTENT ROLES

Lower visual emphasis

soft uses softPrimary with softPrimaryText for content and softPrimaryTitle for titles.

CUSTOM FAMILY

Project-defined semantics

Card scheme happy resolves happy, happyText, and happyTitle from theme.dowe.

OPTIONAL SOFT FAMILY

Declared, never derived

variant soft uses softHappy only when that complete family is declared.

RESOLUTION

Themes change color, not component geometry

Named themes own semantic colors. Radius, border, shadow, size, and variant defaults belong to component slots directly under design.

Views stay semantic

Use scheme:"primary", bg:"surface", or color:"muted" instead of copying hexadecimal values into pages.

Parents resolve first

Dowe rejects missing parents and inheritance cycles before any target artifacts are generated.

Every result is complete

A custom base without extends must provide every required role; inherited themes may remain focused.

RUNTIME CONTROLS

Expose the normalized catalog

SelectTheme lists every resolved name. ToggleTheme is intentionally limited to light and dark. Both persist one shared theme preference.

Documentation theme

VALIDATION

Invalid theme graphs stop compilation

Names and defaults

Names start with a lowercase letter and use lowercase letters, numbers, and hyphens. Names must be unique, and defaultTheme must resolve.

Colors

Unknown roles, non-hex values, and incomplete resolved themes are rejected with source locations.

Inheritance

A missing parent or an inheritance cycle is reported before web, desktop, Android, or iOS generation.