This document specifies the complete in-game HUD for Tao Baryon. It defines every element visible during active gameplay — layout, position, visual behavior, animation states, and design rationale. The HUD is the player's instrument panel: it must communicate everything essential without occupying space the player needs for the playfield.
The HUD is at its best when the player forgets it exists. Every element defaults to its minimal visual state. Elements grow louder only when they carry urgent information. A player in a 10× combo should feel the HUD responding to their play — not cluttered by constant noise.
The central 60% of the screen is enemy territory, bullet space, and player movement space. No HUD element may intrude into this zone permanently. Transient notifications (combo number, pickup flash) may appear here but must resolve in under 2 seconds.
In dense bullet patterns at depth 200+, the player will be making split-second decisions. HP bar, heat bar, and special charge must be readable with peripheral vision. These three elements are non-negotiable — they are never animated in ways that interfere with reading, never collapsed, never hidden.
Primary target: portrait orientation on a phone screen (360–430px logical width, 780–932px logical height). All layout decisions are made for this viewport first. Tablet and landscape are secondary — the HUD must still function but may rearrange.
┌──────────────────────────────────────┐
│ TOP BAR (score, depth, sector) │ ← ~10% screen height
│ │
│ │
│ ACTIVE PLAYFIELD │ ← ~65% screen height
│ (enemies, bullets, player ship) │
│ │
│ │
│ CONTROL ZONE │ ← ~25% screen height
│ [joystick left] [heat][spec][fire]│
└──────────────────────────────────────┘
HUD elements occupy the top bar and the edges of the control zone. The active playfield is clear of permanent HUD.
Position: Top-left of top bar
Size: 20px numeral, DM Mono font
Color: --color-text-primary at 90% opacity (slightly dimmed from full white/black)
Format: Score displayed with comma separators: 1,247,830
Behavior:
#c8f542 until multiplier dropsScore pop: When a kill registers, a floating "+[value]" in small text (12px) rises from the kill position in the playfield and fades out over 1.2s. Pop color matches multiplier tier:
#c8f542Position: Top-center of top bar Size: 26px for the numeral, 14px for the "×" symbol Font: DM Mono, bold weight Color: Matches score pop tier colors above
Behavior:
1.0× at base1.1×, 1.2× ... 10.0×1.0× whiteDecay arc: 16px radius, drawn as a partial circle clockwise. Full arc = 3 seconds. Depletes smoothly. Color matches current tier. Disappears instantly on kill.
Position: Top-right of top bar
Size: 11px, DM Sans regular
Color: --color-text-secondary (muted)
Format: S4 · Stage 22 or Endless · Depth 147
Behavior:
Position: Bottom-left of control zone, horizontal bar above joystick Size: Width = joystick zone width (~140px), Height = 8px Border radius: 4px Colors:
#4CAF50 (green) above 60% HP#FF9800 (amber) at 30–60% HP#F44336 (red) below 30% HP--color-border-tertiary--color-border-secondaryBehavior:
[75 / 100] — only visible below 50% HPShield overlay: If the ship has an active shield charge, a thin bright rim appears outside the HP bar border. Color: white-blue. Disappears when shield is consumed.
Position: Bottom-right of control zone, horizontal bar directly above the FIRE button Size: Width = right control zone width (~130px), Height = 8px Border radius: 4px Label: "HEAT" in 9px DM Mono above-left of bar
Colors by heat level:
#42A5F5 (cool blue) — safe zone#FFA726 (amber) — caution#FF7043 (deep orange) — warning#F44336 (red) — criticalBehavior:
Position: Bottom-right, between heat bar and fire button — or as a circular arc around the SPECIAL button Implementation: Circular arc meter (270° sweep) centered on the SPECIAL button icon
Size: SPECIAL button = 48px diameter. Arc radius = 30px from center. Colors:
--color-border-tertiary (invisible/structural)#c8f542 arc sweeping clockwise from topBehavior:
Position: Bottom-right corner, thumb-reachable zone
Size: 64px diameter
Label: Flame icon (Tabler ti-flame, 24px) centered
Border: 1.5px --color-border-secondary
States:
--color-background-secondary at 70% opacity)Position: Bottom-right, above and slightly left of FIRE button
Size: 52px diameter
Label: Lightning icon (Tabler ti-bolt, 20px)
Arc: As described in Special Charge Meter above
States:
#c8f542, button brightens, subtle pulsePosition: Bottom-left, thumb-reachable zone Size: Base = 90px diameter circle; stick nub = 36px diameter Visual: Semi-transparent base ring (border only, no fill), solid nub
Colors:
--color-border-secondary at 50% opacityBehavior:
Position: Top of screen, full width, below top bar — appears only during boss encounters Size: Full width, 10px height Colors:
--color-border-tertiaryBehavior:
Boss name label: Above the bar, centered, 12px DM Sans, --color-text-secondary. Example: Architect-Saint Halen. Fades in with the bar.
When a pickup spawns or is collected:
Spawn: Pickup floats in playfield, subtle pulsing glow matching pickup type color Magnet pull: Line of light particles from pickup to ship when within magnet radius Collect: Brief burst flash at ship position, small floating text ("+HP", "+SHIELD", "+SPECIAL") rises and fades over 1.0s
Pickup types and colors:
#66BB6A#90CAF9#c8f542#FFB300When a Kamikaze-class enemy is on a direct collision course and within 80px of the player:
ti-arrow-up rotated to source directionPosition: Bottom edge of playfield, centered (above the control zone)
Size: Width = 80% of screen, Height = 40px
Border-radius: --border-radius-md
Background: --color-background-secondary at 95% opacity
Layout: Left accent strip (4px, tier color) | Tier icon (12px) | Achievement name (13px DM Sans medium) | Category (11px muted)
Animation:
Before each stage, a 5-second overlay:
Layout: Dark overlay (80% opacity) over the previous hub screen, centered card Card contents:
ti-user-circle)--color-text-secondary, slow pulse)Behavior:
Appears after the last enemy is destroyed. Transition: playfield fades to dark over 0.8s, clear screen fades in.
Layout (top to bottom):
#c8f542, 22px, DM MonoTransition to hub: Button tap → brief white flash → hub screen fades in
For 60fps performance on target hardware:
| Element | Max simultaneous instances | Priority |
|---|---|---|
| Score pop floaters | 6 | Low |
| Combo decay arc | 1 | High |
| HP bar pulse | 1 | High |
| Heat bar pulse | 1 | High |
| Special charge arc | 1 | High |
| Pickup magnet particles | 8 | Medium |
| Achievement toast | 1 | Medium |
| Boss HP bar | 1 | High |
Rule: If the frame budget is tight (detected via frame time monitoring), score pops are culled first. HP, heat, and special charge animations are never culled — they are safety-critical to the player.
The HUD uses CSS variables throughout — it automatically adapts to the device's dark/light mode preference. Both modes must be validated in QA. Specific notes:
#c8f542 is used as-is in both modes — it reads on both dark and light backgrounds.#c8f542 fillDocument version: 1.0 (locked) Part of: Tao Baryon GDD — Tier 4 UX & Meta