BUILD GUIDE · 07 OF 25
A fictional solar weather observatory, pitched between mission control and art installation. The page has one job: hold you in front of a star that never stops moving, then let the instruments explain what you're looking at.
HELIOS is a solar weather station at the Sun–Earth L1 point, publishing its feed as a public dashboard. The audience is anyone who has ever refreshed an aurora app: the page must feel live, plausible and slightly obsessive. Every number on it ticks from a small physical model — solar wind and southward Bz push the Kp index around, flares spike the X-ray channel — so the instruments agree with each other the way real ones do.
The whole page is a temperature ramp: everything cold is grey-blue, everything hot borrows from the sun. Nothing else is allowed a colour.
Archivo is a variable font with a real width axis, so one file plays two roles: stretched to 112–125% it becomes the display voice (the headline, the 5,772 K band); compressed to 78–80% caps with wide tracking it becomes NASA-console labelling. Spline Sans Mono carries every number with tabular-nums so readouts tick without shifting. The typographic bravery moment is the full-bleed temperature band — solid white-gold against a hairline-outlined ghost line.
The signature element is a raw-WebGL fragment shader sun — no three.js, one fullscreen triangle. Screen pixels inside the disc are lifted onto a sphere (z = √(R²−r²)) and slowly rotated. Plasma is domain-warped fBm: three fBm fields feed their output back in as an offset (fbm(p·1.6 + q·1.35)), which produces the curling, convective look a single noise pass never gives. Granulation is two ridged value-noise layers at different frequencies and orientations so no grid alignment survives. A temperature ramp maps that scalar field from ember red through #FF6B1A to white-gold; limb darkening (0.26 + 0.74·μ0.65) curves the disc, and a (1−μ)⁶ chromosphere rim reignites the very edge. Outside the disc, the corona is angular fBm sampled on the unit circle (no atan seam) driving both the falloff rate and brightness of the glow, plus a filament term for magnetic loops that hug the limb.
Everything else is honest instrumentation: canvas-2D strip charts on a 0.3 s cadence with a 220-sample ring buffer; a mean-reverting random-walk model with a flare envelope (fast rise, exponential decay) shared by the shader, the X-ray chart, the readouts and the observation log; CSS-only forecast bars; an SVG reticle. Pressing the disc injects an M-class test flare — the shader surges, the chart spikes, and the log quietly notes "this one was you." If WebGL is unavailable the stage swaps to a layered radial-gradient sun and the page carries on.
nowrap and clipped past ~800 px viewports; resized to 5vw so both lines clear 1280 px with padding intact.cubic-bezier(.2,.7,.2,1); new log rows slide in with a brief flare-orange wash..panel's position:relative silently overrode .hud's position:absolute, dropping both HUD panels out of their orbit around the sun. Fixed with a more specific .hero .hud selector, measured the DOM after.measureText) so both lines clear the column. Mobile moves title and panels into normal flow under a 62svh stage (with vh fallbacks for older Safari).