Character Limits for Bios, Names and Posts, and How Fancy Text Counts
The Instagram bio character limit is 150 characters; X allows 280 weighted characters per post, TikTok 80 in a bio and Discord 190 in About Me. Styled letters can count double, so a five-letter word can cost 5, 7, 10 or 20.
By Maya Chen, lettering designer and type educator · Checked by Jordan Hale · · Published · How we review content
Key facts
- The Instagram bio limit is 150 characters according to Instagram's Help Center, and Instagram has not said how its counter treats styled Unicode letters.
- X counts code points up to U+10FF and a few punctuation ranges as 1 and everything else as 2, so styled text fits about 140 letters in 280.
- The word Hello counts as 5 in plain text but as 10 UTF-16 units and 20 UTF-8 bytes in bold Unicode letters.
- Steam caps profile names at 32 UTF-16 code units and 128 UTF-8 bytes, so bold or cursive letters allow only about 16.
- TikTok allows 80 characters in a bio and 30 in a nickname, while Discord allows 190 in About Me and 32 in a display name.
- Invisible characters such as variation selectors and zero-width joiners count in nearly every method, and one family emoji is five code points.
This page lists limits for names, bios and posts on Instagram, TikTok, Discord, X, Facebook and popular games, each labelled official, observed, third-party or conflicting. The sections before the tables explain why a styled word can count as 5, 7, 10 or 20, so you can plan around the strictest count.
How do platforms count characters?
Platforms count characters in one of four ways, and fancy text is where they stop agreeing. When a platform says “150 characters”, it means graphemes, code points, UTF-16 code units or UTF-8 bytes.
| Unit | What it counts | Who uses it |
|---|---|---|
| Grapheme | What a person sees as one character. “é” or “H̶” is one grapheme even if it is built from two code points | What you would count with your finger; some modern text fields |
| Code point | Each Unicode character. A letter plus a combining mark is two | Many server-side limits; Python strings |
| UTF-16 code unit | The storage unit used by JavaScript, Java and many apps. Characters above U+FFFF take two units | Many web and app text fields, because a JavaScript string’s .length counts these |
| UTF-8 byte | Bytes in the most common storage encoding: 1 for basic Latin, up to 4 for others | Databases and some games with a byte budget |
X adds a fifth: its own weighted count, published in the open-source twitter-text configuration. Code points from U+0000 to U+10FF, plus three small punctuation ranges (U+2000–200D, U+2010–201F and U+2032–2037), weigh 1. Everything else weighs 2, and the limit is 280.
How many characters is a styled word?
It depends on the unit: plain “Hello” counts as 5 everywhere, while bold “Hello” is 10 UTF-16 units and 20 UTF-8 bytes. Here is the word “Hello” in four styles, counted every way. The X weights come from the twitter-text rules above; the rest were computed directly from the characters.
| Style | Text | Graphemes | Code points | UTF-16 units | UTF-8 bytes | X weight |
|---|---|---|---|---|---|---|
| Plain | Hello | 5 | 5 | 5 | 5 | 5 |
| Bold | 𝐇𝐞𝐥𝐥𝐨 | 5 | 5 | 10 | 20 | 10 |
| Strikethrough | H̶e̶l̶l̶o̶ | 5 | 10 | 10 | 15 | 10 |
| Small caps | ʜᴇʟʟᴏ | 5 | 5 | 5 | 12 | 7 |

What each row teaches:
- Bold letters live at U+1D400 and above, beyond the range that fits in a single UTF-16 unit. So they look like five characters but are stored as ten units and twenty bytes. Any counter built on a JavaScript string length would see 10. Cursive, gothic, outline and the other maths alphabets behave the same way.
- Strikethrough keeps the normal letters and adds U+0336 COMBINING LONG STROKE OVERLAY after each one. That doubles the code point count. On X, the combining mark is inside the weight-1 range, so each struck letter costs 2 (letter 1 + mark 1).
- Small caps are the odd one out. ʜ and ʟ come from IPA Extensions (U+0250–02AF), which X weighs as 1. ᴇ and ᴏ come from Phonetic Extensions (U+1D00–1D7F), which X weighs as 2. So “Hello” in small caps costs 7 on X, not 5 or 10, and the exact cost depends on which letters you use.
Other common styles for comparison:
| Style | Text | Code points | X weight | UTF-8 bytes |
|---|---|---|---|---|
| Bubble (circled) | ⓗⓔⓛⓛⓞ | 5 | 10 | 15 |
| Black squares | 🅷🅴🅻🅻🅾 | 5 | 10 | 20 |
| Wide (fullwidth) | Hello | 5 | 10 | 15 |
| Superscript | ᴴᵉˡˡᵒ | 5 | 8 | 13 |
| Upside-down | ollǝH | 5 | 5 | 6 |
On X, that means most styled text halves the space you have: 280 becomes roughly 140 styled letters. Upside-down text is the exception, because its look-alike letters mostly sit in the low-weight range. The X (Twitter) fonts page shows the weighted count live as you type.
Do frames, emoji and invisible characters count?
Yes, all of them count, and often more than they look. Styled letters are rarely used alone. Names get frames, bios get emoji, and both change the count in ways that surprise people.
| Text | What it is | Graphemes | Code points | UTF-16 units | X weight |
|---|---|---|---|---|---|
| Maya | Plain name | 4 | 4 | 4 | 4 |
| ꧁𝓜𝓪𝔂𝓪꧂ | Bold cursive inside Javanese ornaments | 6 | 6 | 10 | 12 |
| ★彡 Maya 彡★ | Plain name in a star frame | 10 | 10 | 10 | 14 |
| ❤️ | Heart plus an invisible emoji-style selector (U+FE0F) | 1 | 2 | 2 | 2 |
| 👍🏽 | Thumbs up plus a skin-tone modifier | 1 | 2 | 4 | 2 |
| 👨👩👧 | Three people joined by two zero-width joiners | 1 | 5 | 8 | 2 |
Three things to take from this:
- Frames cost more than they look. The two ornaments in ꧁ ꧂ are characters from the Javanese script, at U+A9C1 and U+A9C2, so each weighs 2 on X. A frame can easily cost as much as a short name.
- Emoji are the extreme case for code points. The family emoji is one picture but five code points and eight UTF-16 units. X treats any emoji sequence as 2 by design, but a field that counts code points or UTF-16 units will charge you far more. If a bio is rejected as too long when it looks short, emoji are the usual reason.
- Invisible characters count. Variation selectors, zero-width joiners and zero-width spaces take up room in nearly every counting method even though nothing appears on screen.
Why does the same text get different counts?
Because platforms count in different units and rarely say which. Platforms rarely document which unit their limits use, and the choice is often an accident of the technology behind the field rather than a deliberate policy. A text box written in JavaScript naturally counts UTF-16 units. A server written in Python naturally counts code points. A database column may be sized in bytes. So a count that fits one platform, or even one version of an app, isn’t guaranteed to fit another.
That is why this guide gives each style’s count in every unit rather than a single number. If you know a field’s limit and your text’s count in each unit, the worst case is the largest of them, and planning for it means your text will fit whichever method the platform turns out to use.
Instagram bio character limit and other platform limits, field by field
Platform rules change, and many help centres don’t state limits at all. Each figure below is labelled:
- Official: from the platform’s own help centre or published code.
- Observed: enforced by the platform’s own sign-up form, app or web client when we tested it, but not stated in any help article we found.
- Third-party: widely reported by guides and tools, not confirmed by the platform in the sources we found.
- Conflicting: sources disagree.
The limits were compiled in October 2026. If a number matters, check the counter in the app itself.
What is the Instagram bio limit?
The Instagram bio limit is 150 characters, while the username and name fields both stop at 30.
| Field | Limit | Styled letters? | Status |
|---|---|---|---|
| @username | 30 characters; letters, numbers, periods, underscores only | No | Allowed characters: official (Instagram Help Center). 30: observed (sign-up form, October 2026: “Choose a username that’s under 30 characters.”) |
| Name | 30 characters; can be changed twice in 14 days | Yes | 30: observed (the sign-up form’s Full name field stops at 30). No help article states it, an older 64 figure still circulates, and we have not tested the Edit profile screen |
| Bio | 150 characters | Yes | Official (Instagram Help Center) |
Instagram hasn’t said how its counters treat styled letters. Because some counters measure UTF-16 units (see the table above), a bold or cursive bio could count up to twice its visible length. Paste it into the field and check before relying on the visible count. The Instagram fonts page covers which fields accept which styles.
How long can TikTok names and bios be?
A TikTok bio can be 80 characters, a nickname 30 and a username 2 to 24.
| Field | Limit | Styled letters? | Status |
|---|---|---|---|
| @username | 2–24 characters; letters, numbers, underscores, periods, not ending in a period; change once every 30 days | No | Official (TikTok Support) |
| Nickname | Up to 30 characters; change once every 7 days | Yes, including emoji | Official (TikTok Support) |
| Bio | 80 characters | Yes | Official (TikTok Support) |
More detail on the TikTok fonts page.
How long can Discord names and About Me be?
A Discord display name can be 1 to 32 characters and About Me 190.
| Field | Limit | Styled letters? | Status |
|---|---|---|---|
| Username | 2–32 characters; lowercase a–z, 0–9, _ and .; no two periods in a row |
No | Official (Discord support) |
| Display name | 1–32 characters; change any time | Yes: special characters, emoji and non-Latin scripts allowed | Official (same page) |
| About Me | 190 characters, including emoji, markdown and links | Yes | Official (Discord support) |
| Server nickname, server and channel names | Not covered in our sources | Yes | Third-party |
Discord’s markdown (**bold**, *italic*, ~~strike~~) works in messages only, not in names. See the Discord fonts page.
What are the X (Twitter) limits?
X allows 15 characters in a username, 50 in a display name, 160 in a bio and 280 weighted characters in a post.
| Field | Limit | Styled letters? | Status |
|---|---|---|---|
| @username | Up to 15 characters; letters, digits, underscore | No | Official (X Help Center) |
| Display name | Up to 50 characters | Yes | Official (X Help Center) |
| Bio | Up to 160 characters | Yes | Official (same page) |
| Post | 280, weighted: most styled letters count as 2 | Yes | Official (open-source twitter-text config) |
Whether X applies the same weighting to display names and bios isn’t documented in the sources we found.
Can Facebook names use fancy text?
Not in profile names. Facebook’s name policy rules out “symbols, numbers, unusual capitalization, repeating characters or punctuation” and “characters from multiple languages” in profile names, so styled letters break the policy there. Posts, comments and bios accept them. We didn’t find official numeric limits for these fields, so we don’t list any.
What are the character limits in games?
Game name limits are the least documented of all, so each row says whether a figure is official or third-party. Where a publisher states a rule we link it; treat the rest as a starting point, and test in the rename screen if it costs anything.
| Game and field | Limit | Styled letters and symbols? | Status |
|---|---|---|---|
| Free Fire in-game name | 12 characters | Symbols widely used (꧁꧂); Garena’s policy says names are formed from letters and numbers, and violating names are reset. Garena’s Brazil support advises avoiding special characters because not all of them display on every device | Policy and advice: official (Garena support, Portuguese). Length: third-party |
| BGMI / PUBG Mobile name | 14 characters, symbols included | Many characters show as boxes, because the game uses its own font | Third-party |
| Roblox username | 3–20 characters; a–z, A–Z, 0–9, at most one underscore, not first or last | No | Official (Roblox Help) |
| Roblox display name | 3–20 characters; change once every 7 days | Conflicting: font sites say yes; Roblox publishes no character list and its help mentions only Japanese characters in beta | Length and cooldown: official (Roblox Help). Unicode: conflicting |
| Fortnite (Epic) display name | 3–16 characters; letters, numbers, - _ . and spaces |
Some Unicode reportedly passes | Length: official. Unicode: third-party |
| Steam profile name | 32 UTF-16 code units and 128 UTF-8 bytes; about 16 bold or cursive letters | Yes | Official (Steamworks ISteamFriends) |
| Riot ID (League of Legends, VALORANT) | Name 3–16 characters, no #; tagline 3–5 alphanumeric; free change every 90 days | Riot says “any Unicode letter” is supported; symbols not stated | Official (Riot developer support) |
| Brawl Stars name | 2–15 characters | Supercell recommends against emoji, special characters and non-Latin letters | Official (Supercell Support) |
| Clash of Clans name | 2–15 characters | Same Supercell warning | Official (Supercell Support) |
Steam is the clearest example of why the counting unit matters. Valve’s Steamworks documentation caps a persona name at 32 UTF-16 code units and 128 UTF-8 bytes, and a name has to fit both. Plain letters cost 1 unit and 1 byte, so 32 fit. Bold, cursive and the other maths alphabets cost 2 units and 4 bytes each, so the 32-unit cap stops you at 16 letters, while the byte cap would have allowed 32 of them. Circled letters cost 1 unit and 3 bytes, so 32 still fit (96 bytes).
For in-game names, the Free Fire name style and BGMI name style generators focus on short names and symbol frames that fit these limits.
How do I stay under a limit with styled text?
Style only part of the text, prefer low-weight styles on X, and count decorations too.
- Style only part of it. A styled first name with a plain surname, or one styled word in a bio, costs far less than styling everything.
- Prefer single-code-point styles for code-point limits. Strikethrough, underline and glitch styles add a code point per letter; bold, cursive and bubble don’t.
- Prefer low-weight styles on X. Small caps and superscripts cost less than bold or cursive, and plain text with one styled word costs least.
- Count decorations too. A frame such as ꧁ ꧂ or ★彡 彡★ adds characters at both ends, and many decorative symbols are themselves weighted as 2 on X.
- Watch the platform’s own counter, not ours. Our tools show code points, graphemes and X weight so you can compare, but the only count that decides whether your bio saves is the one in the app.
- Beware invisible characters. Zero-width spaces and joiners take up a character in most counts even though you can’t see them. Our letter-tile style uses them to stop letters merging into flags, so remember they are there.
- Email subject lines are plain text. Styled letters can travel in them but cost more storage and may display as boxes; see bold text in email subject lines.
Whatever the Instagram bio character limit or any other cap, plan for the largest of the counts above, then check the counter in the app before you save.
Frequently asked questions
Basics
What is the Instagram bio character limit?
Where it works
How long can a TikTok username be?
How many characters can a Discord display name have?
What is the Free Fire name character limit?
How many characters can an X display name and bio have?
How it works
Do fancy fonts count as more characters on Twitter?
Why does my bold bio say it is too long?
Tips & limits
Do emoji count as more than one character?
How can I fit styled text under a limit?
Related
- Twitter (X) FontsThese Twitter fonts turn a post, bio or display name into bold, italic or cursive Unicode letters for X. Tap Copy and paste it, but check the weighted count first, because most styled letters count as two characters.
- Instagram FontsThis Instagram fonts generator turns your name or bio into bold, cursive and small caps letters. Type, tap Copy and paste it into your Name, bio or captions; the table shows which fields accept it.
- TikTok FontsThese TikTok fonts turn your nickname or bio into styled Unicode letters such as 𝓜𝓪𝔂𝓪. Type, tap Copy and paste it into TikTok; your @username stays plain, while nickname, bio and captions can be styled.
- Discord FontsThese Discord fonts turn your name or message into styled Unicode letters like 𝐍𝐨𝐯𝐚. Tap Copy and paste it into your display name, server nickname or About Me; the cheat sheet covers markdown for chat.
- Free Fire Name StyleThis FF name style generator turns your gamer name into stylish letters and frames for the in-game name box. Pick a style, tap Copy and paste it in, keeping it short because the 12-character limit is third-party only.
- What Is Lettering? How It Differs From Calligraphy and TypographyWhat is lettering? It is drawing letters for one specific piece, unlike calligraphy, which writes letters in strokes, and typography, which arranges ready-made type. Here is what each term means, the tools, the history, and how to start drawing letters.