Upside Down Text
Flip your text upside down or mirror it into copy-paste Unicode for social bios — entirely on this device.
Press ? for shortcuts
Do it offline:$ python3 -c 'import sys; t=str.maketrans("abcdefghijklmnopqrstuvwxyz","ɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz"); print(sys.stdin.read().rstrip().translate(t)[::-1])'
How to use it
- Type or paste your text into the input and the flipped version appears in the result pane as you go.
- Switch between Upside down, Mirror, and Flip + mirror to choose how the characters are transformed.
- Copy the result with one button, or download it as a .txt file to keep.
- Paste it into a social bio, username or message; characters with no flipped form are kept and counted.
Upside down text turns a line like hello into ollǝɥ: each letter is swapped for a real Unicode character that looks like it was rotated 180 degrees, and then the whole line is reversed so the last letter leads. A mirror mode reflects the letters left-to-right instead. Both run inside this browser tab, and nothing you type is uploaded.
How it works
The page splits your text into grapheme clusters — Unicode's user-perceived characters — so an emoji or an accented letter stays whole. Each cluster is looked up in a hand-built flip table and, on a match, swapped for the character that resembles its half-turn. The sequence is then reversed end to end, because a 180-degree turn moves the last character to the front; mirror mode reverses the same way after a left-to-right reflection.
Nothing here swaps your font. Every flipped shape is its own ordinary Unicode character, most of them from the phonetic IPA and Latin Extended ranges, so the look survives a paste into an unstyled field. The honest trade-off: a screen reader reads the underlying letters, and a search for the original spelling will not find the flipped copy.
Examples
helloollǝɥThe plainest case: each of h, e, l, l, o maps to a rotated look-alike, then the line turns around so o leads.
café ☕ 42ᄅᔭ ☕ éɟɐɔThe digits 4 and 2 flip to look-alike glyphs, while the spaces, the coffee emoji and the accented e-acute have no flipped form — four of the nine characters, as the note under the result reports.
diceɘↄibMirror reflects d, c and e to their left-right twins and reverses the order, so the last letter leads; i has no reflected glyph, the one unchanged character.
budpnqFlip + mirror composes both effects into a straight top-to-bottom turn with no reordering, so b, u and d become p, n and q in place.
hi é👨👩👧👨👩👧é ᴉɥh and i flip and move to the back, while the family emoji and the accent stay whole: the zero-width joiners are never cut and the accent never leaves its e, because whole grapheme clusters move as units.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
Characters with no flipped form are kept
The tables do not cover everything. Anything with no entry — an emoji, a CJK ideograph, a symbol, a non-Latin letter — is kept as typed, and a note counts how many rode through unchanged.
Emoji and accents are never broken apart
Because it works on grapheme clusters, a flag, a skin-toned emoji, a joiner sequence, or an accented letter counts as one unit and passes through whole — no accent is stranded and no emoji splits apart.
Several lines turn over together
A genuine 180-degree turn reverses everything, line breaks included, so a block of lines comes back with the last one on top and each line's own characters flipped — a whole-text turn, not a per-line one.
Mirror and flip + mirror change fewer letters
Left-to-right reflection has a clean Unicode glyph for only a few letters, so the mirror modes change fewer characters and lean on the reversal for most of the effect. Unmatched letters stay upright and are counted.
It may not render the same everywhere
Some apps and fonts lack a glyph for these characters and show a box or the plain letter. Keep a normal copy of anything that must be read aloud or found in search.
Flipping twice is not always reversible
Turning a result upside down again restores letters like b, d, n, u, o and s, but not a or e, whose rotated glyphs have no partner. Capitals use approximate look-alikes, not pixel-perfect shapes.
Common errors
Input is larger than the 1 MB limit for this tool. For bigger payloads use the CLI: python3 -c 'import sys; t=str.maketrans("abcdefghijklmnopqrstuvwxyz","ɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz"); print(sys.stdin.read().rstrip().translate(t)[::-1])'- A typed refusal, not a trim: over the cap the page flips none of your text rather than part of it. Just below the cap, very large inputs run in a background worker to stay responsive.
FAQ
Why did some characters stay the same?
Only letters, digits and punctuation with a matching flipped or mirrored character change; everything else, emoji and non-Latin scripts included, is left alone. A note counts how many were kept, so the coverage gaps are plain.
Is this an image or a special font?
Neither. Each flipped letter is its own Unicode character, many from the phonetic IPA blocks, so what you copy is plain text, not a picture or an installed font. It pastes into fields that allow no formatting, and some readers voice the letters underneath.
Will it show upside down everywhere I paste it?
Usually, but not always. The characters travel with the text, so most bios, captions and messages keep the effect, while some apps show a plain letter or a blank box where the font lacks a glyph. Paste into the exact field to check first.
Keyboard shortcuts
- ⌘/Ctrl + Enter
- Flip the current text again.
- ⌘/Ctrl + S
- Save the flipped result as a .txt file.
- ⌘/Ctrl + C
- Copy the result when no text is selected.
- ⌘/Ctrl + Shift + C
- Copy the result even with a selection active.
- t
- Move to the next colour theme.
- ? or ⌘/Ctrl + /
- Open the keyboard-shortcut help dialog.
- Esc
- Close the open dialog; the input is never cleared.