Tools

Case converter

Convert any text or identifier between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, and plain lower/UPPER case. Paste a variable name, a heading, or a whole phrase, and the converter tokenizes it robustly, splitting on spaces, hyphens, underscores, and camelCase boundaries, then re-emits every case in a copyable row. It all runs in your browser; your text is never uploaded.

Type or paste any identifier, phrase, or heading. Conversions update live below. Everything runs in your browser. Nothing is uploaded.

Waiting for input

Conversions

Nine cases, generated from the same tokenized words. Copy any row.

camelCase

myVariableName

—

PascalCase

MyVariableName

—

snake_case

my_variable_name

—

kebab-case

my-variable-name

—

CONSTANT_CASE

MY_VARIABLE_NAME

—

Title Case

My Variable Name

—

Sentence case

My variable name

—

lower case

my variable name

—

UPPER CASE

MY VARIABLE NAME

—

One tokenizer, every naming convention

Renaming things is a surprisingly large part of writing software. A value born as a JSON key in snake_case becomes a camelCase field in TypeScript, a PascalCase component name, a kebab-case CSS class, and a CONSTANT_CASE environment variable, often all in the same feature. Retyping each spelling by hand is where subtle typos creep in.

This converter solves the tokenization once. It normalizes your input into a list of words (handling separators and camelCase or acronym boundaries), then re-emits those same words in every convention. Because each case is generated from the identical word list, a round-trip like getUserID → get_user_id → GetUserId stays consistent.

Everything happens client-side with standard Web APIs. There are no network calls, no dependencies loaded from a CDN, and your text never leaves the page, so it is safe to use with internal identifiers, feature names, and anything else you would rather not paste into a server somewhere.

Frequently asked questions

How does the converter split my text into words?

It tokenizes on spaces, hyphens, underscores, dots and slashes, and also breaks camelCase and PascalCase boundaries, so "getUserID", "get_user_id" and "get-user-id" all resolve to the same three words. Acronym runs like "HTTPServer" split into "HTTP" and "Server", and numbers are treated as their own tokens.

What is the difference between camelCase, PascalCase, snake_case and kebab-case?

camelCase joins words with no separators and lowercases the first word (myVariableName), which is common for JavaScript variables. PascalCase capitalizes every word (MyVariableName) and is used for classes and React components. snake_case joins lowercase words with underscores (my_variable_name), which is common in Python and SQL. kebab-case uses hyphens (my-variable-name) and is used for CSS classes, URLs, and file names.

When should I use CONSTANT_CASE?

CONSTANT_CASE (also called SCREAMING_SNAKE_CASE) uppercases every word and joins with underscores. It is the convention for constants and environment variables, for example MAX_RETRY_COUNT or DATABASE_URL.

Does my text get uploaded anywhere?

No. The entire conversion runs locally in your browser with plain Web APIs. There are no network requests, no analytics on your input, and nothing is stored. You can disconnect from the internet and it still works.

Does it handle Unicode and accented characters?

Yes. Tokenization and capitalization are Unicode-aware, so accented letters and non-Latin scripts are preserved and cased correctly where an uppercase/lowercase form exists.

Is there a limit on how much text I can convert?

The tool caps input at 50,000 characters and 20,000 words so a very large paste can never freeze the tab. If you exceed either limit, the output is truncated and an inline notice explains what happened.