← All effects

Decrypt Reveal

TextVanilla JS · zero dependenciestextContent only · no canvas
-- fps
prefers-reduced-motion detected — text shown decrypted

X-ray · layers

unsolved chars are █ blocks
a frontier moves through
fresh letters flare white

Parameters

Your text 
Decrypt speed8 chars/s
Churn rate18 /s
Flash length400 ms
Pause between1600 ms
your version · updates as you tinker

How this effect works

The whole animation is one number: the frontier — how many characters have been decrypted so far. It grows by speed characters per second. Everything to the left of it renders as the real text; everything to the right renders as noise. There is no per-character state to manage, which is why the effect stays trivial no matter how long the string is.

The three layers dress that number up. Redaction decides what the noise looks like — solid █ blocks read as "censored document", while random glyphs (redaction off) read as "hacker terminal"; same frontier, different costume. The churn rate controls how often the noise re-rolls — slower churn looks like heavy encryption grinding away. And flash gives each newly resolved letter a brief white flare before it settles into green, which is what makes the frontier feel like it's doing work rather than just wiping a mask.

Production notes: respects prefers-reduced-motion (renders the decrypted text) · one textContent write per character per frame, headline-scale only · your text goes in via textContent, never raw HTML · the copied snippet is self-contained HTML + CSS + JS.