Mirror Copy of Text
Mirror, flip, and reverse text instantly. Create horizontally mirrored, upside-down, or fully reversed text copies using Unicode character mapping.
About
Text mirroring is a character-level transformation that maps each glyph to its visual counterpart along a chosen axis. A horizontal mirror swaps directional characters: parentheses ( become ), slashes change orientation, and bracket pairs invert. A vertical mirror (flip) replaces each Latin character with its closest Unicode upside-down equivalent - a becomes ɐ, e becomes ǝ - then reverses line order so the result reads correctly when the screen is rotated 180°. This tool operates on a lookup table of 100+ mapped character pairs derived from Unicode blocks including Latin Extended-B, IPA Extensions, and Mathematical Operators. The mapping is lossy: characters without a visual mirror (such as CJK ideographs) pass through unchanged. Results are copy-safe plain text, not CSS-rotated elements, so they work in any text field, messaging app, or social media bio.
Formulas
Each mirror mode applies a distinct transformation pipeline to the input string S of length n.
Horizontal Mirror (Left-Right):
Sh = map(S, H) where H: Char → Char
The string is iterated character-by-character. Each character ci is replaced by H(ci) from the horizontal lookup table, then the entire result is reversed:
Sh = reverse(H(c1) ⋅ H(c2) ⋅ … ⋅ H(cn))
Vertical Mirror (Upside-Down Flip):
Sv = reverse(map(S, V))
Each character ci is replaced by V(ci) from the vertical (upside-down) Unicode lookup. The result is then reversed so it reads correctly when rotated 180°.
Reverse (Simple):
Sr = cn ⋅ cn−1 ⋅ … ⋅ c1
Both (Combined):
Sb = vertical(horizontal(S))
Where H is the horizontal character map, V is the vertical (upside-down) character map, and reverse inverts string order. Complexity: O(n) for all modes. Characters absent from lookup tables pass through as identity: H(c) = c when no mirror glyph exists in Unicode.
Reference Data
| Original | Horizontal Mirror | Vertical Flip | Unicode Block |
|---|---|---|---|
| a | a | ɐ | Latin Ext-B / IPA |
| b | d | q | Basic Latin |
| c | ɔ | ɔ | IPA Extensions |
| d | b | p | Basic Latin |
| e | ɘ | ǝ | Latin Ext-B / IPA |
| f | ʇ | ɟ | IPA Extensions |
| g | ǫ | ƃ | Latin Ext-B |
| h | ʜ | ɥ | IPA Extensions |
| i | i | ᴉ | Latin Ext-B |
| j | ꞁ | ɾ | IPA Extensions |
| k | ʞ | ʞ | IPA Extensions |
| m | m | ɯ | IPA Extensions |
| n | n | u | Basic Latin |
| p | q | d | Basic Latin |
| q | p | b | Basic Latin |
| r | ɿ | ɹ | IPA Extensions |
| t | t | ʇ | IPA Extensions |
| u | u | n | Basic Latin |
| v | v | ʌ | IPA Extensions |
| w | w | ʍ | IPA Extensions |
| y | ʎ | ʎ | IPA Extensions |
| ( ) | ) ( | ( ) | Basic Latin |
| [ ] | ] [ | [ ] | Basic Latin |
| { } | } { | { } | Basic Latin |
| < > | > < | < > | Basic Latin |
| / | \ | / | Basic Latin |
| ? | ? | ¿ | Latin-1 Supplement |
| ! | ! | ¡ | Latin-1 Supplement |
| & | & | ⅋ | Math Operators |
| _ | _ | ‾ | General Punctuation |
| . | . | ˙ | Spacing Modifiers |
| , | , | ʻ | Spacing Modifiers |