Case Converter
Paste or type your text in the box, then click the case you want. The result updates as you keep typing, so you can fix a typo without starting over. Copy it, download it as a .txt file, or push it back into the box and convert again.
Writing
Code and file names (each line is converted on its own)
Keep typing above and the result follows the case you picked last.
Why I built another case converter
There are plenty of case converters already. I used them for years, and most of them annoyed me in the same three ways. The page is so covered in ads that the text box gets pushed halfway down the screen. Title Case is just Capitalize Every Word with a different name, so you get "The Lord Of The Rings" and have to fix it by hand. And if you write code, you need a second site for camelCase and snake_case, because the writing tools don't do those.
This one does all of it on one page. Seven cases for writing, six for code and file names, a live result that follows your edits, and counters for characters, words and lines. Nothing you type leaves the browser tab. There's no server round trip, which is also why it's instant even when you paste a whole chapter.
The writing cases
If what you actually want is bold, italic or script letters for an Instagram bio, that's a different trick, and the fancy font generator does it.
UPPER CASE turns every letter into a capital. It's what you want for a sign, a warning label, or a spreadsheet column that has to match a system that only accepts capitals. It handles accented letters properly, so "café" becomes "CAFÉ" and German ß becomes SS the way it's supposed to.
lower case does the opposite. The most common reason people search for uppercase to lowercase is simple: they typed a paragraph with Caps Lock on and don't want to retype it. Paste it in, click once, done.
Title Case is the one I spent the most time on. It capitalizes the important words and leaves short articles, conjunctions and prepositions in lower case (a, an, the, and, but, or, of, in, on, to, with and so on), unless that small word is the first or last word of the title or comes right after a colon. So "the lord of the rings: the return of the king" comes out as "The Lord of the Rings: The Return of the King". Hyphenated words get both halves capitalized, and words that already have a capital in the middle, like iPhone, McDonald or NASA, are left alone. If your whole input is in capitals, those words get rebuilt from scratch, because there's no way to tell an acronym from a shouted word.
Sentence case lowercases everything and then capitalizes the first letter of each sentence, plus the word "I" on its own. It's the fix for an email someone wrote entirely in capitals, or for product names you want to turn into a normal looking description. Proper nouns will come out lower case, since nothing on the page knows that "paris" is a city. Skim the result and fix those by hand.
Capitalize Each Word puts a capital at the start of every single word, small ones included. Some people want exactly that for headings, and plenty of style guides for product titles in online shops ask for it.
aLtErNaTiNg cAsE is the mocking SpongeBob meme text. Nobody needs it for work, but people search for it constantly, so it's here. iNVERSE cASE swaps every letter, which is mostly handy for undoing a paragraph typed with Caps Lock on and Shift held down at the same time.
The code cases
The second row is for variable names, CSS classes, database columns, URL slugs and file names. These work one line at a time, so you can paste a list of 40 column names and convert all of them at once without them getting glued into one giant word.
- camelCase: userFirstName. JavaScript, Java and JSON keys.
- PascalCase: UserFirstName. Class names in most languages, React components.
- snake_case: user_first_name. Python, Ruby, and most SQL databases.
- kebab-case: user-first-name. CSS classes, URLs and file names.
- CONSTANT_CASE: USER_FIRST_NAME. Environment variables and constants.
- dot.case: user.first.name. Config keys and some translation files.
The input doesn't have to be clean. "User First Name", "user-first-name", "userFirstName" and "USER_FIRST_NAME" all split into the same three words, so you can go from any of these styles to any other. Acronyms are split sensibly too: "XMLHttpRequest" becomes xml_http_request in snake_case rather than x_m_l_http_request.
A few real situations
Converting a long list often shows that half of it was the same entry typed twice in different cases. Lowercase it here, then run it through remove duplicate lines to get a clean list.
A teacher pasted 30 student names exported from a school system in all capitals. Capitalize Each Word fixed them in one go, and only the two names with "Mc" needed a manual touch.
A developer had a CSV header row with columns like "Order Date" and "Customer ID" and needed snake_case names for a database migration. One line per column, one click, then copy.
Someone writing blog headlines wanted proper Title Case without opening a style guide every time. Type the headline, click Title Case, and keep editing in the top box. The result keeps up as you type, so you can try three versions of a headline in a few seconds.
And the classic: a long message typed with Caps Lock on by accident. Sentence case turns it back into something that doesn't look like shouting.
Counting while you convert
For reading time, sentence counts and keyword density, paste the same text into the word counter.
Under the input box you'll see the character, word and line counts. They update as you type. Characters are counted the way a person would count them, so an emoji or an accented letter counts as one. Word counts use your browser's own word splitter, which means Chinese and Japanese text gets a sensible number too instead of one giant "word". If you need more than that, like reading time or keyword density, there's a separate tool for it.
What it won't do
It doesn't know proper nouns. Sentence case will lowercase "London" and "Microsoft", and no amount of clever rules fixes that without a dictionary of every name on earth. The Title Case rules follow common English style (close to AP and Chicago for small words). Spanish, French and Portuguese headlines normally use sentence case anyway, so pick that one for those languages. German nouns always take a capital, which no case converter can guess, so check German text by eye.
Chinese and Japanese characters have no upper or lower case, so they pass through unchanged. Mixed text works fine: English words inside a Chinese sentence get converted and the Chinese characters stay as they are.
Privacy
The conversion is plain JavaScript running in your tab. Your text isn't uploaded, logged or stored anywhere. Load the page, switch off your Wi-Fi, and it still works. That matters more than it sounds when the text you're fixing is an internal document, a client list or a draft contract.
Frequently Asked Questions About the Case Converter
Similar tools to explore
Remove Duplicate Lines
Remove duplicate lines from text lists, email lists, URLs, and code with case-sensitive and whitespace options.
Remove DuplicatesConvert Word Doc to HTML
Convert Microsoft Word DOC and DOCX documents into clean, semantic HTML code stripped of proprietary styling.
Convert to HTMLFancy Font Generator
Transform plain text into stylish Unicode fonts. Copy and paste fancy letters into Instagram, Twitter, Discord, TikTok, or anywhere text is allowed.
Generate Fancy FontsGlitch Text Generator
Create that creepy, corrupted "zalgo" text effect with adjustable intensity. Perfect for Discord, memes, and horror-themed content.
Generate Glitch TextSmall Text Generator
Convert regular text to tiny superscript, subscript, and small caps. Copy and paste miniature text for bios, comments, and aesthetic posts.
Generate Small TextStrikethrough Text Generator
Create s̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h̶ text that works on Twitter, Facebook, Discord, and anywhere Unicode is supported. Multiple strikethrough styles available.
Generate Strikethrough