A junior developer renames a variable from userName to UserName during a "quick cleanup" commit, and suddenly three files won't compile. Nothing about the logic changed — only the case. Text casing looks cosmetic until it collides with a naming convention a language actually enforces, and this tool exists for exactly that collision.
The Main Text Case Types
UPPERCASE: every letter capitalized — used for acronyms, emphasis, or headings in certain style guides. lowercase: nothing capitalized — the default for URLs, email addresses, and most prose. Title Case: major words capitalized — article and book titles, headings. Sentence case: only the first word capitalized — standard body text, email subjects, most everyday writing. Mixed cases: camelCase, PascalCase, snake_case, kebab-case — almost exclusively a programming concern.
Title Case Rules (They're More Complex Than You Think)
True title case follows specific rules about which words get capitalized. Always capitalize: the first and last word, plus nouns, pronouns, verbs, adjectives, and adverbs. Leave lowercase (unless first or last): articles (a, an, the), coordinating conjunctions (and, but, or, nor, for, so, yet), and short prepositions (in, on, at, by, for, to). "The Cat in the Hat" lowercases "in" and the second "the" for exactly this reason. Style guides disagree at the margins too — Chicago, AP, and MLA each apply slightly different rules.
| Case Style | Example | Common Use |
|---|---|---|
| UPPERCASE | HELLO WORLD | Acronyms, emphasis |
| lowercase | hello world | URLs, casual text |
| Title Case | Hello World | Titles, headings |
| Sentence case | Hello world | Standard prose |
Developer Code Naming Conventions
camelCase: first word lowercase, each following word capitalized — JavaScript variables and functions (myVariableName, getUserData()). PascalCase (UpperCamelCase): every word capitalized — class names in most languages (MyClassName, UserProfile). snake_case: words joined by underscores — Python variables, database columns (my_variable_name, user_id). kebab-case: words joined by hyphens — CSS classes, HTML attributes, URL slugs (my-class-name, user-profile).
💡 A real bug that trips up international teams: JavaScript's .toUpperCase() and .toLowerCase() are locale-sensitive in some environments. The classic case is Turkish, where the dotless "ı" and dotted "İ" don't map onto "i"/"I" the way English expects — code that assumes "i".toUpperCase() === "I" can quietly fail for Turkish-locale users. When exact ASCII casing matters (slugs, keys, tokens), use locale-independent methods rather than relying on default case conversion.
When to Use Each Text Case
UPPERCASE: acronyms (API, HTML, CSS), warning messages, keyboard key labels. Sentence case: body text, email subjects, button labels, error messages, most UI copy. Title Case: page titles, article headlines, book and film titles. camelCase: JavaScript/Java/Swift variables and functions. PascalCase: class names in OOP languages, React components. snake_case: Python variables, SQL columns, Python function names. kebab-case: CSS classes, URLs, HTML data attributes.
Quick Checklist
- Use Sentence case for most UI text — it's cleaner and more readable than Title Case
- Follow language conventions consistently: snake_case for Python, camelCase for JavaScript
- Convert bulk text with the tool rather than retyping — catches inconsistencies the eye misses
- Title Case has rules — not every word is capitalized (articles, short prepositions are lowercase)
- URL slugs should use kebab-case with only lowercase letters and hyphens
- For IDs, slugs, or tokens, avoid locale-sensitive case conversion — use explicit ASCII-only methods
For informational purposes only. Not financial, tax, or legal advice. Consult a qualified professional before making major decisions.