Case Converter

Convert text to upper, lower, title, sentence, camel & more.

Runs entirely in your browser. Nothing you type is sent to a server.

0

Words

0

Characters

0

No spaces

Result

Your converted text will appear here.

Paste any text and this case converter rewrites it into every common convention: UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, and inverted case. All ten transforms run locally in JavaScript using Unicode-aware string methods, so the text never leaves your device. It's built for developers renaming variables between languages, writers cleaning up headings pasted from a PDF, and marketers converting product names between logo styles and URL slugs — with one-click copy for each output.

About the Case Converter

Transform any block of text into the case style you need — UPPERCASE, lowercase, Title Case, Sentence case, camelCase, or aLtErNaTiNg case — instantly. Paste your text, click a button, and copy the result. Everything runs in your browser; nothing is uploaded.

How to use the Case Converter

  1. 1Paste or type your text into the editor.
  2. 2Click one of the case buttons to transform your text.
  3. 3Review the live result and the word and character counts.
  4. 4Hit “Copy” to grab the converted text for your document.

Why use our Case Converter

  • Six case styles

    UPPERCASE, lowercase, Title Case, Sentence case, camelCase, and alternating case.

  • Live word & character count

    See length stats update instantly as you edit and convert.

  • One-click copy

    Copy your converted text to the clipboard with a single click.

  • 100% browser-based

    Your text never leaves your device — no servers, no tracking.

How the transforms work

UPPERCASE and lowercase call the JavaScript String.prototype.toUpperCase() and toLowerCase() methods, which are Unicode-aware for most scripts. Title Case splits on whitespace and capitalises the first letter of each token. Sentence case lowercases everything then capitalises the first letter after each sentence terminator (. ? !). camelCase and PascalCase strip delimiters, split into words, and rejoin with uppercase word starts — the only difference is whether the first word is capitalised. snake_case, kebab-case, and CONSTANT_CASE detect word boundaries (a lowercase letter followed by an uppercase letter, a letter followed by a digit, or whitespace and punctuation) and rejoin with _, -, or _ plus UPPERCASE. Non-ASCII characters — accented Latin, Cyrillic, Greek, CJK ideographs — pass through unchanged where a script has no notion of case.

When each style is used

Language and framework conventions determine which case fits where. Getting them right matters because linters (ESLint, Pylint, Rubocop, Rustfmt) will flag mismatches, and API contracts often depend on exact field naming. camelCase is the JavaScript, Java, Swift, and Kotlin default for variables and methods. PascalCase is used for classes and types in most languages and for React and Vue component names. snake_case dominates Python variables, Rust variables, Ruby methods, and SQL column names. SCREAMING_SNAKE_CASE is used for constants in almost every language and for environment variables in Unix shells. kebab-case is used in URLs, CSS class names, HTML attributes, and npm package names. Title Case appears in headings, book titles, and product names; sentence case is preferred in UI copy by Material Design and Apple's Human Interface Guidelines.

Common mistakes and limitations

Acronyms are the classic problem. Different style guides disagree on whether it's parseUrl or parseURL, XMLHttpRequest or XmlHttpRequest — Google's JavaScript style guide recommends treating acronyms as single words (parseUrl) while the Microsoft .NET guidelines keep uppercase for two-letter acronyms (parseUrlOK) and title-case for longer ones. This tool follows the single-word convention. Title Case rules also vary by style guide: AP capitalises words of four or more letters; Chicago capitalises all words except articles and short prepositions; MLA is different again. The tool uses a simple every-word rule. Locale-specific casing (Turkish dotted/dotless I, German ß) requires toLocaleUpperCase, which JavaScript supports but the results can surprise users. Finally, converting a phrase like "HTML5 parser" to snake_case will produce html5_parser or html_5_parser depending on how you treat digit boundaries.

Naming conventions and where each is used

StyleExampleCommon in
camelCaseuserNameJavaScript, Java, Swift, Kotlin variables
PascalCaseUserNameC# / TypeScript classes, React components
snake_caseuser_namePython, Rust variables; SQL columns
SCREAMING_SNAKE_CASEUSER_NAMEConstants; environment variables
kebab-caseuser-nameURLs, CSS classes, HTML attributes, npm
Title CaseUser NameHeadings, book and product titles
Sentence caseUser nameUI copy (Material, Apple HIG), form labels
UPPERCASEUSER NAMEAcronyms, legal notices, callout labels
lowercaseuser nameCasual copy, some minimalist brand styles
dot.caseuser.nameNamespaces, Java packages, config keys

Frequently asked questions

What's the difference between Title Case and Sentence case?+

Title Case capitalises every significant word ("The Quick Brown Fox"); Sentence case capitalises only the first word and proper nouns ("The quick brown fox"). Product interfaces from Google, Apple, and Atlassian generally use Sentence case because it reads more naturally.

How is camelCase different from PascalCase?+

camelCase starts with a lowercase letter — userName. PascalCase (also called UpperCamelCase) starts with an uppercase letter — UserName. Most languages use camelCase for variables and methods and PascalCase for classes and types.

Why do some acronyms come out wrong?+

Because style guides disagree. Google's JavaScript style says treat acronyms as one word (parseUrl); Microsoft's .NET guidelines keep two-letter acronyms uppercase (parseIO) and title-case longer ones (parseXml). This tool uses the single-word rule; adjust manually if your codebase differs.

What separator does snake_case use?+

An underscore between lowercase words: user_login_count. When the same style uses uppercase letters (USER_LOGIN_COUNT) it's called SCREAMING_SNAKE_CASE or CONSTANT_CASE and is used for constants and environment variables.

Is kebab-case valid in JavaScript?+

Not as an identifier — JavaScript variable and property names can't contain hyphens (foo-bar is parsed as subtraction). kebab-case is used in JavaScript for CSS class names, HTML attributes, URL paths, and package.json names.

How does the tool handle accents and non-Latin scripts?+

Accented Latin characters (é, ñ, ü) round-trip through case changes correctly because JavaScript's toUpperCase and toLowerCase are Unicode-aware. Scripts without a case distinction — CJK, Arabic, Hebrew — pass through unchanged.

What happens to numbers in camelCase?+

Digits stay attached to the preceding word by default: html5Parser stays html5Parser. If you type html 5 parser with spaces, the tool will output html5Parser (digit fused to the prior word) or html5parser depending on the exact style rule you pick.

Is there a length limit?+

No hard limit. The transforms are linear in string length and run in the browser, so books-worth of text (500,000+ characters) convert in well under a second on any modern device.

Does the tool preserve line breaks?+

Yes — line breaks are preserved for UPPERCASE, lowercase, Title Case, and Sentence case. camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE strip whitespace by definition, so line breaks are removed in those modes.

Is my text uploaded anywhere?+

No. Every transform runs in the browser tab you have open. Nothing is sent to a server, stored in a cookie, or logged.

Last updated: