What it does
A case converter changes the capitalization of text without changing the words themselves. That sounds trivial until you have a column of 400 names in mixed case, a headline that came out of a content management system in all caps, or a phrase that needs to become a JavaScript variable before lunch.
This tool covers two families of casing. The text modes — uppercase, lowercase, title case, sentence case, toggle case, and alternating case — preserve the words, punctuation, and spacing you pasted. The code modes — camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, and dot.case — split the input into words and rebuild it using a programming convention. The two families behave differently on purpose, and the notes below explain exactly how.
The conversion happens live in the browser. The original stays in the left box, the converted text appears on the right, and you can switch modes without losing the input. Nothing is uploaded, and there is no saved history.
How to use it
- Paste or type the text into Your text.
- Choose a case from the button grid. The badge at the top of the tool shows the active mode, and the conversion updates immediately.
- Read the result. Text modes keep punctuation and spacing; code modes remove punctuation and join the words with a separator.
- Use Copy or Download to take the result with you.
If the output looks empty in a code mode, the input probably contained no letters or numbers — only punctuation, symbols, or emoji. Switch to a text mode if you need to keep those characters.
Modes explained
Text modes
- UPPERCASE
- Converts every cased letter to uppercase. Punctuation, numbers, spacing, and line breaks are untouched.
- lowercase
- Converts every cased letter to lowercase. Useful for normalizing email addresses, usernames, tags, and imported data.
- Title Case
- Lowercases the whole string, then capitalizes the first letter of each word. A word boundary is a space or most punctuation; apostrophes do not start a new word, so “don’t” becomes “Don’t”, not “Don’T”.
- Sentence case
- Lowercases the whole string, then capitalizes the first letter after the start, a newline, or a period, exclamation mark, or question mark followed by whitespace. It handles opening quotes and other punctuation before the first letter.
- tOGGLE cASE
- Swaps the case of each letter: uppercase letters become lowercase and lowercase letters become uppercase. Digits, punctuation, and emoji are unaffected.
- aLtErNaTiNg
- Alternates lowercase and uppercase across the letters, ignoring spaces and punctuation when counting. It starts with lowercase, so “hello” becomes “hElLo”.
Code modes
The code modes first split the input into words. Letters and numbers are kept; spaces, punctuation, underscores, hyphens, and emoji are treated as separators. Boundaries inside camelCase and PascalCase are split too, and an acronym is separated from a following capitalized word.
- camelCase
- The first word is lowercased, and each following word is capitalized with no separator. “User account ID” becomes
userAccountId. - PascalCase
- Every word is capitalized and joined without a separator. “User account ID” becomes
UserAccountId. - snake_case
- Words are lowercased and joined with underscores:
user_account_id. - kebab-case
- Words are lowercased and joined with hyphens:
user-account-id. Useful for CSS class names, URL slugs, and file names. - CONSTANT_CASE
- Words are uppercased and joined with underscores:
USER_ACCOUNT_ID. Common for environment variables and constants. - dot.case
- Words are lowercased and joined with dots:
user.account.id. Useful for configuration keys and some object paths.
Examples
Before
the quiet economics of a maintenance windowAfter
The Quiet Economics Of A Maintenance WindowThe mechanical title case capitalizes “Of” and “A” as well as the longer words. That is predictable, but it is not the same as a newspaper style guide. For a polished headline, use this as a starting point and lowercase the short articles and prepositions you want to leave down.
Before
HTTP response codeAfter
httpResponseCodeThe acronym boundary is split into a separate word, so “HTTP” becomes the lowercase first word rather than hTTPResponseCode. If your codebase prefers to keep acronyms uppercase inside identifiers, adjust that part by hand; the tool deliberately produces a consistent, readable identifier instead.
Before
Account Name
Account ID
Billing CountryAfter
account_name
account_id
billing_countryEvery line is converted independently. The line breaks stay in place, so the result can go straight back into a column without being re-split. Punctuation such as a stray colon or dash is removed by the word splitter.
When it earns its keep
- Content cleanup. Normalize a headline, a product name, or a list of labels that arrived in inconsistent case.
- Data preparation. Lowercase email addresses and tags, or turn display names into slugs before an import.
- Programming. Convert a human-readable label into camelCase, snake_case, or CONSTANT_CASE for a variable, a JSON key, or an environment variable.
- Design and copy testing. Compare a headline in title case and sentence case without retyping it into a second document.
- Accessibility experiments. Check how a screen reader handles a block of uppercase text, or test whether a label still reads well when the case changes.
Limits worth knowing
- Title case is mechanical. It lowercases acronyms and proper nouns and capitalizes short words. It does not know that “iPhone” should keep its internal capital or that “NASA” should stay uppercase.
- Sentence case is punctuation-based. Abbreviations, decimals, and quoted sentence fragments can confuse it. Review the output before publishing.
- Code modes remove punctuation and symbols. That is the point of an identifier, but it also means the result is not a faithful copy of the input. Keep the original in the left pane until you have copied what you need.
- Acronym handling is consistent, not configurable. “XMLHttpRequest” becomes
xmlHttpRequestin camel case. Many codebases would writexmlHTTPRequestinstead. Adjust by hand if your convention differs. - Case mapping is locale-independent. The Turkish dotless
ıand dottedİfollow the browser’s default Unicode mapping, not Turkish-specific rules. Check the result if you are working in a locale with special casing. - Some characters expand when uppercased. The German
ßbecomesSS, so the output can be longer than the input. This is standard Unicode case mapping, not a counting bug.
Page updated