What a panel is
Lives in: theme panel.<preset> + story routing
A panel is the dialogue box — the place text, the name plate, and on-panel choices appear. Most games need only one. Extra panels are for side commentary, whisper boxes, or a second speaker’s sticky line.
Two names that matter
| Word | Meaning |
|---|---|
| Panel id | Which instance on screen (main, side, …). main always exists. |
| Preset | Which look from the theme (default, whisper, …) that instance uses |
Id = which box. Preset = how that box is drawn. You can put look whisper on id main, or look default on id side.
One box is enough
Ship with a single main panel and a default preset. Speakers write into main unless you say otherwise. Name plate and Continue / Back live on that box.
HANA:
Good morning.
No panel fields required.
Where the pieces live
| Piece | Where |
|---|---|
| Look (size, height ceiling, body scroll) | themes/default.json → panel.<preset> — How a panel looks |
| Which box gets this line | Story node / character pack / panel command — How text finds a panel |
| Second boxes, stacking, side logs | Several panels |
| What quiet boxes do | Presence and quiet panels |
| Lines that stack in the box | Appending text |
| Portrait inside the box | Speaker art on the panel |
Fonts and whole-theme colours sit under Look. Character preference for a panel: pack ui — Expressions and packs.
Usually you need
| Want | Do |
|---|---|
| Normal dialogue | Nothing — use main + default |
| A quieter look | Theme preset whisper + node "panel": "whisper" |
| A second box | New panel id — Several panels |
| A tall scrolling log | Preset max_height + sticky append — Several panels |