EMBER OF DAWN — STYLE GALLERY

The game's visual reference: every glyph and colour it draws, built from the same tables the game reads, so it can't drift from what ships. Numbers are perceptual contrast against the surrounding terrain — red <110 (likely invisible), amber <200 (thin), green (comfortable). Test [54] enforces the floors; this is for the judgement calls it can’t make.

Tiles × biomes (glyph as rendered, with contrast vs. that biome’s floor)

tiledungeonforestmarshmountaincryptcastlethronecavernashengroveundercitygraveyardsanctum
wall
#
150
♣
124
♠
106
▲
218
#
162
#
169
#
118
#
149
#
60
#
196
#
171
#
178
#
186
crackedWall
#
208
♣
191
♠
183
▲
246
#
238
#
237
#
199
#
235
#
172
#
260
#
253
#
248
#
251
floor
·
0
,
0
,
0
·
0
·
0
·
0
·
0
·
0
·
0
·
0
·
0
·
0
·
0
door
+
223
+
233
+
222
+
207
+
274
+
262
+
245
+
289
+
289
+
285
+
308
+
280
+
269
doorOpen
'
98
'
102
'
90
'
91
'
141
'
130
'
113
'
157
'
156
'
153
'
174
'
147
'
136
exit
>
458
>
451
>
445
>
442
>
497
>
492
>
473
>
510
>
510
>
513
>
527
>
506
>
493
trap
·
0
,
0
,
0
·
0
·
0
·
0
·
0
·
0
·
0
·
0
·
0
·
0
·
0
trapSprung
_
197
_
216
_
205
_
177
_
257
_
242
_
230
_
277
_
276
_
268
_
293
_
262
_
250
oil
≈
129
≈
131
≈
123
≈
112
≈
179
≈
170
≈
157
≈
199
≈
199
≈
194
≈
214
≈
186
≈
171
water
~
188
~
230
~
223
~
165
~
255
~
237
~
243
~
282
~
281
~
261
~
288
~
254
~
244
ice
▒
499
▒
528
▒
520
▒
473
▒
569
▒
552
▒
547
▒
594
▒
593
▒
579
▒
607
▒
572
▒
559
forage
❖
380
%
336
%
333
%
312
❖
451
❖
426
❖
423
❖
470
❖
469
❖
451
❖
484
❖
449
❖
443
glowcap
ψ
377
ψ
400
ψ
396
ψ
351
ψ
443
ψ
430
ψ
428
ψ
470
ψ
469
ψ
455
ψ
479
ψ
446
ψ
432
bramble
&
120
&
117
&
112
&
104
&
167
&
160
&
148
&
189
&
188
&
184
&
202
&
175
&
159
sporeVent
○
399
○
394
○
392
○
379
○
446
○
441
○
429
○
467
○
466
○
465
○
479
○
455
○
438
chasm
121
104
108
147
53
69
79
34
34
43
19
48
63

POIs & overlays — drawn over the tiles, not part of them

Altars, lore props, the player and the transient effects aren’t TileTypes — the renderer paints them on top, so they never appear in the tile grid above. Several carry a spent state that must still read as “there, but done”. Contrast is vs. dungeon floor.

@
you
579
‡
altar — unspent
435
‡
altar — spent
132
lore — inscription
349
lore — remains
308
lore — already read
129
▴
fire — burning, frame 1
373
▴
fire — dying (last turn), frame 1
323
▵
fire — burning, frame 2
373
▵
fire — dying (last turn), frame 2
323
∴
poison haze — frame 1, faintest
144
∴
poison haze — frame 1, brightest
291
°
poison haze — frame 2, faintest
144
°
poison haze — frame 2, brightest
291
✷
lich barrage — pulse low
283
✷
lich barrage — pulse peak
289
○
spore vent — idle
399
◉
spore vent — about to blow
492
^
trap — known & ARMED
323
_
trap — sprung (harmless)
197
Ω
wall sconce — lit
397
Ω
wall sconce — remembered (cold iron)
96
X
aim reticle — target
454
+
aim reticle — blast ring
341
↑↓←→
ability aim — directions
454

Lit vs. remembered (fog ×0.34) — a second legibility axis

Explored-but-not-visible tiles are drawn at 0.34× brightness. A color that reads fine when lit can collapse into the background from memory — this row is the same glyph lit (left) and fogged (right), with the fogged contrast against the page black.

wall
# #
75
crackedWall
# #
94
floor
· ·
26
door
+ +
90
doorOpen
' '
46
exit
> >
164
trap
· ·
26
trapSprung
_ _
85
oil
≈ ≈
61
water
~ ~
88
ice
▒ ▒
197
forage
❖ ❖
156
glowcap
ψ ψ
154
bramble
& &
58
sporeVent
○ ○
152

Glyph collisions — where one character means two things

Sharing a glyph across a whole item category is roguelike convention (every potion is !). Sharing one between a hazard and a reward is worth a second look — only color tells them apart.

## tile: wall# tile: crackedWall✓ by design — a cracked wall must look like the wall it hides in
♣♣ tile: wall♣ tile: crackedWall✓ by design — a cracked wall must look like the wall it hides in
♠♠ tile: wall♠ tile: crackedWall✓ by design — a cracked wall must look like the wall it hides in
▲▲ tile: wall▲ tile: crackedWall✓ by design — a cracked wall must look like the wall it hides in
·· tile: floor· tile: trap✓ by design — hidden traps must look like floor
,, tile: floor, tile: trap✓ by design — hidden traps must look like floor
++ tile: door+ aim reticle — blast ring✓ transient — the blast ring only shows while aiming
// item: w_dagger/ item: w_short/ item: w_mace/ item: w_axe/ item: w_frost/ item: w_ench/ item: w_sun✓ by design — one glyph per item CLASS (weapons)
[[ item: a_rags[ item: a_leather[ item: a_chain[ item: a_scale[ item: a_plate✓ by design — one glyph per item CLASS (armour)
!! item: p_heal! item: p_gheal! item: p_ruin! item: p_ward! item: p_might! item: p_antidote! item: p_detect! item: p_levit! item: p_ember! item: p_rime! item: p_shadow! item: p_blink✓ by design — one glyph per item CLASS (potions)
(( item: i_torch( item: i_lantern✓ by design — one glyph per item CLASS (light sources)
** item: q_shard* item: q_sigil* blast / hit sparks (FX)✓ by design — the quest items never coexist on a level; sparks are a few frames of FX
⚔⚔ class badge: warrior⚔ buff: might✓ harmless — both are HUD chrome (class badge, might buff)
✷✷ class badge: pyromancer✷ lich barrage telegraph✷ buff: ember✓ harmless — the class badge and the ember buff are HUD chrome, never drawn on the map

Biome palette · light ambient · atmosphere

dungeon
The Pit
wall #6b6b7c
floor #3b3b46
accent #ffe14d
wall↔floor 150
ambient center rgb(100,98,116)
ambient edge rgb(88,86,100)
atmosphere: —
unaided sight: indoors
forest
The Blackwood
wall #3f7a45
floor #2f4326
accent #7fdfff
wall↔floor 124
The Blackwood · region 2
wall #5aa85f
floor #3e5a30
accent #d8f0a0
wall↔floor 179
The Blackwood · region 3
wall #3f5a2c
floor #2a3a1e
accent #8faf5f
wall↔floor 75
ambient center rgb(80,106,88)
ambient edge rgb(72,92,80)
atmosphere: ■ dust ×18 @0.16 · reflective (dims with the ground)
unaided sight: 9 (open sky)
marsh
The Blackwood · region 1
wall #5f6b3a
floor #39402b
accent #8fd0a0
wall↔floor 106
The Mire
wall #5f7a3c
floor #2e3a28
accent #7fdfff
wall↔floor 151
The Mire · region 2
wall #4f6b3a
floor #2a3826
accent #8fd0a0
wall↔floor 121
ambient center rgb(84,102,86)
ambient edge rgb(76,92,80)
atmosphere: ■ mist ×7 @0.09 · reflective (dims with the ground)
unaided sight: 10 (open sky)
mountain
The Frostspine Pass
wall #7d8ea0
floor #40454f
accent #a9e0ff
wall↔floor 218
The Frostspine Pass · region 1
wall #5a6b7a
floor #2c343d
accent #bfe8ff
wall↔floor 165
The Frostspine Pass · region 2
wall #52616f
floor #28303a
accent #bfe8ff
wall↔floor 146
The Ramparts · region 1
wall #42566e
floor #1e2836
accent #bfe8ff
wall↔floor 142
ambient center rgb(92,104,126)
ambient edge rgb(82,94,114)
atmosphere: ■ snow ×80 @0.55 · reflective (dims with the ground)
unaided sight: 11 (open sky)
crypt
The Great Hall · region 2
wall #5a6356
floor #232a26
accent #9fb08a
wall↔floor 162
The Sunken Crypt
wall #6a6a5a
floor #262620
accent #9fe0b0
wall↔floor 195
The Sunken Crypt · region 1
wall #585044
floor #1c1c17
accent #9fe0b0
wall↔floor 156
ambient center rgb(96,104,96)
ambient edge rgb(86,94,88)
atmosphere: ■ mist ×6 @0.05 · reflective (dims with the ground)
unaided sight: indoors
castle
The Iron Gate · region 1
wall #6a5c6e
floor #2e2833
accent #d24a4a
wall↔floor 169
The Great Hall
wall #5c4b70
floor #342d40
accent #c04cff
wall↔floor 116
The Ramparts
wall #4a5a72
floor #232a38
accent #a9e0ff
wall↔floor 148
The Dusk Antechamber
wall #7a5c4a
floor #33281f
accent #ffd24d
wall↔floor 166
ambient center rgb(102,92,122)
ambient edge rgb(90,82,108)
atmosphere: ■ dust ×34 @0.15 · reflective (dims with the ground)
unaided sight: indoors
· The Ramparts: 4 (level's own sky — caps every region)
throne
The Dusk Antechamber · region 1
wall #74494a
floor #3a2b2b
accent #ffd700
wall↔floor 118
ambient center rgb(114,98,94)
ambient edge rgb(100,88,84)
atmosphere: ■ embers ×44 @0.6 · emissive (keeps full strength in the dark)
unaided sight: indoors
cavern
The Pit · region 1
wall #5c5048
floor #241f1b
accent #79f2dc
wall↔floor 149
The Sunken Crypt · region 2
wall #3f4a48
floor #1a2220
accent #79f2dc
wall↔floor 118
ambient center rgb(86,84,82)
ambient edge rgb(72,70,68)
atmosphere: ■ spores ×30 @0.4 · emissive (keeps full strength in the dark)
unaided sight: indoors
ashen
The Iron Gate · region 2
wall #3a332e
floor #241f1c
accent #ff7a2a
wall↔floor 60
The Great Hall · region 1
wall #4a423a
floor #2b2620
accent #ff9d4a
wall↔floor 85
ambient center rgb(106,88,76)
ambient edge rgb(88,72,62)
atmosphere: ■ ash ×46 @0.34 · reflective (dims with the ground)
unaided sight: 7 (open sky)
grove
The Mire · region 3
wall #6d4f7a
floor #241f2b
accent #c8f06a
wall↔floor 196
ambient center rgb(88,74,98)
ambient edge rgb(72,60,82)
atmosphere: ■ spores ×34 @0.34 · emissive (keeps full strength in the dark)
unaided sight: indoors
undercity
The Sunken Crypt · region 3
wall #4a5a52
floor #161d1b
accent #7fd0a8
wall↔floor 171
ambient center rgb(76,94,88)
ambient edge rgb(62,78,74)
atmosphere: ■ mist ×7 @0.08 · reflective (dims with the ground)
unaided sight: indoors
graveyard
The Iron Gate
wall #5c6068
floor #22252b
accent #9aa3b4
wall↔floor 178
ambient center rgb(96,102,112)
ambient edge rgb(72,78,88)
atmosphere: ■ mist ×8 @0.1 · reflective (dims with the ground)
unaided sight: 9 (open sky)
sanctum
The Mire · region 4
wall #5d6f68
floor #232e2b
accent #8fd0b4
wall↔floor 186
ambient center rgb(88,104,100)
ambient edge rgb(64,78,76)
atmosphere: ■ mist ×6 @0.11 · reflective (dims with the ground)
unaided sight: 6 (open sky)

Monsters (glyph · color · behaviour)

r
Cave Rat
wander
b
Shrieking Bat
erratic
x
Giant Spider
chase
i
Bog Imp
ranged
✦
Will-o'-Wisp
ambient · glows
v
Carrion Raven
ambient
f
Mire Frog
ambient
h
Snow Hare
ambient
g
Goblin
chase
s
Skeleton
chase
z
Rotting Zombie
slowChase
w
Wraith
chase
u
Ghoul
chase
y
Gargoyle Sentinel
guardChase
B
Hoarfrost Bear
guardChase
C
Gate Warden
guardChase
H
Malachar's Herald
ranged · boss
T
Gorm, the Frost Troll
guardChase · boss
M
Malachar the Lich-King
bossLich · boss

Items · status chips · buff tokens

/Rusty Dagger/Short Sword/Flanged Mace/War Axe/Frostbrand)Hunter's Bow/Enchanted Blade/The Sunblade[Tattered Rags[Leather Armour[Chainmail[Scale Mail[Plate Armour!Healing Potion!Greater Healing¤Firebomb!Vial of Ruin!Potion of Warding!Elixir of Might!Antidote!Draught of Seeing!Draught of Levitation!Emberstep Draught!Rimewalk Draught!Shadowcloak Draught!Phial of Blinking»Arrows$Gold(Torch(Lantern*Moonstone Shard*Dusk Sigil
☠poison≈bleed♨burn❄chill
⛨buff: ward⚔buff: might☁buff: float✷buff: ember❆buff: rime◐buff: shadow

Class badges (HUD only)

⚔ Warrior† Rogue✷ Pyromancer

One monster, every tint it can wear

A glyph’s color is overloaded: its own species color, a champion tint, or a debuff tint (debuff wins). These are the states a single skeleton can actually appear in — they need to stay tellable apart.

s
normal
465
s
elite: brute
374
s
elite: swift
458
s
elite: volatile
331
s
debuff: poison
349
s
debuff: bleed
272
s
debuff: burn
356
s
debuff: chill
475

Floor decals (painted on the overlay, over terrain)

Shown at each decal's REAL alpha, over the darkest floor in the game (#161d1b) — the worst case for reading one. The swatch used to draw the bare colour at full opacity on a mid-tone floor, which made the faintest decal look like the boldest: ash is painted at 0.07 but appeared solid here. Shape is still approximate (a plain disc); in game the pool is squashed and rotated with lobes and droplets, which a DOM swatch can't reproduce.

blood
α0.32 · lobes 0 · drops 2
184
scorch
α0.5 · lobes 0 · drops 0
46
ash
α0.07 · lobes 2 · drops 2
354

Activity log · message kinds

Every line test [64] asserts (hud/logCorpus.ts), lifted from the REAL templates in actions/index.ts and status.ts — so this shows what the rail actually paints, not a designer's idea of it. The left column is the rail at its true width and background; the right names the kind each line resolves to, flagged red if that isn't the kind it's meant to be. Harm is keyed on YOU being the grammatical object, which is what keeps “You strike …” out of the injury colour.

»You strike the Skeleton for 8 (4 left).»Critical! You strike the Goblin for 14 (2 left).»Sneak attack! You hit the Skeleton for 12 (0 left).»Out of arrows — you jab the Goblin for 1.»You smash the Goblin clean through a cracked wall!»You hack at the cracked wall. (2 more)×You slay the Skeleton.×A silent kill — the Skeleton never woke.×A critical blow fells the Goblin!×You hurl the Goblin into the depths!×You batter down the Skeleton with your bow.×The Firebomb bursts into flame! 2 slain.×The Goblin succumbs.›The Skeleton hits you for 2.›The Bog Imp hurls a bolt for 3.›Dark fire crashes down on you for 12!›A hidden spike trap! You take 4 damage.›The volatile creature bursts apart — the blast catches you!›You choke on a lungful of spores!›Thorns rake you — you're bleeding.›The Gargoyle Sentinel hurls you off the edge into the void!›The Gargoyle Sentinel throws you back.›The Gargoyle Sentinel looms — the void yawns at your back!›You are poisoned!›You catch fire!·The Skeleton is poisoned!+You drink the Healing Potion. (+10 hp)+You gather wild growth — +1 HP.+A shimmer of warding wraps you. (6 turns)+You pick up 6 gold.+You pick up a Healing Potion.+You recover a Sunblade.+You gather 12 Arrows.·You take up the War Axe, setting down the Frostbrand.·You shove the door open.·The Carrion Raven scatters.·The Will-o'-Wisp gutters out at your touch.·The Firebomb bursts into flame!·The Gate Warden braces at the brink and will not fall!·The Skeleton drops a Healing Potion.·Your torch gutters out. The dark closes back in.·The water rises higher.
attack»#b9bac4AA 9.60vs rail 504
attack»#b9bac4AA 9.60vs rail 504
attack»#b9bac4AA 9.60vs rail 504
attack»#b9bac4AA 9.60vs rail 504
attack»#b9bac4AA 9.60vs rail 504
attack»#b9bac4AA 9.60vs rail 504
kill×#dcdce2AA 13.56vs rail 604
kill×#dcdce2AA 13.56vs rail 604
kill×#dcdce2AA 13.56vs rail 604
kill×#dcdce2AA 13.56vs rail 604
kill×#dcdce2AA 13.56vs rail 604
kill×#dcdce2AA 13.56vs rail 604
kill×#dcdce2AA 13.56vs rail 604
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
harm›#c78a8aAA 6.55vs rail 411
neutral·#8b8d99AA 5.62vs rail 371
good+#5fcf5fAA 9.33vs rail 410
good+#5fcf5fAA 9.33vs rail 410
good+#5fcf5fAA 9.33vs rail 410
gain+#ffd700AA 13.20vs rail 544
gain+#ffd700AA 13.20vs rail 544
gain+#ffd700AA 13.20vs rail 544
gain+#ffd700AA 13.20vs rail 544
neutral·#8b8d99AA 5.62vs rail 371
neutral·#8b8d99AA 5.62vs rail 371
neutral·#8b8d99AA 5.62vs rail 371
neutral·#8b8d99AA 5.62vs rail 371
neutral·#8b8d99AA 5.62vs rail 371
neutral·#8b8d99AA 5.62vs rail 371
neutral·#8b8d99AA 5.62vs rail 371
neutral·#8b8d99AA 5.62vs rail 371
neutral·#8b8d99AA 5.62vs rail 371

Status afflictions — you vs. a monster

Every template both ways, as the classifier sees it — though chill only ever lands on monsters (the Frostbrand's on-hit), so “You are frozen stiff!” never reaches the rail in play.

harm›You are poisoned!
neutral·The Skeleton is poisoned!
harm›You are bleeding!
neutral·The Skeleton is bleeding!
harm›You catch fire!
neutral·The Skeleton catches fire!
harm›You are frozen stiff!
neutral·The Skeleton is frozen stiff!

Level weather overrides

rain: rain ×64 @0.3 ■ reflective · The Blackwood
storm: rain ×110 @0.46 ■ reflective · plus lightning flashes · The Ramparts