How we built the Nebula color engine
OKLCH derivation, role-keyed tier overrides, and the lookup that replaced 1,200 lines.
OKLCH derivation, role-keyed tier overrides, and the lookup that replaced 1,200 lines.
What we cut from the timeline pass and why the playhead now feels true under load.
A single equation that keeps surface pairs legible across every tier override.
Drag-to-token snapping and the gestures that finally read as physical.
Two surface packs, one shared substrate, and what we learned wiring them through.
cid-keyed instances, not DOM-keyed — and why that matters when the page rerenders.
Versioning palettes, tier maps and behaviours as a single transferable artifact.
The vocabulary that earned its keep — and the names we quietly retired.
Components describe layout. Color comes from context. The bridge is one CSS variable.
Layers, tracks, beats. Why Aurora reads as a timeline, not a tween editor.
Snap to the next token in scale, not raw pixels — a quiet differentiator.