Skip to main content
UtilitiesFree · no sign-up

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.

StyleInput: the lord of the ringsInput: XMLHttpRequest
UPPER CASETHE LORD OF THE RINGSXMLHTTPREQUEST
lower casethe lord of the ringsxmlhttprequest
Title CaseThe Lord of the RingsXml Http Request
Sentence caseThe lord of the ringsXmlhttprequest
camelCasetheLordOfTheRingsxmlHttpRequest
PascalCaseTheLordOfTheRingsXmlHttpRequest
snake_casethe_lord_of_the_ringsxml_http_request
kebab-casethe-lord-of-the-ringsxml-http-request
CONSTANT_CASETHE_LORD_OF_THE_RINGSXML_HTTP_REQUEST
aLtErNaTiNgtHe lOrD Of tHe rInGsxMlHtTpReQuEsT
Computed July 2026 by running each string through the converter on this page. The Title Case row reflects the 22-word minor-word list described below; a publication with its own style sheet may want a different result, and that is a matter of house style rather than of correctness.

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
Title Case keeps the minor words lowercase"the lord of the rings" becomes "The Lord of the Rings": of and the stay lowercase because they sit in the middle, while the first and last words are always capitalised.ONE PHRASE, 10 STYLESinput: the lord of the ringsTheLordoftheRingsunderlined: of, the kept lowercasethe first and last word are always capitalisedTitle CaseTHE OTHERSSentence caseThe lord of the ringscamelCasetheLordOfTheRingskebab-casethe-lord-of-the-ringsCONSTANT_CASETHE_LORD_OF_THE_RINGS
Title Case capitalises the first and last word and leaves the minor words in the middle lowercase, which is what separates it from Upper Case.
Title Case, walked through
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