Case Converter
A case converter that answers ten ways at once: UPPERCASE, lowercase, Title Case, Smart Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE.
Title Case
Each line is one identifier
every word capitalised
Show
Only the letters changed
How to use
- Paste or type into Text. The converted copy appears beside it, or above it on a phone, and redraws on every keystroke.
- Choose the case you want from the Case menu. Its hint says what that case is usually for.
- Switch Show to All ten to compare every case of your first line, and copy any one of them from its row.
- Press Copy for the whole text in the chosen case, or Download .txt to keep it as a file.
How the words get split
Caps lock stayed down for a whole paragraph, or a column heading has to become a database field by lunchtime. Paste the text on the left, choose a case, and the converted copy builds itself on the right as you type. No convert button. Copy takes the whole text in that case, Download saves it as a .txt, and Show All ten lays out every case of your first line, each row with its own copy.
The ten split into two families. The prose cases, from UPPERCASE to Sentence case, change letters and nothing else: line breaks, hyphens, apostrophes and punctuation stay exactly where they were, and a word with a capital past its first letter, like NASA or iPhone, is left as written unless the whole paste is shouting. The code cases treat each line as one identifier, split it where a lowercase letter meets a capital and where a run of capitals gives way to a word, so XMLHttpRequest becomes xml, http and request, and drop the punctuation.
Smart Title Case is the one worth understanding before you lean on it. It capitalises every word except a list of 24 short ones, among them "a", "of", "the", "per", "via" and "vs", and even those take a capital when they land first or last on a line. So "the lord of the rings" comes back as "The Lord of the Rings", while "what to look for" keeps a capital F on the end. Plain Title Case ignores the list entirely and capitalises the lot, which is what a menu label or a spreadsheet header usually wants.
Good to know
- Sentence case starts a new sentence after every full stop, question mark and exclamation mark, so an abbreviation like e.g. or Dr. in the middle of a sentence gets a capital after it.
- The code cases make one identifier per line. A paragraph pasted into camelCase becomes one long identifier for each line rather than one for each sentence.
Frequently asked questions
What is the difference between camelCase and PascalCase?
One letter. Both glue the words together with no separator between them: camelCase leaves the opening word lowercase, as in invoiceTotal, and PascalCase gives it a capital, as in InvoiceTotal. JavaScript variables and functions lean on the first, class and component names on the second.
kebab-case or snake_case, which one goes where?
Hyphens for anything that travels in a URL or a stylesheet, underscores for anything a language or a database has to read as a single token. A hyphen inside an identifier looks like a minus sign to most compilers, which is the entire reason the two styles exist side by side.
Which words does Smart Title Case leave lowercase?
Twenty-four of them: a, an, and, as, at, but, by, en, for, if, in, nor, of, off, on, or, per, so, the, to, up, via, vs and yet. Any of those gets a capital anyway when it happens to be the first or last word, which is why "up" stays lowercase in the middle of a title and takes a capital at the end.
How do I fix a paragraph typed with caps lock on?
Paste the shouting version and choose lowercase if you want it flat, Sentence case if it was a sentence, or Title Case if it was a heading. A paste with no lowercase letters at all counts as shouted, so every word is rebuilt, NASA included; the words themselves come back exactly as they were, with only their capitals rearranged.
Can I go straight from camelCase to snake_case?
Paste myVariableName, choose snake_case and it reads my_variable_name; All ten shows my-variable-name and MY_VARIABLE_NAME beside it. It is one hop rather than two because each line is broken into plain words first, then rebuilt, so no style has to be converted into another.
What is CONSTANT_CASE used for?
Words joined by underscores with every letter uppercased, giving you the MAX_RETRY_COUNT shape you have seen in a thousand config files. Constants and environment variables are its home ground. Plenty of people call it SCREAMING_SNAKE_CASE instead.
Word and Google Docs already have a Change Case menu.
For prose they are perfectly good, and for code they are useless. Neither one knows camelCase, snake_case or kebab-case, and neither treats an identifier as a set of words that can be rebuilt. That gap is the reason this page exists.
Missing something in Case Converter? Suggest a feature →
Tell someone who needs this.