Visual language
Realm's visual language is "post-apocalyptic HUD": low saturation, strong contrast, scan-line feel, decorative geometry. The design favors "a machine on the road" over refinement.
Color palette
Amber + blue-grey form the HUD's primary palette. Mint and violet are reserved for status indicators and links, so they never compete with amber.
Spacing
8 pt base:
Common rhythm: 4 / 8 / 16 / 24 / 40 / 64.
Grid
- Container max width 1200 px (
--container-max) - Reading max width 720 px (
--reading-max) - Mobile breakpoint 768 px; tablet 1024 px; desktop 1280 px+
- Desktop left HUD is fixed at 240 px
Key components
GlobalHud
components/layout/GlobalHud.tsx: a status bar pinned to the top of the viewport. Site name + live data on the left; timestamp + status indicators on the right. Always visible.
LeftPanel
components/layout/LeftPanel.tsx: a fixed left panel split into three sections:
_left-panel-core.scss: logo / status core_left-panel-nav.scss: primary navigation (five columns)_left-panel-status.scss: bottom status row (battery / signal / mode)
In drawer mode it collapses into a bottom sheet.
NavigationColumns
components/layout/NavigationColumns.tsx: five primary navigation columns on the home page, with scan-line dividers between them; column retract / expand on hover.
LoadingScreen
components/shared/LoadingScreen/:
IndustrialHud.tsx: industrial HUD backgroundLogoTitle.tsx: site name typing effectTerminalConsole.tsx: terminal-style loading logSplitTransition.tsx: left-right split transition
CustomCursor
components/interactive/CustomCursor.tsx: custom cursor with hover labels (e.g. "BACK", "OPEN"). See GOTCHAS items 7 and 12.
Decorative geometry
- Corner chunk:
::before/::afterdraw L-shaped corner marks - Scan lines: CSS
repeating-linear-gradientsimulates a CRT scan - Noise:
components/effects/Noise.tsxplusstyles/effects/Noise.module.scss - Tesseract: charging-state 4D hypercube (
components/effects/Tesseract.tsx)