Case converter
Paste text once, get every case style at once — prose cases below, programming cases further down. Title Case gets four separate outputs, because AP, Chicago, MLA, and APA genuinely disagree about which words to capitalize.
Your text never leaves your browser.
Always keep these words exactly as written
One per line or comma-separated. Overrides every other rule, including acronym detection — useful for names that don't fit the ALL-CAPS pattern, like "iPhone" or "eBay".
Prose cases
Per the AP Stylebook.
Per the Chicago Manual of Style, 17th ed., §8.159.
Per the MLA Handbook, 9th ed., §2.4.
Per the APA Publication Manual, 7th ed., §6.17.
Programming cases
Why four Title Case outputs
Every other case converter ships one "capitalize words over three letters" implementation and calls it Title Case. That's not how any real style guide defines it. AP lowercases prepositions under four letters; Chicago and MLA lowercase every preposition regardless of length; APA matches AP's four-letter cutoff. All four agree on articles, coordinating conjunctions, and the infinitive "to" — and all four force a capital on the first word, the last word, and whatever comes right after a colon.
Hyphenated compounds are the other place they split: AP, MLA, and APA capitalize both halves of a compound like "Up-To-Date" no matter what the second word is. Chicago is the exception — it lowercases the second half if that word would normally be lowercase on its own, so Chicago renders the same compound "Up-to-Date".
Acronym preservation
A word that's already all-caps in your input — "API", "URL", "NASA" — is assumed to be an intentional acronym and left alone in Title Case and PascalCase/camelCase output, rather than being re-cased to "Api" or "Url". Turn this off if you'd rather every word follow the normal capitalization rule, or add a word to the exceptions list above to force one specific word to render exactly as typed regardless of the acronym check.
Programming case tokenization
Converting between camelCase, snake_case, and the rest means first splitting an identifier back into words — on separators like _, -, and ., and on case boundaries. Acronym runs are handled specially so XMLHttpRequest splits into XML, Http, and Request rather than one letter at a time: the rule is to split before a capital letter that's followed by a lowercase letter, and after a run of capitals. Converting camelCase to snake_case and back returns the original for well-formed identifiers — try it with your own.