camelCase Converter
Use the CaseSwitch camelCase Converter to turn a phrase, snake_case column, or kebab-case slug into a JavaScript-style identifier (userProfileId). Paste one name or a list, review acronyms, and copy the result. Conversion runs in this browser.
Written by the CaseSwitch editorial team. We maintain these tools in the browser so drafts, keys, and images stay on your device.
Last reviewed: 30 August 2026
Processed locally in your browser. Nothing is sent to a server.
Paste or type text to convert. Output stays empty until there is input.
Character count: 0 · Word count: 0 · Line count: 0
Examples
Phrase to camelCase
Input
user profile image
Output
userProfileImage
From snake_case
Input
user_profile_image
Output
userProfileImage
From kebab-case
Input
user-profile-image
Output
userProfileImage
Dotted path
Input
user.profile.id
Output
userProfileId
Existing PascalCase / camelCase split
Input
XMLHttpRequest
Output
xmlHttpRequest
Punctuation that is not a separator stays
Input
user profile!
Output
userProfile!
How to use
- Paste a phrase, snake_case name, kebab-case slug, or dotted path.
- Check acronyms (ID, URL, HTML) and any leftover punctuation on the output.
- Copy the camelCase identifier. For a list, convert one name per line.
What this tool is for
camelCase joins words without spaces: the first word stays lowercase and each following word starts with a capital (userProfileId). It is the default for JavaScript variables, JSON keys in many APIs, and Java methods. This converter exists so you can turn a readable phrase or a snake_case column into a legal-looking identifier without hand-editing fifty fields. It is a case/separator transform, not a refactor that updates call sites.
How it works
Word boundaries come from spaces, hyphens, underscores, and dots, and from camelCase / PascalCase shifts already in the input (a lowercase or digit letter followed by a capital, or an acronym followed by a capital-then-lowercase run). The first segment is lowercased; later segments are capitalized and concatenated. Punctuation that is not a separator stays attached to the segment, so “user profile!” becomes userProfile! — the exclamation mark is not stripped. Identifiers can start with a digit if the first segment does (2faToken).
When to use it
Migrating SQL columns to a Node API, turning spreadsheet headers into TypeScript property names, renaming CSS modules that a linter wants in camelCase, and converting a design-doc phrase into a variable name. Paste a list, one identifier per line, for bulk work, then review acronyms before you commit.
When not to use it
Do not camelCase URL paths — search engines and humans expect kebab-case slugs. Do not camelCase Python functions (PEP 8 wants snake_case). Do not use it as a substitute for a real rename that updates call sites. Do not paste a whole source file; comments and strings will be mashed into identifier-shaped noise.
How it compares to related tools
PascalCase capitalizes the first letter too (UserProfile) and is for classes and React components. snake_case uses underscores for Python and SQL. kebab-case uses hyphens for URLs and CSS. The Slug Generator is stricter about punctuation for public paths. Pick the convention of the layer you are targeting. Longer background: What is camelCase? and Developer naming conventions.
Common mistakes
Leaving acronyms as XMLHttpRequest vs xmlHttpRequest inconsistently — this converter turns XMLHttpRequest into xmlHttpRequest. Converting a whole file of comments. Creating identifiers that start with a digit after splitting. Assuming “!” and “@” are dropped; only space, _, -, and . are separators.
camelCase vs PascalCase vs snake_case vs kebab-case
Use camelCase for JavaScript/TypeScript variables, function names, and most JSON keys (userId, isActive). Use PascalCase for types, classes, and React components (UserAvatar — lowercase names are treated as HTML tags). Use snake_case for Python functions and SQL columns. Use kebab-case for URLs and global CSS. Mixing them in one layer (a JSON API that is half snake_case) is what this converter is for: pick the target layer and convert the names, then version the API if clients already depend on the old keys.
Frequently asked questions
Is camelCase the same as mixed case?+
People say “mixed case” loosely. camelCase specifically means lowercase first word, capitals on the rest, no separators. PascalCase is the sibling that caps the first letter too.
How do you handle acronyms like ID and URL?+
This converter treats them as ordinary letters unless they are already separated. XMLHttpRequest becomes xmlHttpRequest. Many style guides prefer userId over userID. Check your linter after converting.
Can I convert snake_case to camelCase in bulk?+
Paste a list, one identifier per line, and convert. Review names that contain digits or irregular acronyms before committing.
Does this strip punctuation?+
Spaces, underscores, hyphens, and dots are treated as word breaks and removed as separators. Other punctuation stays attached to the adjacent word.
Should JSON keys be camelCase?+
Many JavaScript APIs use camelCase keys. Some Python and Rails APIs use snake_case. Match the existing API; do not convert a public contract without a version bump.
Is my code uploaded?+
CamelCase conversion stays on-device after the page loads. Avoid pasting live API keys or production secrets into any browser UI you might screenshot.
Does this tool send my payload to CaseSwitch?+
No. Formatting, encoding, and naming conversions for this page run in your browser after load — your sample stays on the device.
Related guides
Read our original articles on this topic.
Developer
What Is camelCase? A Developer's Guide
camelCase joins words without spaces or underscores. See how it works in JavaScript, JSON, and API fields — and how it differs from PascalCase and snake_case.
Developer
The Complete Guide to Developer Naming Conventions
camelCase, PascalCase, snake_case, kebab-case, and dot.case — when to use each style, with examples for JavaScript, Python, URLs, databases, and APIs.
Related tools
PascalCase Converter
Naming React components and matching file names to their default export, generating TypeScript interfaces from a design-doc phrase list, turning SQL or API field labels into C# or Java class names, and converting a kebab-case or snake_case token into a type name. Paste one identifier per line for bulk work, then review acronyms before you commit.
snake_case Converter
Aligning a Node or TypeScript mapper with PostgreSQL column names, generating Python method names from a product spec, turning spreadsheet headers into database fields, and preparing keys that will later become environment-style constants (then uppercasing). Paste one identifier per line for bulk work.
kebab-case Converter
CSS class names and BEM blocks, REST path segments, data-testid values, design-token names that a style guide wants dashed, and a first-pass convert from camelCase props into a URL-ish token. Paste one name per line for bulk work.
dot.case Converter
Building i18n keys, namespacing telemetry events, matching a config schema that already uses dotted paths, and turning spreadsheet headers into lodash-style accessor strings. Paste one identifier per line for bulk work, then shorten overly deep keys by hand.
Slug Generator
Blog posts, documentation pages, product listing URLs, knowledge-base articles, and CMS permalink fields when you have a working title and need a path before publish. Also useful for turning a noisy marketing headline into a short candidate slug you can still edit by hand.