Case Converter

Switch text between UPPER, lower, Title, Sentence, camelCase, snake_case and kebab-case. Paste text, pick a mode and copy the result.

Last updated: 11 Nov 2026 Read time: 4 min Category: Text Tools Runs locally in your browser
Ad placement (top)

What a Case Converter Is

A case converter transforms the pattern of uppercase and lowercase letters in a string without changing the letters themselves. Modern writing uses many conventions: titles in a book look different from identifiers in source code, and URL slugs look different from database column names. A converter saves time by running the conversion rules once rather than editing letter by letter.

The nine most common cases are UPPER CASE, lower case, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case and CONSTANT_CASE. Each one evolved for a specific need. UPPER CASE was used by telegraph operators and remains a shorthand for emphasis. CamelCase was coined by Smalltalk and C programmers in the 1970s who needed identifiers without separators. kebab-case rose with the web because hyphens are safe in URLs.

Choosing the right case is partly about style, but also about compatibility. SQL identifiers, HTML attributes, JSON keys, environment variables and file names each have conventions your team or framework expects. A converter lets you comply quickly.

How It Works

The tool detects word boundaries using whitespace, punctuation and transitions between lower and upper letters. It then rebuilds the string with the separator or capitalisation pattern you selected. For example, the phrase user profile settings becomes userProfileSettings in camelCase, user_profile_settings in snake_case, user-profile-settings in kebab-case and UserProfileSettings in PascalCase. CONSTANT_CASE uppercases the snake form, often used for environment variables.

A worked example: typing XMLHttpRequest into the input and clicking snake_case gives x_m_l_http_request with a naive algorithm, which is why acronym handling is a frequent edge case. Many converters will instead produce xml_http_request if they detect the acronym as a single token, matching Google style.

How to Use This Tool

  1. Paste your text into the Input Text box.
  2. Click the button for the target case: UPPER, lower, Title, Sentence, camel, snake or kebab.
  3. Review the output in the Result box.
  4. Click Copy Result to send it to your clipboard.
  5. Use Clear to start over if you want to try a different mode.

Common Use Cases

  • Renaming source files: Convert PascalCase component names to kebab-case for file system use.
  • API migration: Convert snake_case JSON keys from a Python backend to camelCase for a JavaScript frontend.
  • Database column renames: Standardise mixed naming into clean snake_case.
  • URL slug generation: Turn an article title into a kebab-case slug for SEO friendly URLs.
  • Environment variables: Convert camelCase config keys to CONSTANT_CASE for shell exports.
  • Marketing copy: Enforce Title Case headlines across a long landing page.

Common Mistakes

  • Converting CONSTANTS or language keywords that should stay uppercase.
  • Breaking acronyms by capitalising each letter separately.
  • Losing numbers at the start of an identifier, which most languages forbid as an identifier start.
  • Stripping punctuation that was meaningful, such as a dot in a file extension.
  • Forgetting that some locales, notably Turkish and Azerbaijani, have special rules for the letter I.

Unicode Edge Cases

Case mapping is defined by the Unicode standard, not by ASCII. Most letters have a one-to-one lowercase and uppercase mapping, but a few are famous exceptions. The German sharp S ess-tsett lowercase has an uppercase equivalent added in Unicode 5.1, but legacy software still converts it to SS. The Turkish dotted and dotless I are a classic locale-sensitive case: the lowercase of English I should be i, but in Turkish locale it is a dotless i. Browsers follow the default case mapping, so Turkish-locale casing requires explicit locale parameters in the calling code.

Non-cased scripts such as Arabic, Chinese and Hebrew are left unchanged by case transforms. They have no concept of upper and lower letters, and a converter simply passes them through intact alongside any Latin letters you mix in.

Important Do not blindly lowercase identifiers or constants that your codebase depends on. API keys, environment variable names and SQL keywords that happen to look like words can break when their case changes. Preview the output before pasting it back into source files.

Privacy

All transformations happen in your browser using local JavaScript. Nothing is uploaded, so you can safely convert confidential strings including draft API keys or internal naming lists.

Frequently Asked Questions

Which case should I use for variable names?

It depends on the language. JavaScript and Java use camelCase, Python and Ruby use snake_case, Go uses PascalCase for exported names, SQL columns usually use snake_case, and CSS classes and URLs use kebab-case.

What exactly is camelCase?

camelCase is written with a lowercase first letter and an uppercase letter at the start of each subsequent word, with no spaces or punctuation. For example, firstName or getUserProfile.

Does the converter handle the Turkish dotted I correctly?

Browsers follow the Unicode default case mapping, which converts lowercase i to uppercase I. In Turkish, the correct upper of i is a dotted capital I. If you need Turkish locale casing you must apply it in your own text pipeline.

How are acronyms handled in camelCase and PascalCase?

Simple word boundary tools will usually treat an acronym like URL as three letters. Google and Microsoft style guides recommend writing acronyms with only the first letter uppercase in camelCase, for example parseXmlFile instead of parseXMLFile.

Can I use this to convert file names?

Yes. Paste the file name, pick kebab-case or snake_case and copy the result. Note that the tool does not rename files on disk, it only transforms the text.

Can I bulk convert many lines at once?

Yes. Paste all lines into the input area and the converter runs over the full block. Each line keeps its line break and is transformed independently of the others.

Is my text sent anywhere?

No. The conversion runs locally in your browser and no network request is made with your text.