Style Text · browser-local
Zalgo Text Generator
Create the glitchy, dripping zalgo look by stacking Unicode combining marks on each character. GlyphSift caps the number of marks per character so results stay bounded and reproducible.
- Index state
- eligible
- Reviewed
- 2026-08-24
- Input limit
- 5,000 graphemes
Zalgo Text Generator
c̤̖̀̈ǖ̥́r̥̗̊̆s̰̣̆̂ẹ̋̇̃d̤̖̃̀ t̥̗́̊ḛ̊̆̂x̰̣̋̇ṫ̤̃̀
Good fit
Use this tool when
- You want a decorative glitch effect for a short label.
- You accept reduced readability for style.
- You want a controlled, capped amount of distortion.
Keep the original
Avoid it when
- The text must remain readable or accessible.
- You are trying to evade moderation or filters.
- The destination limits combining marks.
Reviewed truth vectors
Examples that expose the edge cases
cursedcursed with stacked combining marksEach letter gains a capped set of marks.
hihi with marks above and belowIntensity controls how many marks are added.
a bspaces are left unmarkedWhitespace is skipped to keep word gaps.
Transparent implementation
How it works
- 01
Skip whitespace and keep each base character.
- 02
Append a capped number of combining marks chosen by position.
- 03
Increase or decrease the count with the intensity control.
Known limitations
What the result cannot promise
Heavy stacking can be hard to render or read.
Some platforms strip or limit combining marks.
It is decorative and should not be used to bypass moderation.
Questions before copying
Frequently asked questions
Why is it capped?
A per-character limit keeps output bounded, reproducible, and safe for rendering, unlike uncapped zalgo generators.
Is the output random?
No. Marks are selected by character position, so the same input and intensity always give the same result.
Can it hide text from filters?
It is a visual effect, not an evasion tool, and many systems normalize or strip the marks.
Experience, expertise & trust
How we verify this tool
Automated evidence
- Tool-contract & coverage suite30 deterministic cases
tests/tools-30.test.mjs mirrors the ToolRunner dispatch and asserts every registered engineId returns the contracted output shape, plus a coverage guard so no tool silently drops characters.
Run in: node --test after a production build (vinext build) - Rendered-HTML suite12 deterministic cases
tests/rendered-html.test.mjs renders the deployed server bundle and asserts the Unicode-version manifest and each wave's tool markup are present in the server-rendered HTML.
Run in: node --test against the built dist/server bundle - Transform & cleanup suite21 deterministic cases
tests/transform-cleanup.test.mjs exercises each deterministic cleanup and transform action against whitespace, duplicate, ordering, casing, and HTML-to-text edge cases.
Run in: node --test, no network, no randomness
Standards this tool follows
- The Unicode Standard, Version 17.0
Mathematical Alphanumeric Symbols and Enclosed Alphanumerics blocks used for presentation styles.
- UAX #44: Unicode Character Database
Character properties that determine which source characters have a style mapping.