Free Tool

Case
Converter

Convert text between UPPERCASE, lowercase, Title Case, camelCase, snake_case, and more.

Characters: 0Words: 0

How It Works

Step 01

Enter Text

Type or paste the text you want to convert.

Step 02

Pick a Case

Choose from 9 case styles including camelCase and snake_case.

Step 03

Copy

Copy the converted text to your clipboard instantly.

Convert text case online between UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE. ConverterUp's case converter is a fast helper for developers renaming variables, copywriters cleaning headlines, and SEO specialists normalizing slugs. Paste your input, click the format you need, and copy the result with one tap. The text is processed entirely in your browser, so blog drafts, code snippets, and internal product names never leave your device.

Where each case is used

camelCase (userId, fetchUserData) is the JavaScript and TypeScript convention for variables and functions. It is also standard in Java, Swift, Kotlin, and most modern OO languages for local variables and methods.

snake_case (user_id, fetch_user_data) dominates Python (PEP 8), Ruby, Rust, and SQL. It is also the de-facto JSON convention for APIs designed against Python or Rails backends. Snake case wins on long identifiers because underscores create natural word breaks.

kebab-case (user-id, fetch-user-data) is the URL slug convention, the CSS class and custom-property convention, and the HTML attribute convention. It is invalid as an identifier in almost every programming language because the hyphen parses as subtraction.

PascalCase (UserId, FetchUserData) marks types and classes in most languages: classes in JavaScript/TypeScript/Python/Java/C#, structs in Rust and Go (exported only), components in React. CONSTANT_CASE (MAX_RETRIES) is universal for compile-time constants, environment variables, and configuration keys.

Language and framework conventions

Go uses case as visibility: identifiers starting with an uppercase letter are exported (public); lowercase are package-private. User and user are not just style choices — they change the language semantics. This is unique to Go among major languages.

Ruby uses snake_case for methods and variables, PascalCase for classes and modules, and SCREAMING_SNAKE for constants. Rust enforces the same conventions with compiler warnings: non_snake_case and non_upper_case_globals lints fire on style violations.

JSON conventions are not standardized but de-facto split by ecosystem: REST APIs from Python/Rails backends use snake_case keys; APIs from Node/Java backends use camelCase; some legacy Microsoft APIs use PascalCase. Keep a single convention per API and document it.

CSS uses kebab-case for properties (background-color), custom properties (--brand-primary), and class names by convention (.product-card, BEM .product-card__title--featured). HTML uses kebab-case for custom data attributes (data-user-id) but reserves camelCase for ARIA properties accessed in JavaScript (el.dataset.userId).

Programmatic gotchas: acronyms, numbers, transitions

Acronyms are the hardest part of case conversion. Should XMLHttpRequest become x_m_l_http_request or xml_http_request? Most modern style guides recommend the latter, and Google's JavaScript style guide says to treat acronyms as a single word in camelCase: parseHtml, not parseHTML. ConverterUp follows that convention: a run of capitals is treated as one word.

Numbers are also ambiguous. Does html5Parser split as html5 + Parser or html + 5Parser? ConverterUp keeps digits attached to the word they touch, so html5Parser becomes html5_parser in snake_case. Double-check identifiers with numbers in the middle before renaming code.

Word boundaries on already-mixed input are detected at lowercase-to-uppercase transitions (fooBar → foo, Bar), acronym-to-word transitions (HTMLParser → HTML, Parser), and explicit separators (hyphens, underscores and spaces). When converting a mix of conventions, paste once, normalize to a known intermediate (often kebab-case), then convert to the target.

Frequently asked questions

How does Title Case differ from Sentence case?

Title Case capitalizes the first letter of each significant word, like in book titles. Sentence case capitalizes only the first letter of the sentence and proper nouns, which is the standard for body copy.

Does case conversion preserve numbers and punctuation?

Yes. Digits, punctuation, and emoji are kept untouched. The tool only changes letter casing and adjusts separators (underscore, hyphen, dot) when converting to programmer-friendly cases.

Does it handle Portuguese and Spanish accents correctly?

Yes. The converter is fully Unicode-aware, so accented letters such as á, ã, ç, ñ, and ü keep their diacritics and convert their case correctly in either direction.

Is there a maximum text length?

There is no fixed limit; even long documents convert instantly thanks to native browser string APIs.

How are acronyms like XML, HTTP, and ID handled?

A run of capital letters is treated as one word: XMLHttpRequest becomes xmlHttpRequest in camelCase and xml_http_request in snake_case. There is no option to keep acronyms fully uppercase — adjust those by hand if your style guide requires it.

Can I convert a list of names line by line?

UPPERCASE, lowercase, Title Case and Sentence case keep your line breaks, so they work on whole lists. The programmer cases (camelCase, snake_case, kebab-case, PascalCase, CONSTANT_CASE) join all the input into one identifier — convert one name at a time for those.