MONOLITH is one of 25 sites built by Formwork to show what's possible on the web. This one is pure typography — no images, no 3D — carried entirely by motion.
A studio that sells motion should be motion. So the whole page is a type specimen that reacts: headlines decode themselves, everything skews with your scroll speed, and buttons lean toward your cursor. Restraint comes from a two-colour system — near-black, off-white, one acid green.
The scramble reveals text left-to-right while filling the rest with random glyphs — but it reads the real text from the DOM first, so if scripts fail the headline is simply there:
const text = el.dataset.original || (el.dataset.original = el.textContent);
for (let i = 0; i < len; i++)
out += (i < reveal || text[i]===' ') ? text[i] : RANDOM_GLYPH;
el.textContent = out; // ...until reveal reaches the end
The skew is the classic GSAP velocity trick: read ScrollTrigger.getVelocity(),
clamp it, push it into skewY, then ease back to zero. Fast scroll = the page tilts, then settles.
-webkit-text-stroke gives hollow words that feel engraved.scaleY pseudo-element — no repaint of text colour cost.git init -b main && git add -A && git commit -m "ship"
gh repo create formwork-monolith --public --source=. --push
gh api --method POST /repos/OWNER/formwork-monolith/pages \
-f 'source[branch]=main' -f 'source[path]=/'
Keep paths relative and drop a .nojekyll file so everything serves as-is.
One typeface doing the heavy lifting, two supporting it, and motion wired to the two things a visitor always controls: their scroll and their cursor.