How strikethrough text works via Unicode
HTML strikethrough (<s> or <del>) works on web pages. Social platforms strip HTML from user content. The Unicode approach uses combining characters — code points that attach a visual mark to the character immediately before them in the string. U+0336 (Combining Long Stroke Overlay) draws a horizontal line through any character it follows, producing ̶s̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h̶ without any formatting layer.
Practical use cases
- Promotional pricing — show crossed-out original price in Instagram shopping posts
- Comedic bios — "definitely not a workaholic totally not obsessed with coffee"
- Corrections in threads — cross out a mistake and add the correction inline for humor
- Discord and Telegram — Discord renders ~~markdown strike~~ in messages, but strikethrough Unicode works in bios and server descriptions where markdown is not parsed
- Developer posts — mark deprecated APIs, removed features, or crossed-off to-dos in plain text
Frequently asked questions
How does strikethrough work without HTML?
It uses Unicode Combining Long Stroke Overlay (U+0336), which attaches a horizontal line to any character before it. No HTML or CSS — just plain Unicode combining characters that any Unicode renderer handles.
Does it work on Instagram captions?
Yes. Instagram renders U+0336 correctly in captions, bios, and comments. The exact appearance depends on the device font.
What is underline mode?
Underline mode uses U+0332 (Combining Low Line) instead of U+0336, placing a line below each character rather than through it. Works the same way — no HTML needed.
Why does it look different on different devices?
Combining character rendering depends on the system font. Modern devices (iOS 16+, Android 12+, Windows 11) render it cleanly. Older systems may show the combining mark as a separate character.