Case Converter
Paste your text and get every case at once — UPPERCASE, lowercase, Title, camelCase, snake_case and more. Click any card to copy.
Type or paste text above and every case appears here — click any card to copy its result.
General cases
Programmer cases
Why text case is not just cosmetic
The same word can be a valid variable name, an invalid one, or a completely different identifier depending on how it is cased. userName, UserName, user_name and user-name all describe the same concept, but a JavaScript linter, a Python module, a URL router and a CSS class list each expect a different one of these four. Outside code, case carries meaning too: writing a product name in ALL CAPS reads as shouting in an email but as a legitimate brand style on packaging, and a headline in Title Case signals "heading" to a reader before they've read a single word. This tool exists because switching a block of text between all of these conventions by hand — retyping capitals, swapping every space for an underscore or a hyphen, deciding where word boundaries fall inside a mashed-together identifier — is slow and error-prone, especially across a whole file of variable names or a full paragraph of copy.
How to use it
- Paste or type any text into the box — a sentence, a heading, a single identifier, or a multi-line list.
- All twelve results update as you type; nothing is calculated on a server, so long or sensitive text (API keys, internal field names) never leaves your browser.
- Click any result card to copy just that case to your clipboard — the card briefly confirms the copy.
- Leave "Save my text in this browser" ticked to have the box repopulate next time you open the page, or untick it to keep the session private and unsaved.
The two families of case, and how words are found
The six general cases — UPPERCASE, lowercase, Title Case, Sentence case, aLtErNaTiNg and tOGGLE cASE — operate on your text character by character and never touch spacing or punctuation. Sentence case additionally looks for sentence-ending punctuation (., ?, !) so it knows where a new sentence — and therefore a new capital letter — begins.
The six programmer cases — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case and dot.case — work differently: the converter first has to split your input into discrete words, because programming identifiers carry no spaces of their own. It does this by (1) splitting on any existing separator — a space, underscore, hyphen or dot — and (2) inserting an extra boundary wherever a lowercase letter or digit is immediately followed by an uppercase letter, so an identifier like orderTotal2Tax is read as three words: order, total2, tax. A run of consecutive capitals is treated as one acronym rather than split letter-by-letter, so parseHTTPResponse becomes parse, HTTP, response — not parse, h, t, t, p. Once the words are found, each target case reassembles them with its own rule: camelCase lowercases the first word and capitalizes the rest with no separator; snake_case lowercases every word and joins with _; kebab-case does the same with -; CONSTANT_CASE uppercases every word and joins with _.
Worked examples
total order amountUPPERCASE:
TOTAL ORDER AMOUNT · Title Case: Total Order Amount · camelCase: totalOrderAmount · snake_case: total_order_amount · kebab-case: total-order-amount · CONSTANT_CASE: TOTAL_ORDER_AMOUNT
getUserIDFromJWTTokenized as:
get, user, ID, from, JWT → snake_case: get_user_id_from_jwt · kebab-case: get-user-id-from-jwt · PascalCase: GetUserIdFromJwt · dot.case: get.user.id.from.jwt
please review this. it is urgent!Sentence case:
Please review this. It is urgent! · Title Case: Please Review This. It Is Urgent! · tOGGLE cASE: PLEASE review THIS. it IS urgent!
Quick reference
| Case | Sample | Typical home |
|---|---|---|
| camelCase | orderTotal | JavaScript / Java / C# variables and functions |
| PascalCase | OrderTotal | Class, type and component names |
| snake_case | order_total | Python, Ruby, SQL columns |
| CONSTANT_CASE | ORDER_TOTAL | Constants, environment variables |
| kebab-case | order-total | URLs, CSS classes, file and package names |
| dot.case | order.total | Config keys, i18n namespaces, packages |
Mistakes worth avoiding
- Mixing conventions inside one codebase (a
snake_casefunction calling acamelCaseone from the same file) is a common review comment — pick the convention the language community expects and convert everything to match, rather than guessing at each identifier by hand. - Renaming an existing identifier is a text transform only — this tool does not update every place that name is referenced in a project. Use it to generate the new name, then rename with your editor's "rename symbol" or a project-wide find-and-replace.
- Case folding is not reversible in every language: Turkish "İ"/"I" and German "ß" behave differently under case changes than in English, so text mixing scripts or diacritics can produce results that look slightly off compared to a same-language reader's expectation.
- Only Latin letters and digits form words for the six programmer cases — punctuation-only or non-Latin input (emoji, Korean, Arabic, Chinese) has no letter case, so it passes through the general cases unchanged and is dropped when building identifier cases.
What this tool does not do
It does not validate that a resulting identifier is legal in a specific language (for instance, some languages disallow identifiers that start with a digit) and it does not check for reserved keywords. It also does not translate text between human languages — only the letter casing and word-joining style change, never the words themselves.
Sources & further reading
Frequently asked questions
What text case formats does this case converter support?
This convert case tool outputs twelve formats at once. The general cases are UPPERCASE, lowercase, Title Case, Sentence case, aLtErNaTiNg and tOGGLE cASE — a complete uppercase lowercase converter for everyday writing. The programmer cases are camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case and dot.case. Every result is shown on its own card so you can click to copy the exact case you need.
camelCase vs snake_case vs kebab-case — when should I use each?
These are naming conventions programmers use for identifiers. camelCase (myVariableName) is common for JavaScript and Java variables; PascalCase (MyClassName) for classes and types; snake_case (my_variable_name) for Python and Ruby; CONSTANT_CASE for constants and environment variables; kebab-case (my-file-name) for URLs, CSS classes and file names; and dot.case for config keys and namespaces. This camelCase snake_case converter lets you switch any identifier between them instantly.
How is my text split into words for the programmer cases, and why are non-Latin characters skipped?
For the programmer cases the converter first tokenises your text into words: it inserts a boundary between a lowercase or digit and an uppercase letter (so myXML becomes my XML), keeps acronyms intact (HTTPServer becomes HTTP Server), and then splits on any separator — spaces, underscores, hyphens or dots. Only Latin letters and digits (A–Z, 0–9) form identifier tokens, so Chinese, Korean, Arabic or emoji are skipped because those scripts have no case and are not valid in code identifiers. The general cases keep your original text and spacing untouched.
How do Title Case and Sentence case differ?
Title Case capitalises the first letter of every word — Convert Your Text Like This — which suits headlines and titles. Sentence case capitalises only the first letter of each sentence (after a period, question mark or exclamation mark) and leaves the rest lowercase — Convert your text like this. Use Title Case for headings and Sentence case for body copy and normal prose.
Is my text sent to a server?
No. This case converter runs entirely in your browser — nothing you type is ever uploaded, logged or shared, so it is safe for confidential text and code. Your most recent input is optionally saved to this browser's local storage so it is still here when you return; untick the save option to keep it for this session only, and clearing the box removes the stored copy.