Ransom note
Short phrases spelled in mismatched paper scraps that rise in one by one, hold and lift away.

npx skills add https://design.how/vault/ransom-noteInstalls the template, the brief and a check script as one skill.
What it is
A near-white card holds one short phrase, "stay weird", then "make stuff", "be kind" and three more, each spelled in paper scraps: every letter on its own sheet, black on cream, yellow on black, white on red, set in a different face and weight, mostly in capitals, each tilted up to 8 degrees, nudged off the baseline and sized up or down by up to 12 percent. The scraps rise into place left to right, 26ms apart, unblurring as they land; the phrase holds for 1.8 seconds, then lifts and blurs away all at once as the next rises under it.
Every scrap is drawn, not loaded. A seeded generator, hashed from the phrase, picks a paper and one of the inks that read on it, a face and weight from a short list of serifs, grotesques, monospaces and a pixel face, a case, an occasional italic or outlined letter, padding, and a cut: a rectangle whose four corners move in a little, sometimes with an extra notch on the top or bottom edge, applied as a clip-path polygon. The same phrase always composes the same way, and a re-roll is a new seed.
The letter height is 7.2 percent of the card's width, and a phrase that runs wider than 86 percent of the card is shrunk once to fit. A double drop shadow lifts each scrap off the page. Resting the pointer on the card freezes the phrase, shown in full.
How it works
- Compose the phrase with a seeded mulberry32: per character, a paper, an ink, a face, a weight, a case, padding, a polygon cut, and a tilt, bounce, scale and gap from JITTER.
- Render each character as a span with the paper as background, the cut as clip-path, the letter in its face and ink, wrapped in a span that carries the tilt and the reveal.
- Reveal with transform, opacity and blur transitions over 460ms on an expo-out, staggered 26ms per scrap; hide the outgoing line in 240ms, all scraps together.
- Cycle phrases on timers: reveal, hold REVEAL_HOLD, swap to the next with the old line kept mounted while it leaves.
- Pause the cycle off screen, on a hidden tab and while the pointer rests on the card.
- Under reduced motion, show the first phrase in place and never start the cycle.
What you can change
PHRASES(six short phrases): What the note says, in turn.JITTER(rot 8, dy 0.06, scale 0.12, gap 0.05): How messy the line is.PAPERS(ten papers with their inks): The sheets a scrap can be cut from.FACES(eight families): The faces a letter can be set in, as CSS variables with fallbacks.REVEAL_HOLD(1800): How long a phrase holds.GROUND(#fcfcfc): The card colour.