Skip to content
DevTools

Case Converter

text → text

Switch text between camelCase, snake_case, kebab-case and five more.

input

Each line is converted on its own, so a pasted column of field names comes back as a column. Acronyms survive: parseHTTPResponse becomes parse_http_response, not parse_h_t_t_p_response.

About Case Converter

Paste an identifier or a phrase and see it in every convention at once — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, slug-case, Title Case, sentence case, and plain upper and lower. There is no target to choose first; you copy whichever line you needed.

The part that is easy to get wrong is splitting the input back into words, and it is done properly here. An existing camelCase boundary is respected, and a run of capitals is treated as one acronym: parseHTTPResponse becomes parse / HTTP / Response, so the snake_case output is parse_http_response rather than parse_h_t_t_p_response. Each line is handled independently too, so pasting a column of column names gives you back a column.

slug-case is the one that does more than rejoin words: it also transliterates letters that cannot survive a URL, so "Straße" becomes "strasse" rather than losing a character.

Common questions

What is the difference between kebab-case and slug-case here?
kebab-case only changes the separators, so "Café Menu" stays "café-menu". slug-case also transliterates, giving "cafe-menu". Both are valid in a modern URL; only one is what people expect to see in one.
Which convention should I use where?
Broadly: camelCase for JavaScript and Java variables, PascalCase for types and classes, snake_case for Python, Ruby and SQL columns, CONSTANT_CASE for constants and environment variables, kebab-case for CSS classes, filenames and URL paths.
Can it convert a whole list at once?
Yes — paste as many lines as you like and each is converted separately. This is the usual reason to reach for the tool: renaming a set of API fields from snake_case to camelCase in one go.
What happens to numbers and punctuation?
Digits are kept and treated as part of the word they touch, so "user2Name" splits as user2 / Name. Punctuation is treated as a word separator and does not survive into the output, except in Title and sentence case where spacing is the separator anyway.

This page does the work itself, in this tab. Nothing you paste is sent to a server. Close the tab and no copy remains.