Themes
Pick the chrome preset your dialogue box, choices, and HUD wear, pick the grade the 3D picture is shot in, and know exactly what each one does and does not change.
A theme is the skin on the game's user interface: the dialogue plate, the choice buttons, the speaker tab, the HUD, the frame ornament. It is one project-wide choice from five presets. There is no color picker, no per-scene override, and no custom chrome art.
Set a theme
Open the Theme tab
Right dock, Project tab, then Theme.
Pick a preset
The select lists all five. Under it, a mock dialogue plate redraws in the preset you chose, so you can compare without leaving the panel. The mock is decoration: it shows a speaker tab, a line, and two choice buttons, and it does not render the real HUD or the control strip.
The setting is project-wide and replicates like any other project field, so a collaborator sees your change immediately. Editors and above can change it; a viewer sees the select disabled.
The presets
| Preset | What it looks like |
|---|---|
ember-noir | Near-black plates, ember accent. The default, and what an untouched project already renders |
parchment | Sun-bleached paper, sepia ink, oxblood accent. Serif throughout |
terminal | Phosphor green on black. Square corners, mono type, fast motion |
pulp | Comic panel: white plate, heavy black rules, hot red accent |
porcelain | Frosted white, slate ink, indigo accent. Big radius, soft blur, slow motion |
ember-noir and "no theme set" are the same pixels, so an old project that never touched this panel renders identically to one that picked the default on purpose.
The grade
The theme dresses the chrome. The grade dresses the picture behind it: the post-processing the 3D stage lays over every frame it draws. It is the second select in the same Theme panel, one project-wide choice like the theme, and it rides in the bundle the same way.
| Grade | What it does to the image |
|---|---|
| (none) | Ungraded. The stage as it renders, nothing on the lens |
clean | The lens without the film. A light vignette, and every depth stays sharp |
film | A projected print. Soft bloom, a deeper vignette, fine grain, a hair of color fringing, the color pulled back and the contrast up a step |
noir | The print with the color drained. Near monochrome, hard contrast, the heaviest vignette and grain, and the shallowest focus of the four |
glow | The dream. Wide bloom off a low threshold, warmer and more saturated, visible fringing, no grain |
Leaving the select on (none) is a real choice, not an empty one: no chain is mounted at all, and the frame is byte for byte the picture the stage drew before this select existed. Picking it after a grade removes the grade entirely.
Three of the four also set how shallow the focus is. The lens holds the speaker's face and lets the rest of the set soften, softest under noir. clean and an ungraded stage keep every depth sharp.
The grade shows on the play surface only, so Preview is where you judge it. The editor's stage viewport draws ungraded.
Two readers see less than you picked, and neither is a bug:
- A low-power device sheds the whole grade. The chain is a full-frame pass and a bloom pyramid on top of the render, so a weak GPU plays every scene ungraded rather than dropping frames. Nothing downloads either: the chain is a lazy chunk that never loads on that tier.
- Reduce motion turns the grain off. Grain is animated noise, which is motion. Bloom, vignette, fringing, color and the focus all stay, so
filmandnoirstill read as themselves, just clean. A story cannot opt a reader back in.
What a theme actually controls
A preset re-points a fixed set of tokens and nothing else. No new rule, no new element, no code. Everything the player draws reads from one of these:
| Token group | Tokens |
|---|---|
| Color | --vn-ink, --vn-ink-dim, --vn-accent, --vn-accent-soft, --vn-plate, --vn-plate-hi, --vn-edge, --vn-backdrop |
| Form | --vn-corner, --vn-blur, --vn-frame, --vn-frame-slice |
| Type | --vn-display (chrome face), --vn-body (prose face) |
| Motion | --vn-dur |
--vn-accent is the one interactive color: hover, focus, press, pressed state, gauge fill, the locked-choice glyph. --vn-frame is the source image for the nine-slice corner ornament on framed panels. --vn-dur is the base animation duration, and it is dropped entirely when the reader has reduced motion on, either at the OS level or with the in-game Reduce motion setting.
Faces are system stacks on purpose. A preset never costs the player a webfont download, which is also why the type choice is "serif or mono or the UI face" rather than a font menu.
What a theme does not control
The 3D stage. Sets, marks, lighting, and camera framing are the virtual stage and answer to none of these tokens. A parchment project still plays in whatever environment each scene names. The grade above is the one control in this panel that touches the picture, and it touches nothing but the picture.
Anything per scene or per beat. One theme per project. If two parts of a story need different chrome, they need to be different published stories.
The editor. This is the play surface's skin, not the studio's.
How it reaches the player
You pick a preset. It is stored on the project as a single value, the compiler copies it into the bundle, and the player sets it as an attribute on the play surface, which re-points the tokens for everything inside. Because the theme rides in the bundle, a published version is themed the way it was on the day you published it. Changing the theme later does not change an already-published version until you publish again. See Publish and versions.
Switching preset can invert the whole surface. parchment, pulp, and porcelain all use a light plate with dark ink, the opposite of the default. If you have been picturing your story on near-black plates, play a scene under the new preset before you ship it.