Text & writing Works offline

Text Case Converter

Paste your text and convert it to UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE or aLtErNaTiNg case — plus reverse characters and reverse word order.

Clean-up options
Input characters
0
Input words
0
Output characters
0
Output words
0

The result box is read-only and stays selectable, so you can also copy it by hand with Ctrl+C if your browser blocks clipboard access.

Pick a conversion, then stack another on top of the result — or apply the clean-up toggles to tidy stray spaces and indentation afterwards.

How the case converter works

The converter treats your text as a sequence of words and separators. A word is a run of letters and digits; the separators are everything else — spaces, tabs, line breaks, punctuation. That single split is what makes the programming-style conversions possible: camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE all take the same word list and differ only in what they do to each word and what they glue between them.

The split is camel-aware, so text that is already in developer style converts cleanly in the other direction: getUserName and get_user_name both break into get, user, name, which is why snake_case turns the first into get_user_name rather than getusername. Sentence case lowercases everything and then capitalises the first letter of each sentence, restarting after a full stop, question mark, exclamation mark, ellipsis or line break. Alternating case flips every letter it meets and leaves digits and punctuation alone.

Character reversing is grapheme-aware where the browser supports it. Instead of reversing UTF-16 code units — which shreds emoji and combining accents — the tool asks Intl.Segmenter for grapheme clusters and reverses those, so a family emoji or a flag survives the trip. Reversing word order works on whitespace-separated tokens and rejoins them with a single space.

Accuracy and limits: title case is not a solved problem

Every conversion here is a mechanical string operation with a predictable result — except title case, which is a style decision dressed up as an algorithm. The Chicago Manual of Style lowercases short prepositions and conjunctions but capitalises the first and last word of a title regardless of length; the AP Stylebook capitalises all prepositions of four letters or more; Wikipedia's Manual of Style has its own list and its own treatment of hyphenated compounds. Feed the same headline to a Chicago tool and a Wikipedia tool and you will get two different answers, and neither is wrong.

This converter uses one simple rule: the first word is always capitalised, and every other word is capitalised unless it appears in a short stopword list of articles, conjunctions and short prepositions (a, an, the, and, but, or, of, in, on, to, for, with, at, by, from and similar). It does not know about hyphenated compounds, it does not look at whether a word is a verb or a preposition in context, and it does not keep acronyms or product names in their chosen casing — iPhone becomes Iphone after a lowercase-and-recapitalise pass, so fix proper nouns by hand before publishing.

  • Locale-sensitive casing. The conversions use the locale-independent JavaScript methods, so Turkish and Azerbaijani dotted/dotless i are handled the default way rather than the local way, and a few languages with special casing rules will look slightly off.
  • One-to-many mappings. Uppercasing is not length-preserving: ß becomes SS, and some ligatures expand. Compare the input and output character counts if an exact length matters.
  • Accents and non-Latin scripts. Case mapping follows Unicode, so Greek, Cyrillic and most accented Latin letters convert correctly. Scripts with no concept of case — Chinese, Japanese, Korean, Arabic, Hebrew, Thai — pass through unchanged, which is expected rather than a failure.
  • Sentence detection is naive. A full stop after an abbreviation starts a new “sentence”, so e.g. this becomes e.g. This. Review the output rather than trusting it blindly.
  • Whitespace toggles run after the conversion. Collapse repeated whitespace turns runs of spaces and tabs into one space and caps consecutive blank lines at one; Trim lines removes leading and trailing whitespace on every line. Both are applied to the output, not the input, so the original text in the box above is never modified.

Never run snake_case or camelCase over source code as a whole — identifiers, string literals and comments would all be rewritten together. Convert the identifier you are renaming, then paste it back.

How to use the converter

  1. Paste your text into the top box. The input character and word counts update as you type.
  2. Press a conversion button. The result appears in the read-only box below it, and the output counts update at the same time, so you can see at a glance whether a conversion changed the length of the text.
  3. Stack conversions if you need to. Use result as input moves the output into the top box, which is handy when you want sentence case and then a clean-up pass, or a programming style and then a reverse.
  4. Switch on clean-up options for pasted text that carries stray indentation or double spaces. They apply to the result immediately, so you can toggle them on and off to compare.
  5. Copy the result with the copy button — a Copied! badge confirms it — or select the text in the box and copy it manually.

A typical workflow for a headline is: paste, press Title Case, then read it once and fix the words the rule cannot know about — product names, acronyms and the prepositions your house style wants capitalised.

Frequently asked questions

Which title case does this tool use?

A deliberately simple one: the first word is always capitalised, and every other word is capitalised unless it appears in a short list of articles, conjunctions and short prepositions such as a, an, the, and, of, in and to. That matches the spirit of most headline styles but not the letter of any of them — the Chicago Manual of Style, the AP Stylebook and Wikipedia's Manual of Style each decide differently about words like “over”, “up” and “with”. If the capitalisation will be checked by an editor, apply their guide after converting.

Why does uppercase sometimes change the number of characters?

Case mapping is not always one letter to one letter. The German sharp s (ß) uppercases to SS, and a few ligatures expand the same way. The character counter therefore shows the input and the output separately, and the two can legitimately differ by more than zero after an UPPERCASE conversion.

Does the converter work for Turkish or Azerbaijani?

Not perfectly. This tool uses the locale-independent JavaScript methods, where the lowercase of “I” is “i”. In Turkish the dotted and dotless i are different letters: “I” should lowercase to “ı” and “i” should uppercase to “İ”. JavaScript offers toLocaleUpperCase and toLocaleLowerCase for that case, but the correct locale cannot be guessed reliably from a block of text, so the tool stays neutral and leaves locale-correct casing to a language-specific pass.

Why is “reverse characters” not the same as reversing a string in code?

Because a user-perceived character is often more than one code point. Emoji with skin-tone modifiers, flags and many accented letters are built from several code points, and reversing the raw code points breaks them apart. Where the browser exposes Intl.Segmenter this tool reverses grapheme clusters instead, so those characters stay intact; in older browsers it falls back to code points and the output may look scrambled for such characters.

Sources & further reading