Ignition
The page holds its breath while the story moves. You never lose the scrollbar; it just has more to say.
← Theme Gallery · SECRET CHARACTER
Three worlds. One scroll.
This is EMBER — one artist, three eras. The fire records, the frozen year, the broken-signal comeback. No menus to hunt through, no pages to load: the whole story plays through the one control already under your hand.
// one document, one native scrollbar, zero scroll-jacking — everything below is a pure function of how far you have scrolled
Scroll
World one · The fire era
The early records. Loud, warm, scorched at the edges — everything EMBER made in this era rises like heat and burns off at the top of the page.
Every era of an artist deserves its own temperature — its own colours, its own type, its own pace. This is EMBER at full burn: a serif with heat in it, sparks that answer your hand, and a glow that follows the scroll like a draft feeding a flame.
Live sparks climb the page the whole time you are here. Move faster and they breathe harder; stop, and the room settles.
A serif with weight in the wrong places. Warm, a bit unstable, glowing at the edges when the scroll heats up.
⚙ a world = a token scope, nothing else · embers = one pooled canvas, ~70 additive sprites, denser at speed, killed the moment fire leaves the viewport
The page holds its breath while the story moves. You never lose the scrollbar; it just has more to say.
Two rooms, a borrowed amp, songs written before anyone was listening. The draft pulls everything upward — you can hear the record starting to catch.
The record lands and the whole room goes up at once. This is the era every later era gets measured against.
⚙ three chapters scrubbed by one progress number — scroll up and it rewinds exactly; nothing is hijacked, the page is just taller than it looks
Fire → IceThe world changes temperature here.
World two · The frozen year
EMBER goes quiet. A year in the cold — long songs, slow light, the same voice at half tempo and forty degrees colder.
⚙ nothing reloaded — the tokens flipped inside the orb you just scrolled through
Nothing in this era rushes. Fades take longer, holds hold longer, and nothing overshoots. Motion is part of the palette — the same bones read as a different studio when the pace drops.
Real frost grows in from the corners, and the deeper you scroll into the year, the further it creeps.
Panels cut on opposing angles, like sheet ice under stress — their seams meet at a corner, never a straight line.
⚙ fire eases in 450ms, ice in 850ms — motion tokens swap with the world scope · frost = masked macro texture, opacity-only · rakes = cheap clip-path, no images
The frozen year · The record
⚙ scroll down, move across — vertical progress drives one translateX inside overflow:clip, so the page never grows a horizontal scrollbar · drag the scrollbar and the panels track your thumb exactly · on phones the same vertical swipe does the work · the rail on the right jumps you anywhere
Recorded in one take in an unheated chapel. You can hear the size of the room in every note.
Your record turns sideways while the page stays put. No swipe to learn, no bar to fight.
The long middle of the record — the sound of the ice starting to give.
A voice memo from the coldest week, kept exactly as it was. The hiss stays.
The last song before the signal broke. The next era starts where this one cuts out.
Ice → GlitchThe orb comes apart instead of blooming.
World three · The comeback
Three years of static, then EMBER on every channel at once — harsher, louder, cut to pieces and still standing.
⚙ the transition itself is themed — that last one snapped instead of easing, because this world does not do smooth
Every headline in this era arrives broken and repairs itself in front of you. The damage is the design — EMBER's comeback wears its static on the outside.
The whole era plays through a bad monitor — scanlines over everything, tear-bars sweeping past on their own schedule.
900 weight, condensed, uppercase, with the RGB channels pulled a couple of pixels apart. The misregistration is the brand.
⚙ headlines scramble once then restore the real text in the DOM — screen readers never hear gibberish, the page still indexes as words · scanlines = one repeating gradient, tears = steps() sweeps, no canvas, no per-frame work
Finale
Three eras of one artist — fire to ice to static. Three palettes, three type systems, two transitions and a record laid on its side, all in one document with one scrollbar, and the back button still does exactly what you expect. Every piece of it is a module we drop into a real artist site.