Case Converter

Type or paste your text and instantly see it in every case style — UPPER, lower, Title, Sentence, camelCase, PascalCase, snake_case, kebab-case and more. Click any result to copy. Runs entirely in your browser.

UPPER CASE
lower case
Title Case
Sentence case
camelCase
PascalCase
snake_case
kebab-case
SCREAMING_SNAKE_CASE
dot.case
aLtErNaTe CaSe
iNVERSE CASE

Case styles explained

StyleExampleCommon use
UPPER CASEHELLO WORLDHeadings, acronyms, emphasis
lower casehello worldBody text, email addresses
Title CaseHello WorldArticle titles, book titles, headings
Sentence caseHello worldNormal prose, UI labels
camelCasehelloWorldJavaScript variables, JSON keys
PascalCaseHelloWorldClasses, components (React, C#)
snake_casehello_worldPython, SQL column names, Ruby
kebab-casehello-worldCSS classes, HTML attributes, URL slugs
SCREAMING_SNAKEHELLO_WORLDConstants (Python, C, shell)
dot.casehello.worldConfig files, package names (Java)

A field guide to text cases

"Case" really describes two different choices at once: which letters are capitalised, and how the boundaries between words are marked. Human prose marks word boundaries with spaces and relies on grammar to decide capitalisation. Programming identifiers cannot contain spaces, so they invent a substitute — a hump (camelCase), an underscore (snake_case), a hyphen (kebab-case) or a dot (dot.case) — and bake the casing rule into the style itself. Almost every named case is just a particular answer to those two questions.

The everyday styles are the ones you already meet in writing. UPPERCASE sets every letter as a capital and is reserved for acronyms, short headings and emphasis; long runs of it read slowly because the uniform letter shapes remove the word-shape cues readers rely on. lowercase is the opposite extreme. Sentence case capitalises only the first letter of the first word (plus proper nouns) and is the natural register for body text, UI labels and most modern headlines. Title Case capitalises the first letter of every significant word and is used for the titles of books, articles and songs — and, as the next section shows, it is far less settled than it looks.

The programming styles split along their separators. camelCase joins words with no separator and lowercases the first word: helloWorld, getUserName. PascalCase (formally UpperCamelCase) is the same but capitalises the very first letter too: HelloWorld, HttpRequest. snake_case joins lowercase words with underscores; when every letter is also capitalised it becomes SCREAMING_SNAKE_CASE (also called CONSTANT_CASE or UPPER_SNAKE_CASE). kebab-case swaps the underscore for a hyphen and is known by an unusual number of aliases — dash-case, spinal-case, lisp-case and caterpillar-case all describe the same thing. Train-Case is its capitalised cousin (Hello-World), and dot.case simply separates with full stops. Finally there are the novelty styles: aLtErNaTiNg CaSe (a.k.a. "studly caps" or "mocking/SpongeBob case") flips between lower and upper on every character, and iNVERSE case swaps whatever case each letter currently has.

CaseAlso known asExampleWhere you meet it
camelCaselower camel case, dromedary caseuserNameJS/Java variables, JSON keys
PascalCaseUpperCamelCaseUserNameClasses, types, React components
snake_casepothole caseuser_namePython, Ruby, Rust, SQL columns
SCREAMING_SNAKECONSTANT_CASE, UPPER_SNAKEMAX_SIZEConstants, environment variables
kebab-casedash, spinal, lisp, caterpillar caseuser-nameCSS classes, URL slugs, HTML attrs
Train-CaseHTTP-Header-CaseUser-NameHTTP headers, some titles
dot.caseuser.nameConfig keys, namespaces

Where each case style is used

Programming languages do not agree on a single convention, and choosing the "right" case is mostly a matter of matching the community your code lives in — linters and code reviewers enforce it for you. Python's official style guide, PEP 8, prescribes snake_case for functions and variables, PascalCase for class names and SCREAMING_SNAKE_CASE for module-level constants. Ruby and Rust follow the same snake-for-values, Pascal-for-types split. The C-family and JavaScript worlds lean on camel case: Java and JavaScript use camelCase for variables and methods and PascalCase for classes; C# capitalises method names as well. Go has its own twist — it uses camel and Pascal case but gives capitalisation a meaning, because an identifier that starts with a capital letter is exported (public) from its package while a lowercase one stays private.

Outside identifiers, the conventions are remarkably consistent. Constants and environment variables are almost universally SCREAMING_SNAKE_CASE (DATABASE_URL, MAX_RETRIES). CSS class names, HTML attributes and URL slugs use kebab-case because hyphens are safe everywhere in those contexts and read as word breaks. SQL tables and columns conventionally use snake_case. And for human-facing text — headlines, navigation labels, button text — the choice is between Sentence case (now favoured by most product and editorial style guides for its readability) and Title Case (still standard for the titles of published works).

Title case is harder than it looks

"Title Case" sounds like one rule, but there is no single authority — and the major style guides genuinely disagree. They agree on the easy parts: every guide capitalises the first word, the major words (nouns, pronouns, verbs, adjectives, adverbs), and lowercases the articles a, an and the when they fall in the middle. They diverge over the small connecting words — prepositions and conjunctions — and that is exactly where a naïve converter gets titles wrong.

The cleanest split is over prepositions. AP (Associated Press) and APA use a length rule: lowercase prepositions and conjunctions of three letters or fewer, but capitalise any word of four letters or more — so AP writes Gone With the Wind, capitalising the four-letter With. Chicago (CMOS) and MLA take the opposite line and lowercase all prepositions regardless of length, giving Gone with the Wind with a lowercase with. The guides also differ on the last word: AP, Chicago and MLA always capitalise the final word of a title, so a trailing preposition is promoted (What to Look For). APA has no last-word rule, so under its length rule the same title ends What to Look for. Coordinating conjunctions (and, but, or, nor, for, so, yet) are lowercased by most guides, though Chicago treats so and yet as capitalised when they act as adverbs. The practical takeaway: a generic "Title Case" button — like the one in this tool — applies one reasonable convention, but if you are writing to a specific style guide you should always proof the small words by hand.

camelCase, snake_case and friends: a short history

The names are much younger than the practices. Joining words with internal capitals — what typographers and the Oxford English Dictionary call medial capitals — is centuries old, appearing in chemical nomenclature and in scribal abbreviation long before computers. It became a standard identifier style in several programming languages in the 1970s, but the catchy name arrived later: the earliest recorded term for the style, "InterCaps", appeared on Usenet in April 1990, and "CamelCase" itself was coined by Newton Love in 1995, who said the "humpiness of the style" first led him to call it HumpyCase. The dot-com boom then spread medial capitals into ordinary brand names — iMac, PowerPoint, YouTube.

The underscore convention is just as old and its name just as new. Underscored identifiers go back to the late 1960s and were cemented by C — they fill The C Programming Language (1978) — but the term snake_case was only popularised around 2004 in the Ruby community, in a Usenet post by Gavin Kistner. kebab-case earns its informal name from the way hyphens "skewer" the words like meat on a kebab stick; the hyphen-as-separator habit itself comes from Lisp, whose identifiers have always allowed hyphens, which is why the style is also called lisp-case. A close relative is Hungarian notation, devised by Charles Simonyi at Microsoft (he had earlier worked at Xerox PARC), which prefixes a variable name with a short lowercase tag for its type or role (strName, iCount). It is called "Hungarian" both as a nod to Simonyi's origin and because, like Hungarian names, it puts the "type" before the "given name".

The Unicode trap: why uppercasing isn't simple

For plain English, changing case is trivial: shift between two parallel 26-letter alphabets. For the rest of the world it is genuinely hard, because case mapping is language-dependent and not always one-to-one. A few well-documented traps catch naïve converters:

  • German ß changes length. The sharp s has historically had no single capital, so the default Unicode uppercase of ß is the two-letter sequence SS — meaning straße uppercases to STRASSE and the text gets longer. A capital eszett (U+1E9E) was added to Unicode in 2008 and admitted to official German orthography in 2017, but because it is still optional, the standard mapping remains SS.
  • The Turkish dotted/dotless i. Turkish has two distinct i's: dotted i/İ and dotless ı/I. Uppercasing a Turkish i must give the dotted capital İ, and lowercasing I must give the dotless ı — the exact opposite of English. Using an English-locale uppercase on Turkish text corrupts it, a famous source of real bugs.
  • Greek final sigma. Lowercase sigma is written ς at the end of a word but σ elsewhere, so correctly lowercasing the Greek for a word requires knowing where the word ends — context a single-character lookup cannot supply.
  • Ligatures and digraphs. The ligature uppercases to two letters, FL. Digraph letters have three forms, not two: lj (lower), LJ (upper) and a distinct title-case form Lj used when only the first letter of a word is capitalised.

The practical lesson is that case conversion does not always round-trip — uppercasing ß to SS and lowercasing back gives ss, not the original — and that a converter aimed at English (like this one) uses the platform's default, locale-neutral mapping. That is correct for English, Western European text and most accented Latin script, but if you are casing Turkish, Azerbaijani or carefully typeset Greek you need a locale-aware tool.

Slugs, identifiers and SEO

When you turn a human title into a URL slug, the conventional target is lowercase kebab-case, and the choice of separator is not cosmetic. Google's long-standing guidance is to use hyphens, not underscores, to separate words in a URL: a search engine reads red-running-shoes as three words but treats red_running_shoes as the single token redrunningshoes, weakening the match. Lowercasing matters too, because URL paths are case-sensitive on many servers, so mixing cases risks duplicate URLs or broken links. A good slug therefore lowercases, replaces spaces and punctuation with single hyphens, strips accents to plain ASCII, and drops the small filler words.

For code identifiers, the equivalent advice is simply to match the convention of the language and codebase you are in, because consistency is what makes names scannable and keeps linters quiet. The case styles are interchangeable in meaning — the same words, just punctuated differently — which is exactly why a converter is useful: paste a column name in snake_case and lift it straight out as the camelCase property your front-end expects, or turn a page title into the kebab-case slug it needs.

Common case-conversion mistakes

  • Mangling acronyms and proper nouns. Blind title-casing lowercases the tail of every word, turning NASA into Nasa, iPhone into Iphone and McDonald into Mcdonald. Intentional capitalisation always needs a human check.
  • Applying the wrong rule book. A title set with AP's length rule looks wrong in a Chicago-styled document and vice versa; pick the guide your publication uses before you batch-convert.
  • Using programmer case in prose (or the reverse). snake_case belongs in code, not in a sentence; Title Case belongs in a heading, not in a variable name.
  • Underscores in URLs. They look tidy but undercut SEO — reach for hyphens.
  • Naïve uppercasing of non-English text, which silently corrupts Turkish, German and Greek (see the Unicode trap above).
  • Losing data on the round trip. Lowercasing text to "normalise" it and then re-capitalising rarely restores the original — once the distinction is gone, it is gone, so keep an untouched copy of anything case-sensitive.

Frequently asked questions

What is Title Case?
Title Case capitalises the first letter of every major word. This tool follows the common convention of capitalising all words except short prepositions (of, in, on, at, to, for, from, with, by, up, as, a, an, the, and, but, or, nor) — unless they appear as the first or last word.
What is the difference between camelCase and PascalCase?
camelCase starts with a lower-case letter (helloWorld) while PascalCase (also called UpperCamelCase) starts with an upper-case letter (HelloWorld). camelCase is common in JavaScript variable names; PascalCase is common for class and component names.
When would I use snake_case vs kebab-case?
snake_case (underscores) is standard in Python variables and constants, and in SQL column names. kebab-case (hyphens) is standard in CSS class names, HTML attributes and URL slugs. JavaScript generally prefers camelCase for variables.
Does this handle Unicode and accented letters?
Yes. Upper/lower conversion uses the JavaScript built-in toUpperCase()/toLowerCase(), which handles accented characters, German ß → SS, and most Unicode scripts correctly. camelCase and snake_case strip non-ASCII and punctuation, keeping only letters, digits and spaces.
Is anything uploaded to a server?
No. All conversion runs in your browser. Your text never leaves your device.

Related tools

और टूल्स देखें

सभी 59 टूल्स देखें →

इस टूल को अपनी साइट पर एम्बेड करें — मुफ़्त

सभी एम्बेड करने योग्य टूल्स →

Case Converter को किसी भी पेज, पोस्ट या टेम्पलेट में जोड़ें। यह हमेशा के लिए मुफ़्त है — कोई साइन-अप नहीं, विजेट के अंदर कोई विज्ञापन नहीं। केवल एक शर्त है: छोटा-सा दृश्यमान एट्रिब्यूशन लिंक बनाए रखें।

विजेट का पूर्वावलोकन करें