Case converter for code identifiers

Runs locally

camelCase, snake_case, kebab-case and nine more — one name or a whole list.

Names

One identifier or phrase per line

“XMLHttpRequest” in every case

camelCasexmlHttpRequest
PascalCaseXmlHttpRequest
snake_casexml_http_request
SCREAMING_SNAKE_CASEXML_HTTP_REQUEST
kebab-casexml-http-request
Train-CaseXml-Http-Request
dot.casexml.http.request
path/casexml/http/request
Title CaseXml Http Request
Sentence caseXml http request
lower casexml http request
UPPER CASEXML HTTP REQUEST

Convert the whole list

xmlHttpRequest
userId
firstName
getV2Items
shippingAddressLine1
orderCreatedAt
çaVaDéjà
Guide

Converting case is really about finding word boundaries

Joining words is easy; finding them is the hard part. "user_id", "userId", "UserID" and "user-id" have to become the same two words before they can become anything else, and a naive splitter that breaks on every capital turns "XMLHttpRequest" into x, m, l, http, request. This converter treats a run of capitals followed by a lowercase word as an acronym and a separate word, so it comes out as xml, http, request.

Digits stay attached to the word before them (utf8, v2, line1). That keeps version suffixes and numbered fields intact through a round trip, which is what you want when renaming database columns or mapping JSON keys to struct fields. The detector also tells you which convention the first line already uses, which helps when you are auditing a file with mixed styles.

Mixed input, one per line

XMLHttpRequest
user_id
first-name
SHIPPING_ADDRESS_LINE_1

Converted to camelCase

xmlHttpRequest
userId
firstName
shippingAddressLine1
Where each convention is usually expected
ConventionTypical home
camelCaseJavaScript and Java variables, JSON keys in most web APIs
PascalCaseClasses, types, React components, C# members
snake_casePython, Ruby, SQL columns, Postgres identifiers
SCREAMING_SNAKE_CASEConstants and environment variables
kebab-caseURLs, CSS classes, CLI flags, Kubernetes resource names
dot.caseJava properties and Spring configuration keys

Where people get caught

Acronyms do not survive a round trip

XMLHttpRequest → xml_http_request → XmlHttpRequest. The capitals were information the snake_case form cannot hold. Style guides disagree on acronyms (Go wants URLID, Java prefers UrlId), so check the result.

Renaming a JSON key is an API change

Switching a response from user_id to userId breaks every client that reads it. Map at the boundary — a serializer naming strategy — rather than renaming stored data.

Case-insensitive systems merge names

Environment variables on Windows, MySQL table names on macOS and most SQL identifiers without quotes ignore case, so UserId and userid collide. Pick one convention per system.

About the case converter

How it works in 4 steps · 4 common use cases · 3 questions answered

How it works

  1. 1.Type or paste one name per line, or upload a text file.
  2. 2.The first line is shown in all twelve conventions, each with its own copy button.
  3. 3.Choose a target convention to convert every line of the list.
  4. 4.Copy the converted list or download it as a file.

Common use cases

  • •Mapping database column names to object properties
  • •Turning JSON keys into environment variable names
  • •Renaming CSS classes or URL slugs consistently
  • •Checking which convention a legacy file uses

FAQ

How are numbers handled?

A digit stays attached to the letters before it, so line1 and utf8 remain single words. A digit after a separator starts a new word.

Does it keep accented and non-Latin letters?

Yes. Letters and digits in any script count as parts of a word, so "Ça va déjà" becomes çaVaDéjà. Turn on Strip accents to get ASCII-safe names instead (caVaDeja), for code or systems that only accept A–Z.

Can I convert a whole file?

Yes. Upload or paste it; every non-empty line is converted on its own and blank lines are kept, so line numbers still match.