Case Converter
Convert identifiers and text between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, and URL slugs.
Local workspace
Named projects in IndexedDB · Local only — never synced to our servers. Worksp…
Batch workspace
Format multiple files locally in one run.
Renaming a field across a codebase means the same word in four shapes: camelCase in TypeScript, snake_case in Python and SQL, kebab-case in URLs and CSS, and CONSTANT_CASE for environment variables. This converter splits identifiers the way those languages do, including acronym boundaries like XMLHttpRequest, then rebuilds them in the case you pick. It works line by line so you can paste a whole column of names, and the slug output strips accents and punctuation for URLs. The All cases view shows every form at once when you're still choosing a convention.
Common errors and fixes
Acronyms come out as Xml instead of XML
Casing lowercases the rest of each word by design. Fix those names by hand, or use the JSON to Go generator, which keeps Go initialisms capitalized.
Accented letters disappear in a slug
Slugs keep ASCII letters and digits only, so é becomes e and other scripts are dropped. Use kebab-case to keep the original letters.
Digits stay attached to the previous word
version2Beta splits at the capital B, but user2fa has no boundary to split on. Add a separator, such as user_2fa, before converting.
Leading or trailing separators disappear
Separators are treated as word boundaries, so _private becomes private. Add the prefix back after converting.
Options
| Option | Description |
|---|---|
| Output | All cases shows every conversion at once, which is handy when you're deciding on a convention. |
| One value per line | On, each line is converted separately, so you can paste a list. Off, the whole input is treated as a single phrase. |
FAQ
How does it decide where words begin?
It splits on separators such as underscores, hyphens, spaces, and dots, at each capital letter that follows a lowercase letter or digit, and before the last capital of an acronym, so XMLHttpRequest becomes XML, Http, and Request.
What happens to acronyms like XML or ID?
They're treated as ordinary words, so XMLHttpRequest becomes xmlHttpRequest and xml_http_request. Go's convention of keeping ID and URL capitalized is different; the JSON to Go generator applies that rule instead.
How is a URL slug different from kebab-case?
A slug also strips accents and punctuation for use in a URL, so Crème Brûlée becomes creme-brulee. kebab-case keeps the letters as they are and only changes separators.
Can I convert a whole list at once?
Yes. With one value per line turned on, every line converts on its own, so you can paste a column of database columns or API fields straight from a spreadsheet.
Why does it show every case at once?
Comparing them side by side is usually what you want when naming something new. Pick a single case from the Output option to get just that conversion, which is also easier to copy.