Skip to content

Add to your Home Screen

  1. Tap the Share button in Safari's toolbar.
  2. Scroll down and tap Add to Home Screen.
  3. Tap Add. The generator opens full-screen and works offline.

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

Bar chart showing the same styled word counted five different ways, with different totals.

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.

  1. 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.
  2. 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.
  3. 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.
  4. Count decorations too. A frame such as ꧁ ꧂ or ★彡 彡★ adds characters at both ends, and many decorative symbols are themselves weighted as 2 on X.
  5. 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.
  6. 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.
  7. 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?
The bio limit is 150 characters, according to Instagram's Help Center. Instagram hasn't published how that counter treats styled Unicode letters, so if your bio is close to the limit, paste the styled version into the bio field and watch the counter before saving. Emoji and symbols count too.

Where it works

How long can a TikTok username be?
TikTok's help centre gives 2 to 24 characters for a username, using only letters, numbers, underscores and periods, and you can change it once every 30 days. Usernames also can't end with a period. Your nickname is separate: it accepts styled letters and emoji, allows up to 30 characters, and can be changed once every 7 days.
How many characters can a Discord display name have?
Discord's help centre says display names can be 1 to 32 characters and can contain almost anything, including special characters, emoji and non-Latin scripts. Usernames are stricter: 2 to 32 characters, lowercase a to z, digits, underscores and periods only, and no two periods in a row. Styled letters work in the display name but not the username.
What is the Free Fire name character limit?
Third-party sources put the Free Fire in-game name limit at 12 characters, but Garena hasn't published a figure we could verify. Garena's policy says names are formed from letters and numbers, and its Brazil support advises avoiding special characters. Decorative symbols count towards the limit, so a frame like ꧁ ꧂ uses two.
How many characters can an X display name and bio have?
X display names can be up to 50 characters and bios up to 160, according to X's Help Center. Usernames are limited to 15 characters of letters, digits and underscores. Whether X applies the same weighting to display names and bios as to posts isn't documented in the sources we found.

How it works

Do fancy fonts count as more characters on Twitter?
Yes. X weighs characters using the rules in its open-source twitter-text library: only code points up to U+10FF, plus a few punctuation ranges, count as one. Almost every styled letter sits higher than that, so it counts as two. A post of bold, cursive, bubble or wide letters fits about 140 letters instead of 280.
Why does my bold bio say it is too long?
Some counters measure UTF-16 code units, not what you see. Bold, cursive and other maths letters sit above U+FFFF, so each takes two units and four UTF-8 bytes. A 100-letter bold bio can count as 200. Check the counter in the app itself before relying on the visible length.

Tips & limits

Do emoji count as more than one character?
Often yes. A family emoji is one picture but five code points and eight UTF-16 units, so a field counting either will charge far more than one. X treats any emoji sequence as 2 by design. Emoji are the usual reason a bio looks short but is rejected as too long.
How can I fit styled text under a limit?
Style only part of the text, such as a first name or one word in a bio. Prefer low-weight styles on X, such as small caps, and count frames and decorations too. Check the platform's own counter, because it alone decides whether your bio saves.