Bullet Heaven / Dark Cosmos — Design Context
Bullet Heaven / Dark Cosmos — Design Context
Section titled “Bullet Heaven / Dark Cosmos — Design Context”Visual Theme
Section titled “Visual Theme”
Neon-void: near-black space as the canvas, a single confident cyan accent carrying most UI weight, per-system accent colors (weapon/element identity colors) used sparingly and only where they carry real meaning (e.g. a weapon icon’s own color, never a decorative gradient).
- Primary accent:
NeonTheme.CYAN— carries HP bar (healthy), borders, headers, default UI accent. - Semantic HP ramp: cyan (>60% HP) → lerp cyan/amber (30–60%) → red
Color(1.0, 0.25, 0.2)(<30%), defined inHud._hp_color(frac). Reuse this exact curve as the trigger for any new HP-driven prominence/urgency scaling — color and visual weight should escalate together, not independently. - Per-weapon/per-element identity colors (
WeaponPanel._WeaponIcon._COLOR,ElementPalette): fixed per kind, never element-tinted for weapon icons (a weapon keeps its own color regardless of current element). - Backgrounds use near-black translucent panels (
Color(0.02, 0.03, 0.06, 0.6–0.66)), never flat pure black.
Typography
Section titled “Typography”- Orbitron (
NeonTheme.title_font()): headers, titles, UI labels — geometric, screen-legible at distance. - JetBrains Mono (
NeonTheme.mono_font()): HUD numbers (HP values, timers) — monospace so digits don’t shift width as they change.
Components
Section titled “Components”- Glass/glow card treatment (established in the 2026-07-03 HUD/shop polish pass):
StyleBoxFlatwith a dark translucentbg_color, thin 1–2px accent border at restrained alpha (~0.22–0.42, not a heavy glow), a soft accent-tinted shadow (size 3–7px). This is the shared visual family across menu cards, docks, and HUD bars — restrained, not maximalist neon. - Circular docks (
WeaponPanel.slot_style(), shared by weapon/drone docks):corner_radius == size/2on a square StyleBoxFlat, 1px border. Reads as one visual family with the ability bar’s own circular module rings. - Bars (
Hud._bar_track_style/_bar_fill_style): rounded track (12px corner radius) + rounded glowing fill pill (8px corner radius), fill shadow at 0.5 alpha for a genuine glow.
Layout Conventions
Section titled “Layout Conventions”- Anchored
Controls viaset_anchors_preset— never hardcoded pixel positions in aCanvasLayer(a documented past bug class in this project). - Top-center: player-critical status (HP only — level/XP removed from the live HUD per the 2026-07-03 HUD elegance pass; level now shows on the level-up panel and Ship Configuration screen instead).
- Top-left: tactical/loadout info (weapon dock, drone dock, ability icons) — secondary to survival status, should read as clearly lower-priority than the HP block through size/position/default-visibility, not equal visual weight.
- Bottom-center: transient onboarding-only content (control hints), self-dismissing — never a permanent fixture.
Motion
Section titled “Motion”- Continuous subtle idle motion (thruster pulse, glow breathing) rather than static elements — but never distracting or fast enough to compete with gameplay reading.
- Transient celebratory moments (level-up) should be brief (under ~1s) and not block input/movement.