100% local — your data never leaves your browser

Case Converter — One Name, Every Convention

Switch text between camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE. Accented and non-Latin letters come through intact.

Instant Private Zero cookies
Case

Text input

Text output

What this tool does

One line in, one line out, in the style you pick.

user profile ID
userProfileId     camelCase
UserProfileId     PascalCase
user_profile_id   snake_case
user-profile-id   kebab-case
USER_PROFILE_ID   CONSTANT_CASE

Every line is converted on its own, so you can paste a whole list of names and get the list back. A line with no letters or digits in it is left exactly as it was.

Accents and other alphabets survive

déjà vu
Größe prüfen
ユーザー 名前
déjàVu
größePrüfen
ユーザー名前

The splitter used to work on ASCII letters only, which made é a separator like a space: déjà vu came out d_j_vu, and the accented letters were simply gone. A line with no ASCII letters at all — ユーザー 名前 — came back untouched, which hid the problem rather than showing it. Words are now found by Unicode letters, and nothing is dropped. That was a real defect, on a site translated into seven languages, found while writing this page and fixed.

Where a word ends

  • At a separator. Spaces, -, _, ., / and anything else that is neither a letter nor a digit.
  • At a capital. userProfile is two words; so is user2Profile, because a digit followed by a capital ends a word too.
  • At the end of an acronym. HTTPServerError is http, server, error — the run of capitals stays together until the last one, which starts the next word.

What it does not do

  • Transliterate. café stays café, Grüße stays grüße. ASCII-folding is a per-language decision, not a case change.
  • Know your language’s keywords. class and for come out as they are; only you know whether the result is going into code that reserves them.
  • Touch numbers. 2fa is one word, and it stays 2fa — no capital can fall on a digit.

Private by design

Everything runs locally in your browser with JavaScript. Your data is never uploaded, which makes the tool safe for sensitive content, and it keeps working offline.

Frequently asked questions

Why were my accented letters disappearing?
Because the word splitter used ASCII letter classes, so `é`, `ñ` and `ü` counted as separators: `déjà vu` came out `d_j_vu` and `Größe prüfen` came out `gr_e_pr_fen`. The letters were deleted, with nothing to say so. The splitter now works on Unicode letters, so `déjà vu` gives `déjàVu` and `ユーザー 名前` gives `ユーザー_名前`. A real defect, found while writing this page and fixed.
How are words found?
By separators and by case. Spaces, dashes, underscores and dots end a word; so does a lowercase letter or a digit followed by a capital. An acronym is kept whole: `HTTPServerError` is three words, `http_server_error`, not `h_t_t_p_server_error`.
Does it strip accents for a URL slug?
No, and that is deliberate. Changing case is not transliterating: `café` stays `café`. Turning it into `cafe` — or `Grösse` into `groesse`, as German would, but not French — is a decision per language, and quietly making it here would give you a word you did not write.

Related converters