The programmer cases, and where each lives
camelCase — first word lowercase, later words capitalized, no separators: userLoginCount. The convention for variables and functions in JavaScript, Java, and Swift. PascalCase — same but with the first word also capitalized: UserLoginCount. Class and type names in almost every language, and components in React. snake_case — lowercase with underscores: Python and Ruby variables/functions, SQL columns, most config keys. SCREAMING_SNAKE_CASE — the constants convention nearly everywhere: MAX_RETRY_LIMIT. kebab-case — lowercase with hyphens: user-login-count. CSS class names, HTML attributes, CLI flags, and URL slugs (hyphens can’t appear in most languages’ identifiers, which is why code never uses it and URLs always do — see the Slug Generator for the URL-specific rules).
Converting between these is where most tools fail: turning parseHTTPResponse2 into snake case requires recognizing the camel boundary (parse|Response), the acronym run (HTTP stays one word), and the letter–digit seam (Response|2). This converter splits on all three, so you get parse_http_response_2, not parse_h_t_t_p_response2.
Sentence case for writing
Sentence case capitalizes the first letter of each sentence and lowercases the rest — the style most publications now use for headlines, and what you want when un-shouting an ALL-CAPS paragraph. The naive version breaks on abbreviations: “Meet Dr. Smith” becomes “Meet dr. smith. Tomorrow…” with a false sentence break after “Dr.”. This converter carries a list of common abbreviations (Dr., Mr., Mrs., Prof., St., vs., e.g., i.e., etc., approx., Inc., Ltd., Jr., Sr., No., U.S., U.K.) and won’t treat their periods as sentence ends — and it preserves the pronoun “I”.
Smart Title Case
Real title case is not “Capitalize Every Word”: the major style guides lowercase minor words — short articles, conjunctions, and prepositions like a, an, the, and, but, or, nor, for, at, by, in, of, on, to, up, as, vs., via — unless they’re the first or last word. The toggle above switches between that rule set and capitalize-everything (which some contexts, like some CMS fields, expect). Style guides differ on prepositions of four-plus letters; this tool lowercases only the short ones, the most widely shared subset.
Case rules at a glance
| Case | Example | Separator | Typical home |
|---|---|---|---|
| UPPERCASE | USER LOGIN COUNT | space | Emphasis, legacy constants |
| lowercase | user login count | space | Normalizing text |
| Title Case | User Login Count | space | Headlines, book titles |
| Sentence case | User login count | space | Modern headlines, UI copy |
| camelCase | userLoginCount | none | JS/Java variables |
| PascalCase | UserLoginCount | none | Class & type names |
| snake_case | user_login_count | _ | Python, SQL |
| SCREAMING_SNAKE | USER_LOGIN_COUNT | _ | Constants |
| kebab-case | user-login-count | - | CSS, URLs, CLI flags |
Frequently asked questions
camelCase vs. PascalCase — what’s the actual difference?
Only the first letter: camelCase starts lowercase (userName), PascalCase starts uppercase (UserName). The distinction carries meaning in most codebases — lowercase-first for variables and functions, uppercase-first for classes and types — so “which one” is answered by what you’re naming, not preference.
Which case should I use for URLs?
kebab-case: lowercase words joined by hyphens. Search engines treat hyphens as word separators but treat underscores as word joiners, and mixed case in URLs invites duplicate-content problems since paths can be case-sensitive. The Slug Generator handles the full URL-slug pipeline — transliteration, stopwords, length trimming — beyond just the case.
How are acronyms handled when converting from camelCase?
A run of capitals is kept as one word, with the last capital starting the next word when followed by lowercase: parseHTTPResponse splits as parse · HTTP · Response. Going back to camelCase renders acronyms as normal words (parseHttpResponse) — the style most modern guides recommend precisely because it round-trips cleanly.
Is my text uploaded anywhere?
No — every conversion runs in your browser tab with no server or network request, and the page works offline once loaded.