Split the monolithic 5393-line app.js into 32 focused ES modules under modules/ with a thin ~330-line orchestrator. No bundler required — runs in-browser via import maps. Module structure: core/ — scene, ticker, state, theme, audio data/ — gitea, weather, bitcoin, loaders terrain/ — stars, clouds, island effects/ — matrix-rain, energy-beam, lightning, shockwave, rune-ring, gravity-zones panels/ — heatmap, sigil, sovereignty, dual-brain, batcave, earth, agent-board, lora-panel portals/ — portal-system, commit-banners narrative/ — bookshelves, oath, chat utils/ — perlin All files pass node --check. No new dependencies. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
43 lines
1001 B
JavaScript
43 lines
1001 B
JavaScript
// modules/core/theme.js — Centralized color/font/size constants
|
|
export const THEME = {
|
|
colors: {
|
|
bg: 0x000008,
|
|
starCore: 0xffffff,
|
|
starDim: 0x8899cc,
|
|
constellationLine: 0x334488,
|
|
constellationFade: 0x112244,
|
|
accent: 0x4488ff,
|
|
panelBg: '#0a0e1a',
|
|
panelBorder: '#1a3a5c',
|
|
panelText: '#88ccff',
|
|
panelTextDim: '#4477aa',
|
|
neonGreen: '#00ff88',
|
|
neonRed: '#ff4444',
|
|
neonYellow: '#ffcc00',
|
|
offline: '#334466',
|
|
working: '#00ff88',
|
|
idle: '#4488ff',
|
|
dormant: '#334466',
|
|
dead: '#ff4444',
|
|
gold: 0xffd700,
|
|
},
|
|
fonts: {
|
|
mono: '"Courier New", monospace',
|
|
sans: 'Inter, system-ui, sans-serif',
|
|
display: '"Orbitron", sans-serif',
|
|
},
|
|
sizes: {
|
|
panelTitle: 24,
|
|
panelBody: 16,
|
|
panelSmall: 12,
|
|
hudLarge: 28,
|
|
hudSmall: 14,
|
|
},
|
|
glow: {
|
|
accent: 'rgba(68, 136, 255, 0.6)',
|
|
accentDim: 'rgba(68, 136, 255, 0.2)',
|
|
success: 'rgba(0, 255, 136, 0.6)',
|
|
warning: 'rgba(255, 204, 0, 0.6)',
|
|
},
|
|
};
|