Text Case Converter

camelCase, snake_case & More

Convert text to camelCase, PascalCase, snake_case, kebab-case, Title Case, and more. Live browser conversion with one-click copy—free online, no signup.

This conversion runs only in your browser — nothing is uploaded.

  • Characters0
  • Words0

Input

  • camelCase

  • PascalCase

  • snake_case

  • kebab-case

  • UPPER CASE

  • lower case

  • Title Case

  • Sentence case

What is this tool?

This text case converter turns a phrase, label, or identifier into eight naming styles at once: camelCase, PascalCase, snake_case, kebab-case, UPPER CASE, lower case, Title Case, and Sentence case.

It splits on whitespace, hyphens, underscores, and capital-letter boundaries, then strips non-alphanumeric characters from each token. That is handy for moving between human labels and code identifiers, but it can split acronyms (APIa, p, i) more aggressively than a human editor would.

Use it during refactors, schema design, CSS naming, file naming, API field mapping, and documentation cleanup.

Common use cases

  • Rename a variable or JSON field across camelCase / snake_case / kebab-case in one paste
  • Normalize a heading into Title Case or Sentence case for docs
  • Preview how a mixed identifier (getUserAPI) will expand before committing a rename

How to use

  1. Paste a phrase, heading, or identifier. Results update as you type.
  2. Use Sample to see space/underscore splits and consecutive-capital boundaries.
  3. Copy one case row, or Copy all labeled lines from the toolbar.
  4. Manually fix acronyms and non-ASCII letters—automated casing is not locale-aware.

Examples

InputcamelCasesnake_casekebab-caseNotes
hello worldhelloWorldhello_worldhello-worldCommon developer naming set.
api response idapiResponseIdapi_response_idapi-response-idSpaced words keep acronyms together.
getUserAPI Response — hello_worldgetUserAPIResponseHelloWorldget_user_a_p_i_response_hello_worldget-user-a-p-i-response-hello-worldSample: API splits to a/p/i.
İstanbulstanbulstanbulstanbulNon A–Z letters can be stripped; not Turkish locale casing.

Also generated for the same input: PascalCase, UPPER CASE, lower case, Title Case, and Sentence case.

Practical pitfalls

  • Locale lower/upper is not applied. Default JS casing plus an A–Z/a–z/0–9 filter means Turkish İ/ı, German ß, and many non-Latin letters are dropped or mishandled—use ASCII for code identifiers.
  • Consecutive capitals (HTTP, API) become single-letter tokens; prefer spaced input when you care about acronyms.
  • Punctuation and em dashes are removed during tokenization, so Hello—World may collapse differently than Hello World.

References

Last reviewed: 2026-07-27

Frequently asked questions

Which case styles are generated?
Eight at once: camelCase, PascalCase, snake_case, kebab-case, UPPER CASE, lower case, Title Case, and Sentence case. Copy one row or all labeled lines.
How are words detected?
Input is split on spaces, hyphens, underscores, and boundaries before capital letters (A–Z). Non-alphanumeric characters are stripped from each token.
Why does API become a_p_i in snake_case?
Consecutive capitals are treated as separate word boundaries, so API splits into a, p, and i. Paste spaced words (api response) when you need to keep acronyms intact.
Are lower/upper locale-aware (Turkish İ, German ß)?
No. The tool uses default JavaScript casing and keeps only A–Z/a–z/0–9 tokens, so locale-specific letters may be stripped or mapped incorrectly. Prefer ASCII identifiers for code naming.
Is text uploaded?
No. Conversion runs only in your browser.