Case Converter
Ten casing styles including a Title Case that keeps short function words lowercase.
Updated
Nothing is uploaded; the conversion happens in your browser.
Converted text
The Lord of the Rings
- Characters
- 21
- Words
- 5
Title Case keeps short function words (a, an, and, of, the, to, via) lowercase unless they open or close the title. That is why you get “Of Mice and Men” rather than “Of Mice And Men”: the leading “Of” is capitalised because it is first, and the “and” is not because it is neither first nor last.
In short
Which words stay lowercase in title case?
Short function words, unless they open or close the title. This converter keeps 22 of them lowercase: a, an, and, as, at, but, by, for, if, in, nor, of, on, or, per, so, the, to, up, via, vs, yet. So of mice and men becomes Of Mice and Men, never Of Mice And Men.
House styles disagree at the edges, and Chicago lowercases every preposition regardless of length while AP capitalises anything of four letters or more, so a long preposition is the word to check by hand.
How to use the case converter
Paste text, choose one of ten styles, and the converted version appears immediately. What separates this from a find and replace is the first step it takes: before applying any style it splits the input into words, and it does that by reading the casing already present rather than looking only for spaces.
So XMLHttpRequest is understood as three words and becomes xml-http-request in kebab-case, and parse_json_file becomes ParseJsonFile in PascalCase. A naive converter treats each of those as a single unbroken token and returns xmlhttprequest, which is the single most common way a case converter quietly gets it wrong.
10
Styles offered
four for prose, five for code, one joke
22
Minor words kept lowercase
the AP and Chicago intersection
3
Passes in the word split
case changes, capital runs, separators
That split makes the programmer styles reversible. Run someVariableName through snake_case and you get some_variable_name; run that back through camelCase and you get someVariableName again, character for character.
The same round trip works through kebab-case, which is what makes the tool usable for renaming across languages that disagree on convention: Python and Ruby want snake_case, JavaScript wants camelCase, Go and C sharp want PascalCase, CSS and URLs want kebab-case, and environment variables want CONSTANT_CASE. Splitting once and rejoining differently is the only way that stays consistent, and it is why the same word list underlies all nine mechanical styles.
Do
- Pick the style the language expects rather than the one you prefer.
- Check the Title Case output when a title holds a brand or an acronym.
- Use Sentence case on sentences and the programmer styles on identifiers.
- Correct the minor words by hand if your publication keeps its own list.
Don't
- Capitalise every single word and call the result title case.
- Expect user ID to survive a round trip as an initialism.
- Run Title Case over prose, where full stops are read as separators.
- Assume the alternating style restarts the pattern at each word.
Turning a title into a URL?
Kebab-case is only half of a slug. The slug generator also strips accents, transliterates letters like the eszett, and collapses punctuation so nothing is silently deleted.
Open the slug generator →All ten styles applied to the same two inputs. The left-hand input is a title, where the interesting behaviour is which short words stay lowercase. The right-hand input is an identifier already carrying its own casing, where the interesting behaviour is that the converter splits it into three words before doing anything else.
| Style | Input: the lord of the rings | Input: XMLHttpRequest |
|---|---|---|
| UPPER CASE | THE LORD OF THE RINGS | XMLHTTPREQUEST |
| lower case | the lord of the rings | xmlhttprequest |
| Title Case | The Lord of the Rings | Xml Http Request |
| Sentence case | The lord of the rings | Xmlhttprequest |
| camelCase | theLordOfTheRings | xmlHttpRequest |
| PascalCase | TheLordOfTheRings | XmlHttpRequest |
| snake_case | the_lord_of_the_rings | xml_http_request |
| kebab-case | the-lord-of-the-rings | xml-http-request |
| CONSTANT_CASE | THE_LORD_OF_THE_RINGS | XML_HTTP_REQUEST |
| aLtErNaTiNg | tHe lOrD Of tHe rInGs | xMlHtTpReQuEsT |
Why is Title Case the one that needs judgement?
Title Case is the one that needs judgement, and it is the reason this page is longer than a list of ten buttons. Capitalising every word is wrong: Of Mice And Men is not how the book is printed, and no house style writes it that way.
What the styles agree on is that short function words stay lowercase inside a title, and that the first and last word are always capitalised whatever they are. This converter holds a list of 22 such words, chosen as the intersection of Associated Press and Chicago Manual of Style practice, so the output is defensible under either. What Are You Waiting For keeps its capital on the closing For for exactly that reason.
The edges are worth knowing before you trust the output on anything published. Sentence case behaves differently again: it lowercases everything and then capitalises the first letter after each terminal mark, which is right for prose and wrong for anything containing a proper noun, so hello there. how are you? fine! becomes Hello there. How are you? Fine! with the names left flat. Read the output rather than assuming it, particularly on titles containing brand names, acronyms, or a colon.
The formula, worked line by line
Nine of the ten styles are the same two operations in different order: split the input into a list of lowercase words, then rejoin them with a chosen separator and a chosen capitalisation. All the intelligence is in the split, because the split is what lets an identifier that already carries casing be understood as several words rather than one.
The split runs three passes. It inserts a boundary between a lowercase letter or digit and a following capital, which is what breaks someVariableName apart. It inserts a second boundary inside a run of capitals followed by a capital and a lowercase letter, which is what stops XMLHttpRequest collapsing into one token and turns it into XML, Http, Request. Then it splits on whitespace, underscores, hyphens, and full stops, drops the empty pieces, and lowercases everything that survives.
words = split on caseChange, whitespace, _ , - and . then lowercase
camelCase = words[0] + capitalise(rest), joined with nothing
PascalCase = capitalise(every word), joined with nothing
snake_case = words joined with _ kebab-case = words joined with -
CONSTANT = snake_case, uppercased
Title Case = capitalise(word) unless it is a minor word away from either end- Input
- the lord of the rings
- Split
- the · lord · of · the · rings
- Always capitalised
- the first and last word
- Minor words in the middle
- of and the stay lowercase
- Output
- The Lord of the Rings
XMLHttpRequest never touches a space, yet the capital-run rule cuts it after XML and the lowercase-to-capital rule cuts it before Request, giving three words that rejoin as xml-http-request, XML_HTTP_REQUEST, or XmlHttpRequest depending on the style chosen.
The minor-word list holds 22 entries: a, an, and, as, at, but, by, for, if, in, nor, of, on, or, per, so, the, to, up, via, vs, and yet. It is deliberately the intersection of the two dominant American style guides rather than either one in full.
The Chicago Manual of Style lowercases all articles, coordinating conjunctions, and prepositions regardless of length, so Chicago writes Gone with the Wind and Far from the Madding Crowd. Associated Press style capitalises any word of four letters or more, so AP writes Gone With the Wind and Far From the Madding Crowd.
Taking only the words both guides lowercase means the output is acceptable under either, at the cost of leaving longer prepositions capitalised. Verified outputs from this converter include the following.
- Of Mice and Men: and stays down, and the opening Of takes its capital as the first word.
- A Tale of Two Cities: of stays down in the middle of the title.
- To Kill a Mockingbird: to opens the title, so it is capitalised despite being on the list.
- The Old Man and the Sea: both and and the mid-title the stay down.
- East of Eden: one minor word between two capitalised ones.
- Up in the Air: the opening Up keeps its capital despite being on the list.
Two more limits are worth stating plainly. Full stops are treated as word separators, which is correct for file.name.parts and wrong for a sentence, so Title Case applied to prose eats the punctuation.
And the alternating style is the only one that ignores the word split entirely, walking the raw string character by character and flipping on index parity, which means spaces count towards the alternation and the pattern will look offset if you were expecting it to restart at each word. Use Title Case on titles, Sentence case on sentences, and the programmer styles on identifiers.
Questions people ask
Related guides
Putting JSON in a URL: Validate, Minify, Percent-Encode, or Base64url?
A decision guide for flattening, encoding, checking, and safely transporting JSON in a query string.
August 11, 2026 · 9 min read
How Many Grams in a Cup? Every Ingredient, One Chart
One formula, fourteen densities. Why flour is 120 g, honey is 340 g, and the ingredient — not the cup — decides the number.
August 10, 2026 · 14 min read
How Are Loan Payments Calculated? Amortization, Explained
One level payment, front-loaded interest — the formula worked by hand, the two levers you control, and why the smaller payment is often the costlier loan.
July 23, 2026 · 13 min read