Case Converter
Convert text between camelCase, snake_case, kebab-case, Title Case, URL slugs, and more.
- camelCase
xmlHttpRequest userFirstName crèmeBrûléeARecipe
- PascalCase
XmlHttpRequest UserFirstName CrèmeBrûléeARecipe
- snake_case
xml_http_request user_first_name crème_brûlée_a_recipe
- CONSTANT_CASE
XML_HTTP_REQUEST USER_FIRST_NAME CRÈME_BRÛLÉE_A_RECIPE
- kebab-case
xml-http-request user-first-name crème-brûlée-a-recipe
- dot.case
xml.http.request user.first.name crème.brûlée.a.recipe
- Title Case
Xml Http Request User First Name Crème Brûlée A Recipe
- Sentence case
Xml http request User first name Crème brûlée a recipe
- lowercase
xmlhttprequest user_first_name crème brûlée: a recipe
- UPPERCASE
XMLHTTPREQUEST USER_FIRST_NAME CRÈME BRÛLÉE: A RECIPE
- URL slug
xml-http-request user-first-name creme-brulee-a-recipe
How it works
Paste a variable name, a heading, or a list of identifiers and every common case appears at once: camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, Title Case, Sentence case, lowercase, UPPERCASE, and a URL slug, each with its own copy button.
Words are detected the way a developer would read them. Spaces, punctuation, underscores, hyphens, and dots all separate words, and so do the humps in camelCase, so getUserID, get_user_id, and get user id all convert to the same result. Runs of capitals are kept together as an acronym, which is why XMLHttpRequest becomes xml_http_request rather than x_m_l_http_request.
Each line is converted on its own, so a column of field names copied from a spreadsheet or a database schema comes out as the same column in the new case, ready to paste back.
The URL slug removes accents (é becomes e, ß becomes ss), drops punctuation, and joins the remaining words with hyphens in lowercase ASCII, which is the safe form for paths and file names. Lowercase and UPPERCASE only change letter case and leave the rest of the text exactly as typed.
Frequently asked questions
- What is the difference between camelCase and PascalCase?
- Both join words without separators and capitalize each word, but camelCase keeps the first word lowercase (userFirstName) while PascalCase capitalizes it too (UserFirstName). JavaScript and Java use camelCase for variables and PascalCase for classes and types.
- When should I use snake_case or kebab-case?
- snake_case is the convention for variables in Python, Ruby, and most SQL schemas, with CONSTANT_CASE for constants and environment variables. kebab-case is used for CSS classes, URLs, file names, and command-line flags, where underscores are awkward or hyphens are standard.
- How are acronyms such as ID or HTTP handled?
- A run of capitals is treated as one word, and a capital followed by lowercase letters starts the next one, so parseHTTPResponse splits into parse, HTTP, Response. In camelCase and PascalCase the acronym is then written as a normal word, giving parseHttpResponse.
- Does Title Case keep small words like of and the lowercase?
- No. Every word is capitalized, which is the convention for headings in code, UI labels, and generated names. Editorial styles such as AP or Chicago lowercase short articles and prepositions, so adjust those by hand for prose headlines.
- Is my text sent to a server?
- No. All conversions run in your browser as you type, using plain JavaScript string functions. Nothing is uploaded or stored, so it is safe to paste internal identifiers or unpublished content.