WebToolsPlanet
text Tools

Glitch Text Generator

Add Unicode combining characters to text to create glitchy Zalgo effects — adjustable intensity for cyberpunk, horror, or creative aesthetics.

Last updated: March 26, 2026

Client-Side Processing
Input Data Stays on Device
Instant Local Execution

Find this tool useful? Support the project to keep it free!

Buy me a coffee

What is Glitch Text Generator?

Glitch text — also called Zalgo text or corrupted text — is created by layering Unicode combining characters on top of normal letters. Combining characters are special Unicode code points that attach visually to the preceding character without advancing the cursor. By stacking many of these above and below each letter (from the Unicode combining diacritics block U+0300–U+036F), text appears to "bleed" or "corrupt" vertically, breaking out of its normal line boundaries.

The effect is named after "Zalgo" — a creepypasta internet meme from the mid-2000s associated with corrupted text and horror aesthetics. In technical terms, the characters themselves are valid Unicode; modern operating systems and browsers handle them correctly, which is why the text copy-pastes and renders consistently across platforms. Intensity is controlled by how many combining characters are stacked per base letter — from subtle accent-like diacritics at low settings to extreme vertical bleeding at maximum intensity.

How to Use Glitch Text Generator

1

Type or paste your text into the input field

2

Drag the **Intensity** slider to set the glitch level — low for subtle distortion, high for extreme vertical bleeding

3

Toggle **Up**, **Mid**, and **Down** to control whether combining characters appear above the text, through the middle, and below the baseline

4

The glitched output updates live in the preview area as you adjust settings

5

Click **Copy** to copy the glitch text to your clipboard

6

Paste into Discord, Twitter/X, Instagram bio, a game chat, or any text field that renders Unicode

Common Use Cases

  • Creating a horror or creepy display name for games, Discord, or social media profiles
  • Designing a cyberpunk or dystopian UI mockup where body text appears corrupted or glitching
  • Adding a dramatic visual effect to a tweet, Instagram caption, or Reddit post for attention
  • Making text look "hacked" or "broken" for a Halloween event post, horror story header, or ARG
  • Creating unsettling section titles for horror-themed creative writing projects or Tumblr posts
  • Generating corrupted text effects for digital glitch art or video title sequences
  • Creating a "screaming" text effect for exaggerated emphasis in meme formats
  • Testing how a web app handles unusual Unicode combining characters — verifying text fields don't crash or truncate unexpectedly

Example Input and Output

Applying moderate glitch intensity with up and down combining characters:

Input text + settings
Input: Hello World
Intensity: Moderate
Direction: Up + Down
Glitch output
H̵̢͔̞e̷̜͠l̴̰͑l̵̹͒o̶̰̊ ̷̲̿W̵̱͑o̸̻̊r̵͚͌l̸͖̆d̷̲̈

(Characters bleed vertically above and below baseline.
 Renders correctly in any Unicode-supporting text field.)

Client-Side Processing

Glitch text generation runs entirely in your browser using JavaScript string manipulation. Your input text is never sent to our servers.

Sanitizing User-Submitted Glitch Text

To sanitize user input in a web app and strip combining characters: const clean = input.normalize("NFD").replace(/[\u0300-\u036f\u0483-\u0489\u0610-\u061a\u064b-\u065f]/g, ""). This removes the most common combining character ranges. For comprehensive coverage, use a Unicode security library that filters all characters with the "Mn" (Mark, Nonspacing) Unicode category.

CSS Glitch Effects for Web Projects

For web projects, a CSS-based glitch animation is more controllable and accessible than static Zalgo text. Use @keyframes with transform: translate() and opacity flickers on ::before/::after pseudo-elements with content: attr(data-text). CSS glitch effects are reversible, performant, and don't affect screen readers (which read the actual element text, not pseudo-elements). Examples and variations are widely documented on CodePen and CSS-Tricks.

Frequently Asked Questions

What are combining characters and how do they create the glitch effect?
Combining characters are Unicode code points that attach to the preceding character rather than occupying their own space. The familiar é in French is the letter "e" (U+0065) followed by the combining acute accent (U+0301). Glitch text uses the same mechanism but stacks dozens of combining diacritics above and below each letter from the Combining Diacritical Marks block (U+0300–U+036F). Most font renderers stack these vertically without limit, causing the visual "bleed" effect beyond normal line height.
Will glitch text copy and paste correctly everywhere?
It copies and pastes correctly on most modern platforms: Discord, Twitter/X, Reddit, Facebook, Instagram bio, Steam, most games with Unicode chat, and modern web browsers. However, some platforms filter combining characters: Slack strips excessive diacritics. iOS/Android may truncate very long stacks. Some games and legacy chat systems reject non-ASCII Unicode. Plain text fields with character limits (SMS) count each combining character as a separate character, so glitch text is much longer than it visually appears.
Is glitch text harmful or can it crash apps?
On well-implemented modern systems, no — combining characters are valid Unicode and standard text renderers handle them correctly. However, some poorly implemented apps (older mobile apps, legacy chat clients, some games) may slow down or render incorrectly with very long combining stacks. The effect is sometimes used to test text field robustness. For general use at moderate intensity, it is safe for any modern platform.
What is the difference between Zalgo text and other glitch text styles?
"Zalgo text" specifically refers to the vertical-bleeding combining-character effect. "Glitch text" is a broader category that also includes: horizontal distortion using Unicode lookalike characters (e.g., Cyrillic "а" instead of Latin "a"), strikethrough effects using U+0336, text with zero-width joiners inserted irregularly, and styling using Unicode mathematical letter variants (𝔀𝔢𝔦𝔯𝔡 𝔣𝔬𝔫𝔱𝔰). This tool specifically generates the Zalgo/vertical-combining-character style.
How do I remove combining characters from glitch text in code?
In JavaScript: input.normalize("NFD").replace(/[\u0300-\u036f]/g, "") — this decomposes characters to base + combining form, then removes all combining diacritics. In Python: import unicodedata; "".join(c for c in unicodedata.normalize("NFD", text) if unicodedata.category(c) != "Mn"). For a comprehensive solution, filter all Unicode characters with category "Mn" (Mark, Nonspacing), which covers combining characters across the full Unicode standard.
Is glitch text accessible to screen readers?
No — glitch text is inaccessible to screen readers. Each combining character is a separate code point, and screen readers attempt to pronounce each diacritic descriptor ("combining grave accent", "combining ring above"). This produces completely unreadable audio output. Avoid glitch text for any content that needs to be accessible. For decorative headings, provide an aria-label with the plain text version: <span aria-label="Hello World">[glitch text here]</span>.
What intensity level should I use for different platforms?
Low intensity (1–3 combining chars per letter): subtle diacritics resembling accented text — works on all platforms, passes most filters. Medium (4–8 per letter): clear glitch aesthetic — works on Discord, Twitter, Reddit, most social platforms. High (10+ per letter): extreme effect with tall vertical columns — may be filtered by some platforms and cause render slowness on mobile. For semi-public use, low to medium intensity is recommended. Maximum intensity is mainly for art projects and testing.

How This Tool Works

Each character in the input string is iterated. For each base character, a set of random combining characters is selected from three Unicode ranges: above-baseline diacritics (U+0300–U+036F top segment), mid-line characters (U+0300–U+036F middle segment), and below-baseline diacritics (U+0316–U+036F bottom segment). The number of characters chosen per base letter is controlled by the intensity slider — low adds 1–3, medium adds 4–8, high adds 10–20 combining characters per letter. The selected code points are concatenated directly after each base character, creating vertical stacking in any Unicode renderer.

Technical Stack

Unicode combining character ranges (U+0300–U+036F)String.fromCodePoint()Clipboard APIClient-side only