Circled letters from the Enclosed Alphanumerics block, in both outlined and filled forms. Real characters, so they travel anywhere text does.
Nothing on this page changes a font. The bubble text generator swaps each character you type for a different character that already exists in Unicode and happens to be drawn inside a circle. Lower case a becomes ⓐ, which is code point U+24D0; capital A becomes Ⓐ at U+24B6. Those two runs, U+24B6 to U+24CF for capitals and U+24D0 to U+24E9 for lower case, sit inside the Enclosed Alphanumerics block that begins at U+2460. The filled forms come from somewhere else entirely: 🅐 is U+1F150, in the Enclosed Alphanumeric Supplement starting at U+1F100. Because the result is made of ordinary characters rather than applied styling, it survives copy and paste the way any other text does. There is no markup for a field to strip, no font file for the receiving app to load, and no rich text layer to lose along the way. Anywhere that accepts Unicode stores exactly the code points you copied and hands them back to readers unchanged, which is the whole reason a bio field displays them at all.
These characters were not drawn to decorate usernames. Enclosed Alphanumerics was present in Unicode 1.0 in 1991, imported from East Asian character standards, chiefly JIS X 0208, where circled numbers and letters already served as list markers, footnote references and step numbers in Japanese technical typography. That history is visible in the layout: the block opens with ① through ⑳ and adds the alphabet afterwards, because the numbers were the purpose and the letters came second. The Supplement is far more recent, added in Unicode 6.0 in October 2010, largely to preserve round-trip compatibility with Japanese broadcast symbols and with the symbol sets Japanese mobile carriers shipped before emoji were standardised. The origin explains the awkwardness you are about to meet. A block assembled to reproduce list markers from several legacy standards owes you no complete alphabet, no consistent drawing style and no lower case. Every gap described below follows from that decision: decoration is a use nobody encoding these characters was designing for, and the encoding has never been revised to support it.
Coverage is uneven, and it is exactly where the two forms come apart. The outlined set is complete: 26 capitals, 26 lower case and the digits ⓪ to ⑨, with ⑩ to ⑳ sitting beyond them. The negative circled set is not. Only capitals were encoded, U+1F150 to U+1F169, so no filled lower case exists to pair with them. This tool maps both cases onto the same 26 glyphs, which means case is genuinely destroyed: type Bob in the filled style and nothing in the output records that two of the three letters were lower case. Filled digits are borrowed from a third block, Dingbats, where ➊ to ➒ begin at U+278A; they are drawn sans serif and read lighter than the letters beside them. Nothing outside letters and digits is encoded at all, so full stops, commas, apostrophes and ampersands pass through untouched, as do accented letters: é stays é. The 32 framed rows leave digits plain too, because each frame wraps a letters-only mapping, so a 7 inside a set of wings stays an ordinary 7.
The outlined circles sit in the Basic Multilingual Plane, below U+FFFF, and have shipped in default font stacks for decades: Segoe UI Symbol on Windows, Noto Sans Symbols on Android, Apple Symbols and Hiragino on iOS and macOS. They render almost everywhere, including on hardware that has not had a system update in years. The filled circles are above U+FFFF in the supplementary plane, so each is stored as a surrogate pair, two 16-bit units standing for one character, and any device whose fonts predate Unicode 6.0 draws the missing-glyph box instead. That single fact is why 🅐 fails where ⓐ works. The Supplement is inconsistent internally as well. Four of its negative squared letters, U+1F170, U+1F171, U+1F17E and U+1F17F, carry default emoji presentation and render as coloured blood type and parking signs, while the regional indicators at the end of the same block combine in pairs into flags. The preview here uses your device's fonts, not your reader's, so paste into the real destination before committing to a filled style.
Bubble letters do their best work as labels rather than as prose: one circled word at the top of a bio, a Discord channel name, a section divider in a forum signature, a heading in a shared document, or a display name that has to stand out in a list of hundreds. They also serve as improvised list markers in fields that strip real lists, which is close to what the characters were encoded for in the first place. What does not work is a paragraph. Circled letters carry wide side bearings and no kerning between them, so running text sets loose and slows reading down noticeably. Each row here has the same controls as the rest of the site: copy with format options, save as .txt with a byte order mark so Notepad reads the encoding correctly, open in Word as a .docx, preview on social mockups, and a heart that keeps the style in favourites. The header counts 34 rows; the toggle beside it opens all 358 styles when circled is not what you wanted.
Two real costs come with every circled character, and neither has a workaround worth the name. The first is accessibility, and it is the more serious of the two. Screen readers treat these as symbols rather than letters: depending on verbosity settings, NVDA and VoiceOver either announce each one by its Unicode name, turning a short bio into a long stream of circled-latin-small-letter announcements, or skip them entirely and read nothing at all. Your text becomes either exhausting or invisible. The second is matching. Platforms index and compare literal code points, so ⓑⓤⓑⓑⓛⓔ shares nothing with bubble as far as any search box is concerned. Nobody finds you by typing your name, hashtags containing circled letters do not group with their plain equivalents, and mention autocomplete cannot resolve them. A related surprise is NFKC normalisation, whose compatibility mapping folds Ⓐ back to A and ⑦ back to 7, so systems that normalise their input, including many username checks, quietly return your styling to plain text on save, without warning you that anything changed.
Character limits interact with these styles in two different ways. Outlined letters cost exactly one code point each, so a twenty-letter name stays twenty and fits comfortably inside an Instagram display name's 30. Filled letters also cost one code point but occupy two UTF-16 units, and any counter measuring units rather than characters reads six filled letters as twelve, which is enough to fail a tight field for no visible reason. The framed rows add a fixed amount regardless of how long your input is: Japanese Lenticular adds four characters, Clan Wings six, Imperial Crown eight. Because that cost is constant rather than proportional, it bites hardest on short fields, where eight characters is a quarter of a 30-character display name and almost nothing in a 2,200-character caption. Separately, some fields reject non-Latin characters outright instead of truncating them: Instagram usernames, X handles and Facebook's name field accept ASCII only, so no circled style saves there. The per-network pages here badge every row against those real caps as you type.
It is worth being plain about the limits of the tool itself. It does not install or embed a font, so it cannot make a glyph appear on a device that has none; whether 🅐 renders is decided entirely by your reader's font stack, and nothing done here changes that. It does not produce images, so there is no fallback when a platform refuses the characters outright. Colour is a separate matter again: the gradient presets travel only into destinations that accept HTML or hex colour codes, such as Google Docs, Word and some game name fields, while Instagram and X discard the colour and keep the plain characters. It does not reverse the transformation either. The plain text converter does that, folding styled Unicode back to ASCII when a form or an applicant tracking system rejects it. And nothing you type is uploaded anywhere. Every transformation runs in your browser, there are no accounts, and no server ever sees the text you paste in or the styles you pick.
No, it is character substitution. ⓐ is U+24D0, a separate character from a at U+0061, and it looks circled in whatever font renders it. That is why it survives into fields that permit no formatting, and why you cannot change its weight.
The filled forms live above U+FFFF in the Enclosed Alphanumeric Supplement, added in Unicode 6.0 in 2010. A device whose font stack predates that has no glyph for them and draws the missing-character box instead. The outlined circles date from 1991 and render nearly everywhere.
Only 26 filled capitals were ever encoded, at U+1F150 to U+1F169, and no filled lower case exists. Both cases are therefore mapped onto the same glyphs and the distinction disappears from the output. Use the outlined style when your capitalisation carries meaning.
No. Usernames and handles on Instagram, X and TikTok accept ASCII letters, digits, full stops and underscores only, and reject anything else at the moment you try to save the change. Your display name, bio and captions do accept circled characters.
In the outlined style, yes: ⓪ to ⑨ are encoded, with ⑩ to ⑳ beyond them. The filled digits are borrowed from the Dingbats block, so they are drawn in a slightly different style, and the 32 framed rows leave digits plain.
Not by typing it. Search matches code points, and ⓝⓐⓜⓔ has no characters in common with name. Keep your searchable identity in plain text somewhere on the profile and use circled letters only for a heading or a decorative line beneath it.
Yes, measurably. A screen reader either reads each character out by its Unicode name, which is slow and meaningless aloud, or skips it silently, which makes your text vanish. Use it for short decorative labels, never for information a reader actually needs.
Paste it into the plain text converter, which folds styled Unicode back to ASCII and can strip accents too. Some systems do it for you without asking, applying NFKC normalisation that maps Ⓐ to A, which is why styled usernames sometimes revert on saving.