TextSorter
0

How to Change Text Capitalization

Our free case converter transforms text between different formats with a single click:

Case Format Reference

FormatExampleCommon Use
UPPERCASETHE QUICK BROWN FOXHeadlines, acronyms, emphasis
lowercasethe quick brown foxEmails, URLs, normalization
Title CaseThe Quick Brown FoxTitles, headlines, proper nouns
Sentence caseThe quick brown fox.Normal text, paragraphs
camelCasetheQuickBrownFoxJavaScript variables and functions
PascalCaseTheQuickBrownFoxClass names, React components
snake_casethe_quick_brown_foxPython variables, database columns
kebab-casethe-quick-brown-foxCSS classes, URLs, filenames

Common Use Cases

💻 Programming & Development

Convert variable names between code conventions. Transform a simple description into camelCase, PascalCase, snake_case, or kebab-case for your code.

📝 Writing & Editing

Fix capitalization issues in documents. Convert UPPERCASE text to sentence case, or transform headlines to Title Case.

🔗 URLs & Filenames

Create URL-friendly slugs with kebab-case. Transform "My Post Title" into "my-post-title" for clean URLs.

📊 Data Cleaning

Normalize inconsistent data. Convert mixed-case entries to lowercase for easier comparison and deduplication.

Why Title Case Capitalizes Every Word (Even "The" and "Of")

The short version: the Title button has exactly one rule, capitalize the first letter of every word, with no dictionary of short connector words to skip. That is simpler than any published style guide.

You paste
the lord of the rings: a tale of two cities
Title gives you
The Lord Of The Rings: A Tale Of Two Cities

The button lowercases your entire text first, then walks it looking for the first letter of every word and capitalizing that one letter. Nothing else changes. There is no list of articles, conjunctions or short prepositions it knows to leave alone, so "Of", "The" and "A" get capitalized right alongside "Lord" and "Rings". If you have read a published headline or a book spine, that probably looks slightly off, because professional style guides do not capitalize every word in a title. AP style and the Chicago Manual of Style each carry their own exception list for short connector words, and the reference table further down this page breaks out how the two disagree with each other.

Punctuation can create a fake word for the button to capitalize. The rule that finds "the first letter of a word" fires on any letter that sits right after a non-letter character, including an apostrophe. Run don't stop believing through Title and you get Don'T Stop Believing, with a capital T sitting right after the apostrophe. That is not a bug in the traditional sense, it is the same word-boundary rule doing exactly what it does everywhere else, just landing somewhere you would not choose by hand.

For a fast, consistent starting point this works well: every word gets treated the same way, every time, with nothing left to guesswork. For a title heading into a publication with a house style, treat the output as a first pass and manually lowercase the short connector words, or fix the odd apostrophe capital, that your style guide calls for.

What Sentence Case Actually Capitalizes

More than just the first word: Sentence case capitalizes the first letter of the text, the first letter of every new line, and the first letter after a period, question mark or exclamation point. It has no idea what a proper noun or an acronym is.

You paste
Yesterday I visited NASA and MIT. It was fun.
Sentence gives you
Yesterday i visited nasa and mit. It was fun.

Notice what survived and what did not. "Yesterday" stays capitalized because it opens the text, and "It" stays capitalized because it follows a period. The pronoun "I" in the middle of the first sentence gets lowercased along with everything else, and so do the acronyms "NASA" and "MIT", because the button has no dictionary of acronyms, proper nouns or the English rule that the standalone pronoun "I" is always capitalized. It only knows two triggers: the very start of the text, and the character right after sentence-ending punctuation.

There is a second trigger most people do not expect. The pattern behind this button runs in multiline mode, so "the start of the text" really means the start of every line, not only the first one:

Two-line paste
first sentence here.
second line, brand new paragraph.
Sentence gives you
First sentence here.
Second line, brand new paragraph.

Both lines start with a capital, even though the second line does not follow a period, question mark or exclamation point anywhere on the previous line. If your text is a list of separate lines rather than a flowing paragraph, that is usually exactly what you want. If it is a paragraph that happens to be word-wrapped with hard line breaks, each wrapped line will pick up a capital it would not get if the same text were one long line.

Acronyms and "I" are never restored automatically. Sentence case is genuinely useful for normalizing text that arrived in inconsistent or shouted capitalization, turning "THIS IS SO EXCITING PLEASE READ" into a normal-looking sentence, but plan on a quick read-through afterward to fix any acronym, brand name, proper noun or standalone "I" that the lowercase pass flattened.

Why Converting camelCase to snake_case Does Nothing

The splitter only looks for spaces, underscores and hyphens. It never checks for a lowercase letter sitting next to an uppercase one, so an already-cased identifier has no separators left for it to find.

camelCase in
myVariableName
snake_case out
myvariablename

Every code-case button, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, COBOL-CASE, dot.case, path/case and Train-Case, works the same two-step way: split the text into words, then rejoin those words using a different spacing and capitalization rule. The split step only breaks on runs of whitespace, underscores and hyphens. myVariableName contains none of those, so the splitter treats it as one single word, and every case button just relabels that one word instead of separating "my", "Variable" and "Name" first.

Start from a plain, space-separated phrase instead, and every code-case button splits and rejoins it correctly. One input, nine outputs:

ButtonOutput for "user profile settings"
camelCaseuserProfileSettings
PascalCaseUserProfileSettings
snake_caseuser_profile_settings
kebab-caseuser-profile-settings
CONSTANT_CASEUSER_PROFILE_SETTINGS
COBOL-CASEUSER-PROFILE-SETTINGS
dot.caseuser.profile.settings
path/caseuser/profile/settings
Train-CaseUser-Profile-Settings

Chaining conversions works, as long as separators survive. Converting a phrase to snake_case and then clicking kebab-case on the result still works, since the underscores left behind are valid split points for the next click. Converting to camelCase or PascalCase first removes every separator, so a second code-case click after that has nothing left to split.

Why German ß and Turkish I Don't Round-Trip Through Upper and Lower

Two alphabets, one casing rule. Upper and Lower use the browser's standard, locale-independent casing, which is right for English and most Latin-script languages but does not match German or Turkish casing rules in every case.

German word in
straße
Upper gives you
STRASSE

The letter ß (eszett, or sharp S) has no single-character uppercase form in standard casing rules, so converting it expands one character into two: "SS". That is correct and expected, and it is also why the uppercase text comes out one character longer than what you typed. The expansion only runs one way. Click Lower on that result and you get strasse, not the original straße, because nothing about the text records that the double S used to be a single ß.

Turkish runs into a different problem, sometimes called the Turkish I problem in software circles. Turkish treats dotted and dotless i as two separate letters, each with its own uppercase and lowercase pairing, and those pairings do not match English.

Capital I in
I
Lower gives you
i

Standard lowercasing turns a capital I into a dotted lowercase i, correct in English, but Turkish expects an undotted capital I to lowercase into a dotless ı instead. The mismatch runs the other direction too: a plain lowercase i uppercases to a plain I here, while Turkish expects a dotted lowercase i to uppercase into a dotted İ. For English and nearly every other Latin-script language, neither of these ever comes up. For Turkish text specifically, review the output by eye rather than trusting the button.

Both quirks come from the same source. Upper and Lower call the browser's plain, locale-independent case conversion rather than a locale-aware one. That is the right default for the overwhelming majority of text this tool sees, and it is also why these two specific alphabets are worth knowing about before you rely on a round trip through both buttons.

Why iPhone Becomes Iphone in Title Case

Every button treats every letter the same way. Nothing on this page knows that "iPhone" is a brand name with a deliberately lowercase first letter, so a full-text conversion can quietly break it.

iPhone through Title
iPhone
Title gives you
Iphone

Lower and Upper leave brand names looking normal: iphone and IPHONE are both what you would expect. Title is where it breaks. The button lowercases the whole word first, then capitalizes only its very first letter, which erases the internal capital "P" along with the rest of the word's original styling. The same thing happens to any name that depends on internal capitalization: "eBay", "YouTube" and "PlayStation" all lose their styling the same way, because none of them survive a full-text case conversion intact.

Scan for brand names after converting a longer passage. It takes a few seconds to restore "iPhone", "eBay" or a similar name by hand, and it is the fastest way to catch what a full-text conversion cannot know to preserve.

Which Short Words Should Stay Lowercase in a Title

It depends which style guide you follow. AP style and the Chicago Manual of Style both lowercase short connector words in a title, but they disagree on exactly which words qualify and how long a word can be and still count as short.

StyleTypical rule for short wordsCommon in
AP StyleLowercase articles, coordinating conjunctions, and prepositions under four letters, unless first or last wordNews writing, journalism
Chicago Manual of StyleLowercase articles, coordinating conjunctions, and prepositions of any length, unless first or last wordBook publishing, academic writing
Sentence caseCapitalize only the first word and proper nouns; everything else stays lowercaseModern web headings, UI labels, this site's own headings
Simple title case (this tool's "Title" button)Capitalize every word, no exceptionsQuick, informal capitalization; a starting point before manual editing

None of these conventions is more "correct" than another. They exist because different publishing traditions settled on different answers to the same question. Pick one convention for a given piece of writing, a blog, a book, a set of UI labels, and apply it consistently rather than mixing AP-style titles with Chicago-style ones across the same document. The Title button gives you the simplest of the four starting points in that table; getting to AP or Chicago style from there means manually lowercasing the specific short words that convention calls for.

What Each Stylistic Case Conversion Actually Does

Six novelty buttons reshape text for effect, not for grammar or code. Two of them work by inserting invisible Unicode marks rather than applying real bold, strikethrough or underline formatting, and that has consequences for where they will actually display correctly.

ButtonYou pasteYou getHow it works
sPongeBob (Mocking)not a bugnOt a bUgAlternates lowercase and uppercase by character position, counting every character including spaces and punctuation.
InvertHello WorldhELLO wORLDSwaps each letter's case individually. Run it twice and you get the original text back.
1337 Leetelite status3l173 5747u5Substitutes six letters for lookalike digits: a4, e3, i1, o0, s5, t7. Every other letter passes through unchanged.
FullwidthHi 5!Hi 5!Shifts ASCII letters, numbers and punctuation to their wide Unicode forms, and turns a regular space into an ideographic space.
Strikethroughcancelledc̶a̶n̶c̶e̶l̶l̶e̶d̶Inserts a combining long-stroke character after every visible character.
Underlineimportanti̲m̲p̲o̲r̲t̲a̲n̲t̲Inserts a combining low-line character after every visible character.

The sPongeBob pattern is easy to misread as random. It is not: character position zero, two, four and so on always comes out lowercase, and position one, three, five and so on always comes out uppercase, counted across the whole string including spaces. That is also why the same word can capitalize differently depending on how many characters come before it in the sentence.

Strikethrough and underline are not real text formatting. They work by stacking a Unicode combining character on top of each letter rather than applying bold, italic or strikethrough styling the normal way. Modern browsers and most chat and social apps render the effect correctly, but some older systems, plain-text editors and form fields strip or mangle combining characters, which can turn the effect into a wall of stray marks or drop it entirely. Paste into the destination and check before you rely on it.

Five Things People Actually Use This Tool For

Turning one UI label into every code case a project needs

Type a plain, human-readable phrase, "user profile settings," and run it through camelCase for a JavaScript variable, snake_case for a Python function or a database column, kebab-case for a CSS class or a URL slug, and CONSTANT_CASE for an environment variable, all from the same starting phrase instead of retyping it four times.

Cleaning up text copied out of a PDF

PDF text sometimes arrives in inconsistent capitalization, ALL CAPS headers mixed in with normal paragraphs. Lower case followed by a manual pass, or Sentence case followed by restoring any acronyms and proper nouns it flattened, is usually faster than retyping the passage from scratch.

Normalizing a column of data before deduplication

Converting a list of names or entries to Lower case before comparing it against another list is a common step in data cleaning, since it removes capitalization as a source of false "different" results before a deduplication or matching step runs elsewhere.

Drafting a headline before applying a house style

Use Title to get every word capitalized as a fast first pass, then manually lowercase the specific short connector words your style guide, AP, Chicago, or a house style of your own, calls for before publishing. The reference table above lists what each of those two style guides actually calls for.

Making a message stand out on a platform that renders Unicode

Fullwidth and 1337 leet both turn plain text into something visually distinct for a username, a bio line or a social post, without needing an image or a special font. Because both rely on standard Unicode characters rather than an image, the result copies and pastes as plain text anywhere Unicode is supported, though it is worth checking it displays correctly on the specific platform first.

Frequently Asked Questions

Does the "Title" button follow AP style or Chicago style?
Neither. It applies a simple, consistent rule: capitalize the first letter of every word with no exceptions, so short connector words like "of," "a," and "the" get capitalized too. AP and Chicago style both lowercase most of those short words in the middle of a title, so if you need a specific style guide's rules, use this as a fast first pass and manually lowercase the connector words afterward.
Why does "Sentence" case leave acronyms like NASA in lowercase?
Sentence case lowercases your entire text first, then capitalizes only the very first letter and any letter immediately following a period, question mark, or exclamation point. It has no dictionary of acronyms or proper nouns, so "NASA" in the middle of a sentence gets lowercased along with everything else and is never restored automatically.
Why doesn't converting my camelCase variable to snake_case add underscores between the words?
The converter splits text into words by looking for spaces, underscores, and hyphens, not by detecting a lowercase letter followed by an uppercase one. An input like "myVariableName" has none of those separators, so it is treated as a single word and comes out as "myvariablename" rather than "my_variable_name". Start from a plain, space-separated phrase instead of an already-cased identifier to get a correctly split result.
Can I chain conversions, like running Title case and then kebab-case on the same text?
Yes, as long as the intermediate result still has separators for the next conversion to split on. Converting a phrase to snake_case and then to kebab-case works, since the underscores are valid split points, but converting to camelCase or PascalCase first removes all separators, so a second code-case conversion afterward will not split the words correctly.
What happens to the German letter ß when I convert text to uppercase?
It expands into two characters, "SS", since ß has no single-character uppercase form in standard casing rules. That means "straße" becomes "STRASSE", one character longer than the original, and converting the result back to lowercase produces "strasse" rather than restoring the original ß.
Does this tool handle the Turkish dotless ı correctly?
No, not by default. It uses standard, locale-independent case conversion, which lowercases a capital "I" to a dotted lowercase "i", the correct behavior in English but not in Turkish, where an undotted capital I should become a dotless "ı". Turkish text run through this tool may come out with the wrong dot pattern and should be checked by eye.
Will converting case mess up a stylized brand name like iPhone or eBay?
Yes. Every conversion applies uniformly across the whole text with no awareness of brand names, so "iPhone" through the Title button becomes "Iphone", losing the internal capital "P". Any name that depends on non-standard internal capitalization needs a manual fix after a full-text conversion.
What is the difference between snake_case and kebab-case, and when should I use each?
snake_case joins words with underscores and is the standard convention for variable and function names in Python, along with many database column names. kebab-case joins words with hyphens and is the standard for CSS class names and URL slugs, since underscores are not always treated as word separators by browsers and search engines the way hyphens are.
Why do different style guides disagree about which words to lowercase in a title?
AP style, common in journalism, lowercases short articles, conjunctions, and prepositions under four letters unless they start or end the title. The Chicago Manual of Style, common in book publishing, lowercases those same word types regardless of length. Both are valid, well-documented conventions that simply reached different answers, which is why picking one and applying it consistently matters more than which one you pick.
Is my text private when I convert its case?
Yes. Every conversion runs as JavaScript inside your own browser tab, and nothing you type or paste is uploaded to a server, logged, or stored anywhere. That makes it safe to use for confidential drafts, internal documents, or any other text you would not want leaving your device.

Related Text Tools

🔒 100% Private & Secure

All case conversions happen locally in your browser-your text is never uploaded to any server. We can't see, store, or access your data.