$case-converter
Reformat identifiers and prose across every common case convention. Paste anything — camelCase, snake_case, Title Case, SCREAMING — and see all sixteen variants at once. All tokenization happens locally in your browser.
- camelCaseJavaScript / Java variable namesxmlHttpRequestParsedUserIdFromUrlToYou
- PascalCaseClass names, React componentsXmlHttpRequestParsedUserIdFromUrlToYou
- snake_casePython / Rust identifiersxml_http_request_parsed_user_id_from_url_to_you
- SCREAMING_SNAKE_CASEEnvironment variables, constantsXML_HTTP_REQUEST_PARSED_USER_ID_FROM_URL_TO_YOU
- kebab-caseURLs, CSS classes, filenamesxml-http-request-parsed-user-id-from-url-to-you
- SCREAMING-KEBAB-CASEHTTP headers (non-standard)XML-HTTP-REQUEST-PARSED-USER-ID-FROM-URL-TO-YOU
- Title CaseArticle and heading copyXml Http Request Parsed User Id From Url To You
- Sentence caseBody copy, log messagesXml http request parsed user id from url to you
- UPPER CASEAll caps, whitespace preservedXMLHTTPREQUEST PARSEDUSERID FROMURL TO_YOU
- lower caseAll lowercase, whitespace preservedxmlhttprequest parseduserid fromurl to_you
- dot.caseConfig keys, feature flagsxml.http.request.parsed.user.id.from.url.to.you
- path/caseURL or filesystem pathsxml/http/request/parsed/user/id/from/url/to/you
- CONSTANT_CASEAlias for SCREAMING_SNAKEXML_HTTP_REQUEST_PARSED_USER_ID_FROM_URL_TO_YOU
- Header-CaseHTTP header names (Content-Type)Xml-Http-Request-Parsed-User-Id-From-Url-To-You
- aLtErNaTiNg CaSeMeme / mocking textxMlHtTpReQuEsT pArSeDuSeRiD fRoMuRl To_YoU
- iNVERSE cASEFlip the case of each letterxmlhTTPrEQUEST PARSEDuSERid FROMurl TO_YOU
How to convert text between cases
Case conventions carry real meaning in code. Python prefers snake_case for variables. JavaScript uses camelCase for locals and PascalCase for classes and React components. Environment variables are nearly always SCREAMING_SNAKE_CASE. URLs and CSS class names land on kebab-case. Get it wrong and the linter, compiler, or code reviewer will catch it — but fixing one by hand is tedious.
- Paste any text. The tool tokenizes camelCase boundaries, acronym runs like XMLHttpRequest, digit-letter edges, and punctuation — so mixed input like get_user-ID2Name still splits correctly into get · user · ID · 2 · Name.
- Scan the conversion cards. All sixteen variants render side by side so you can pick the one that fits the target system without retyping.
- Copy with one click. Each card has an inline copy button. Clipboard only — nothing is sent anywhere.
- Convert multi-line blocks. Paste a full list of identifiers on separate lines; each line is converted independently so you can mass-rename a fleet of constants, migrations, or translation keys in one paste.
Which case belongs where?
- camelCase — JavaScript, Java, Swift, and Kotlin locals and methods.
- PascalCase — classes, types, React components, enum members in C# and Go-exported names.
- snake_case — Python, Rust, Ruby locals; SQL column names; most C library APIs.
- SCREAMING_SNAKE_CASE — environment variables, C-style constants, Terraform local values.
- kebab-case — URL slugs, CSS class names, most CLI flags, custom element tags.
- Header-Case — HTTP header names like Content-Type.
- dot.case — feature flag keys, nested config, event names in analytics pipelines.
The tokenizer is Unicode-aware, so accented letters stay intact instead of getting stripped the way an ASCII-only regex would. Everything runs in your browser — no server round-trip, no logging, no rate limits.
// how-to
How to convert text between cases
Paste any text and see it reformatted into every common case convention — camelCase, snake_case, kebab-case, Title Case, SCREAMING_SNAKE, and more. Runs entirely in your browser.
Paste text or identifiers
Paste a variable name, heading, or full sentence. Mixed formats work too — camelCase, acronym runs like XMLHttpRequest, digits, and punctuation are all split correctly.
Scan the conversion cards
All sixteen case variants render side-by-side so you can compare them at a glance without re-running the conversion.
Copy the one you need
Click the copy button on any card. The output is placed on your clipboard; nothing is uploaded.
Batch-convert multiple lines
Paste a list of identifiers on separate lines. Each line is tokenized and converted independently so you can mass-rename keys, constants, or migrations.
// faq
- ? Does the tool handle acronyms like XMLHttpRequest correctly?
- Yes. The tokenizer recognizes consecutive uppercase runs and splits at the last uppercase before a lowercase letter, so XMLHttpRequest becomes XML + Http + Request. Two adjacent acronyms with no lowercase separator (getHTTPURL) cannot be split without a dictionary, so they stay fused — split them manually if that matters.
- ? What is the difference between SCREAMING_SNAKE_CASE and CONSTANT_CASE?
- None — they are aliases. Both are uppercase words joined by underscores. Environment variables, #define constants, and Terraform locals all use this convention.
- ? Why is kebab-case used for URLs and CSS classes?
- Hyphens split naturally at word boundaries in URLs and stylesheets, and they do not collide with underscore-aware identifier parsers. Search engines also treat hyphens as word separators, which helps with slugs.
- ? Is my text sent to a server?
- No. Tokenization and conversion all happen in your browser with no network requests. The tool works offline once the page has loaded.
- ? Does it handle accented characters and emoji?
- Accented letters are preserved because the tokenizer uses Unicode property escapes instead of an ASCII-only regex. Emoji and other non-letter, non-digit characters act as word separators.