Design notes
What exists today
The game screens today are IMGUI, drawn on UiScale's 540-unit virtual canvas. VEL-72 moves production screens to UI Toolkit and keeps IMGUI only for the debug panel.
| Screen today | Where | What it does | What it lacks |
|---|---|---|---|
| Title | Shell/TitleScreen.cs | Logo text, Continue ("Sallowbank · 0:42"), New Game, Practice battle, Settings. Notices for a corrupt or newer-version save. | Title art and music. Save card detail (quest stage, level, when saved). Any feedback after a tap: _starting hides every button and leaves only the logo, and a failed Continue only logs an error. The button column runs down to about 500 of 540 units, deep into the lower screen. |
| New game | Shell/TitleScreen.cs (ConfirmReplace, ChooseBody pages) | Asks before replacing a save, then Male or Female, and starts at once. | Name entry: PlayerProfile.Name exists but nothing sets it. No preview of the body type. No step indicator. The confirm question is a bare label above two buttons, not a dialog. |
| Settings | Shell/SettingsPanel.cs | Master volume slider, version, Credits & licenses, Back. Shared by title and pause. | Separate music, effects and ambience volumes; haptics; text speed; handedness and mirroring; text size; high-contrast glyphs; reduced motion. No tabs. |
| Credits and notices | Shell/CreditsView.cs | Credits, then the third-party notices, in one long drag-to-scroll page; Close top-right. | A way to jump to a component; the notices file is long. Separate entry points for Credits and Notices. |
| Pause | Shell/PauseMenu.cs | "II" button top-right in locations; Resume, Spell book, Settings, Save and quit to title. | Journal, Map and Inventory. Where you are and your objective. A confirm before quitting, and feedback while it saves (or if saving fails). |
| Battle HUD | UI/Hud.cs | Player HP and shield top-left; enemy name, HP and attack wind-up top-centre; Flee or Title; Spells and Tune buttons top-right; learning panel; a full score breakdown after every cast; toast; combat numbers; first-cast hint; Victory or Defeated panel with casts, fizzles, time and XP. | Touch sizes: Spells, Tune, Flee and Title are 34 units (about 25 pt) and the outcome button 40 units (about 29 pt), well under 44 pt. Pause. Status effects (stagger, shield) as icons. Rewards beyond XP, level progress and level-up. Defeat choices beyond Try again. Tune ships in player builds. The score breakdown is a tuning tool on the main HUD. |
| Spell book | UI/SpellBook/SpellBookScreen.cs | Full screen, opened from pause: a grid of known spells and named composites; detail view where both strokes draw themselves; Back and Close. | Practice outside battle; learning outside battle (only the battle panel teaches); filters by faction; locked or unknown spells ("find its fragment"); the effect and lore of each spell. |
| Dialogue | Dialogue/DialogueBox.cs | Bottom-centre box (58% wide), a 96-unit portrait slot that is always blank, speaker name, typed text with a ▼, choices stacked upward (64 units). | Portraits (no art, and no speaker-to-portrait data), expressions, a log of past lines, the text-speed setting (45 characters a second is fixed). |
| Interaction prompt | World/PromptButton.cs | Top-centre button with the verb or destination ("Open", "To The Sallow Road"), and labels over exits. | Size: 48 units (about 33 pt), under 44 pt. An icon for the verb. The objective tracker and map button it should sit beside. |
| Field cast | FieldCasting/FieldCast.cs, UI/GlyphPrompt.cs | Glyph prompt in each thumb's zone, trails, and a learning panel (title, pips, last result) top-centre. | Framing that tells the player the world has stopped for this (dim, vignette); the same panel style as battle and practice. |
| Transitions | Flow/ScreenFader.cs | A full-screen black fade. | A loading card with the location's name, art and a tip for slow loads; an arrival name card. |
| Debug panel | UI/DebugPanel.cs | On-device tuning sliders. | Stays IMGUI by design (VEL-72). It should be in development builds only. |
Not on screen at all yet: splash (beyond Unity's), field HUD (objective tracker, map button), toasts in the field, journal, map, inventory, item detail, letters viewer, shop, battle rewards, loading card, confirm dialog.