What Zalgo text is made of
Glitch text is ordinary letters with extra combining diacritical marks attached. These come from the Unicode block U+0300 to U+036F, which holds the accents used to build characters like é or ñ. A combining mark has no width of its own; the renderer draws it on the character before it. Nothing in Unicode limits how many may follow, so a font engine keeps stacking them upward and downward, which creates the dripping, corrupted look.
The generator keeps three pools of marks, each taken from that block: 48 marks that sit above the letter, 40 that sit below, and 21 that attach at the side, overlay the letter or run through it, such as the strike-through bars. For each character it appends randomly picked marks from each pool. Spaces and line breaks are left clean.
What the intensity slider controls
The slider runs from 1 to 10. Let n be the intensity divided by 10 times 9, rounded. Each letter then receives n marks above, about 70 percent of n below, and about 30 percent of n through the middle.
| Intensity | Above | Below | Middle | Marks per letter |
|---|---|---|---|---|
| 1 | 1 | 1 | 0 | 2 |
| 3 | 3 | 2 | 1 | 6 |
| 5 | 5 | 4 | 2 | 11 |
| 7 | 6 | 4 | 2 | 12 |
| 10 | 9 | 6 | 3 | 18 |
Choices are random, so the same word looks different every time. Moving the slider or pressing "Re-glitch" rolls fresh marks. At intensity 1, hi might become h̖̍ị̊, but a different roll gives different marks.
Why length matters
Each mark is one UTF-16 unit and two bytes in UTF-8. At intensity 10 every visible letter carries 18 of them, so a 10-letter word becomes 190 UTF-16 units and about 370 UTF-8 bytes. That blows through limits on usernames, tweets and database columns long before the visible length does. Unicode's Stream-Safe Text Format allows runs of at most 30 combining marks, so this tool's maximum of 18 stays within it.
Limits and side effects
- Overlap. Lines do not grow taller to fit the stacks, so marks overlap neighbouring lines, or get clipped by containers with a fixed height.
- Filtering. Some sites strip or reject long mark sequences, leaving the base letters alone. Test a short sample first.
- Accessibility. Screen readers may read out each mark or stall; do not use it for anything people must read.
- Not reversible. There is no decode mode. Keep your original text, since stripping marks needs a separate tool.
- Non-letters. Digits, punctuation and emoji get marks too. Only spaces and line breaks are skipped.
For a different Unicode effect, try upside-down text, or look at the fancy text generator for styled alphabets.