{{ nameError }}

Class Editor

Check a class's box on the page to edit it here, then click a color card above to tint it.

{{ role.displayName }}
No classes yet.
unsaved name — this class is still {{ v.trueName }}, and that is what Apply arms
editing {{ v.elLabel }}
Remove button
Cancel button
{{ role.sample }}
Remove Cancel
{{ role.sample }}
{{ v.cssLine }}

Restore Style Cards

{{ hiddenRoleCount }} deleted
{{ h.label }} {{ h.cls }}

Apply Colour To

{{ colorTargetHint }}

Field DIM — active shade

Paint fields with “Field DIM (active)” — this dial then re-shades all of them at once.

All Colours — {{ colorTargetName }}

{{ sw.chipGlyph }} {{ sw.label }} {{ sw.hexLabel }}

Rarity — {{ colorTargetName }}

Signal colours. Identical on both themes on purpose.

{{ sw.chipGlyph }} {{ sw.label }} {{ sw.hexLabel }}

Buttons

Whole faces — fill, label and border in one click. The Apply-to select does not affect these.

Ab

In the app, no token

Hard-coded hexes the sheet uses. Listed for completeness — not clickable, because a class stores a token name, not a hex.

{{ sw.label }} {{ sw.hex }}

Style Editor — Westmarches Journal.

Every distinct text job, named once. Check a role below to manage its classes in the panel on the left — each role can hold several named class variants (e.g. a button role can have primary/danger/ghost classes, each independently tinted).

{{ activeVariantHint }}

⟿ {{ r.tagLabel }}
{{ r.desc }}
Style: {{ r.parentLabel }}
{{ r.rowSampleTitle }} {{ r.rowSampleSub }} {{ r.rowSampleExplain }}
Sleep 1st level · Put 2d4 levels of creatures into comatose slumber.
spell
Style: {{ r.parentLabel }}
Style: {{ r.parentLabel }}
{{ v.faceLabel }}
Racial Abilities Half-Elf resolved from PHB data
Sleep 1st level · Put 2d4 levels of creatures into comatose slumber.
spell
Lineage Choose the parent line you take after.
dex change on creation screen Uses Left 2 / 3
{{ v.sample }}

Change a role's size with the number spinner in its header — every sample and CSS line updates together. Check a role's box to open its classes in the left panel: duplicate a class to spin off a color variant, or add a fresh one. Nothing here is applied to the live tabs automatically except through data-class wiring; treat this as the source of truth for a separate migration pass.