Case converter: camelCase, snake_case, kebab-case
Paste a word, a name or a whole list and see it in every case at once. Click a row to copy it. Rename JSON keys and .env names too.
Free from Darnly. Spot a bug in the app you're building? Darnly hands it to Claude Code, Codex or Cursor in one key.Add to Chrome
Type something above to see it in every case.
More free tools
See all 89 tools- JSON to TypeScriptPaste JSON and get TypeScript types and a Zod schema, with optional fields found for you.
- Diff checkerCompare two texts side by side and see every added, removed and changed word. Nothing is uploaded.
- px to rem converterpx to rem and back, live, with the matching Tailwind class and a ruler at real size.
How it works
- Type or paste a word, a phrase or a variable name, like
user profile urlorgetUserName. Every case shows up at once, and the one you pasted is marked. - Click any row to copy it. Have a list? Put one name per line and every row converts each line, so you can copy the whole list in the case you need.
- Need to rename the keys of an API response, or the names in a
.envfile? Switch to “JSON keys” or “.env names”. Values stay exactly as they were.
Questions
What is the difference between camelCase, PascalCase, snake_case and kebab-case?
camelCase joins words and capitalizes each one after the first: userName. PascalCase capitalizes the first word too: UserName. snake_case joins lowercase words with underscores: user_name. kebab-case uses dashes: user-name.
Which case should I use where?
JavaScript and TypeScript use camelCase for variables and PascalCase for components, classes and types. Python, Ruby and most databases (including Supabase and Postgres) use snake_case. CSS classes, file names and URLs use kebab-case. Environment variables use SCREAMING_SNAKE_CASE.
How do I turn snake_case API keys into camelCase?
Switch to “JSON keys”, paste the response and pick camelCase. Every key is renamed, nested ones too, and the values are left alone. If two keys end up with the same name, the tool warns you.
Why is my NEXT_PUBLIC_ variable flagged?
Anything starting with NEXT_PUBLIC_, VITE_ or EXPO_PUBLIC_ is built into the code that runs in every visitor’s browser. Secret keys, passwords and database URLs must never get that prefix. Keep them server-side only.
How are words split?
At spaces, underscores, dashes, dots and other symbols, and where a capital letter starts a new word, so getHTTPResponse becomes get, HTTP, Response. In sentences with spaces, Title case and Sentence case keep words like OpenAI and iPhone as they are.
Is anything uploaded?
No. Everything runs in your browser.