caseconvert.pro
Developer naming

camelCase vs PascalCase,
snake_case vs kebab-case

Compare camelCase, PascalCase, snake_case and kebab-case. Learn how to choose a naming format and review acronyms, numbers and converter limits.

Compare the naming styles

The same words can become a variable, a class name, a configuration key, or a URL segment. camelCase and PascalCase join words using capitals; snake_case and kebab-case make boundaries visible with separators. The correct choice depends on the destination’s rules and the surrounding project.

Here are actual CaseConvert.pro results from one input, using the default English setting.

Input: customer account status
FormatConverter resultPattern
camelCasecustomerAccountStatusFirst word lowercase; later word initials uppercase
PascalCaseCustomerAccountStatusEvery word starts with an uppercase letter
snake_casecustomer_account_statusLowercase words separated by underscores
kebab-casecustomer-account-statusLowercase words separated by hyphens
CONSTANT_CASECUSTOMER_ACCOUNT_STATUSUppercase words separated by underscores
dot.casecustomer.account.statusLowercase words separated by periods

PascalCase is also called UpperCamelCase. These names describe a spelling pattern, not a programming language or a guarantee that the result is valid code.

Choose the destination first

Check the language, framework, existing repository, or API contract before converting. A consistent project convention is more useful than switching styles because one looks cleaner in isolation.

  • Python: PEP 8 recommends lowercase words with underscores for functions and variables, CapWords for classes, and uppercase words with underscores for constants. Its guidance also accounts for established interfaces.
  • TypeScript: Google’s TypeScript style guide uses lowerCamelCase for variables and functions, UpperCamelCase for types and classes, and CONSTANT_CASE for global constants. This is a documented house style, not a universal TypeScript requirement.
  • URL segments and filenames: kebab-case provides a visible word separator when the destination expects hyphens. Follow that system’s naming policy. This converter does not validate a complete URL, encode URL characters, or enforce an ASCII-only slug.
  • Configuration keys: preserve the exact spelling required by the receiving system. A dot in dot.case may represent hierarchy in one system and a literal part of a key in another.
Changing an existing name is a code change. Converting a name does not update references, imports, filenames, routes, or external consumers. Use your editor’s rename/refactor tools when changing an identifier that is already in use.

How the converter finds words

The developer modes look for letter and number groups, remove surrounding punctuation, and rebuild the separators. They also split a lowercase-letter-or-number followed by an uppercase letter, and a run of capitals followed by a capital-plus-lowercase word. The resulting pieces are lowercased under the selected language before the chosen pattern is applied.

This lets already formatted input become another naming style. It also means the transformation can change boundaries and remove information.

Actual results: word boundaries and separators
InputModeResult
customerAccountStatussnake_casecustomer_account_status
customer_account-statuscamelCasecustomerAccountStatus
customer.account/statuskebab-casecustomer-account-status
user's profilesnake_caseuser_s_profile
save 🧑‍💻 draftcamelCasesaveDraft

The apostrophe example becomes three pieces: user, s, and profile. The emoji is removed in the developer example. Writing modes such as uppercase and lowercase preserve these separators instead. Keep your original visible and review the intended words before copying.

Acronyms and numbers need review

Acronyms introduce a choice: a team might write a name with an uppercase abbreviation, while another treats the abbreviation as an ordinary word. Google’s TypeScript guide, for example, recommends treating acronyms as words except where a platform’s established name requires otherwise. CaseConvert.pro applies its own fixed boundary rules; it does not select a project’s house style.

Actual results using English
InputModeResult
HTTP response codecamelCasehttpResponseCode
XMLHttpRequestsnake_casexml_http_request
userIDPascalCaseUserId
version2Valuesnake_caseversion2_value
HTTP2ResponsecamelCasehttp2Response

Digits stay with their token unless another recognized boundary separates them. A number does not automatically start a new word. Check abbreviations such as IDs, HTTP, and product versions against the destination’s convention, especially when the source mixes several capital runs.

A naming format does not validate an identifier

The converter does not check reserved words, leading digits, duplicate names, language syntax, or filesystem restrictions. A neat-looking result can still be unusable in its destination.

Formatting results that still need a destination check
InputModeResult
2026 reportcamelCase2026Report
classcamelCaseclass
user namekebab-caseuser-name

A JavaScript variable name cannot begin with a digit. A reserved word such as class cannot be used as an ordinary variable declaration, although property-name contexts have different rules. A hyphen in user-name is not a separator inside a single JavaScript variable identifier. See MDN’s identifier rules.

Do not use the workbench to rewrite an entire source file. The parser does not distinguish identifiers from string values, comments, paths, or operators. Convert a selected name, then apply the reviewed change with the tools appropriate to your project.

A practical naming workflow

  1. Identify the required convention. Read nearby names and check the project’s style or interface contract.
  2. Convert one name. Open Case Converter, paste the phrase in Your text, and select a developer mode under More cases.
  3. Check language settings. English is the default. Turkish and German are available; letter mapping can affect identifiers too. See the Unicode and locale guide.
  4. Review the boundaries and validity. Check acronyms, digits, punctuation loss, reserved words, and the actual destination’s accepted characters.
  5. Copy the reviewed result. The app’s Result is read-only. If corrections are needed, make them in your destination editor. Use an editor refactor when replacing an existing code symbol.

All naming modes operate on the original editor text. Switching modes does not repeatedly convert the last result. The manual’s quick start explains source/result behavior and the available copy and download actions.

Practice with an acronym and a number

One phrase, two naming styles

Input: API response status. What do camelCase and CONSTANT_CASE produce?

Show the answer

camelCase: apiResponseStatus. CONSTANT_CASE: API_RESPONSE_STATUS. Check whether these spellings match your project.

A leading number

Input: 3 user roles. Will choosing snake_case guarantee a valid JavaScript variable name?

Show the answer

No. The converter produces 3_user_roles. The leading digit still prevents this from being an ordinary JavaScript variable identifier. Choose a valid name in your code editor.

Sources and further reading

Examples are original and were checked against CaseConvert.pro’s conversion engine on October 10, 2026. Code conventions are attributed to the sources that define them; they are not built-in validation presets.

Put the examples to work

Keep the original, choose a mode, and review the result before using it.

Open Case Converter Read the manual