Text Case Converter
Convert text to uppercase, lowercase, title case online for free.
Advertisement
UPPERCASE
All capsTHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
lowercase
All smallthe quick brown fox jumps over the lazy dog
Title Case
Every word capitalizedThe Quick Brown Fox Jumps Over the Lazy Dog
Sentence case
First word onlyThe quick brown fox jumps over the lazy dog
camelCase
Code variabletheQuickBrownFoxJumpsOverTheLazyDog
PascalCase
Classes & componentsTheQuickBrownFoxJumpsOverTheLazyDog
snake_case
Python, SQLthe_quick_brown_fox_jumps_over_the_lazy_dog
kebab-case
URLs, CSSthe-quick-brown-fox-jumps-over-the-lazy-dog
CONSTANT_CASE
Constants, env varsTHE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG
dot.case
Config keysthe.quick.brown.fox.jumps.over.the.lazy.dog
path/case
File pathsthe/quick/brown/fox/jumps/over/the/lazy/dog
iNVERSE cASE
Flipped casetHE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
aLtErNaTe CaSe
AlternatingtHe qUiCk bRoWn fOx jUmPs oVeR ThE LaZy dOg
rAndOM CasE
Random mixedTHe QUIcK browN foX JUMPS OVEr thE laZY DOg
sPoNgEbOb CaSe
Like SpongeBob memetHe QuIcK bRoWn FoX jUmPs OvEr ThE lAzY dOg
Click any card to copy that format instantly
Advertisement
How to Use This Tool
Paste Your Text
Type or paste any text into the input field at the top. The converter works with text of any length.
Choose Your Format
All 8 case formats update in real-time. Find the format you need — uppercase, lowercase, title case, camelCase, PascalCase, snake_case, kebab-case, or sentence case.
Copy the Result
Click the copy icon next to the format you want to copy it instantly to your clipboard.
Advertisement
Related Tools
Frequently Asked Questions
What is camelCase?
What is the difference between PascalCase and camelCase?
What is snake_case used for?
What is kebab-case?
About Text Case Converter
A developer is porting a legacy Ruby on Rails codebase to TypeScript and needs to convert 400 snake_case database column names to camelCase property names in a types.ts file before the next PR review. A marketing manager just received a 60-row CSV of product names in SHOUTING ALL CAPS from a vendor and the Shopify import expects Title Case. This converter handles eleven transforms in one paste: UPPERCASE, lowercase, Title Case (with proper small-word rules for 'a', 'an', 'the', 'and', 'or', 'of', 'in', 'on'), Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, and alternating case. Each runs client-side against the full text blob so you can paste a 10,000-line file, hit the button, and copy the result without waiting for a server round trip or worrying whether your proprietary product names hit a remote log. The Title Case algorithm follows AP Stylebook conventions (capitalize words of four letters or more, plus the first and last word regardless of length) which matches what most editorial style guides expect.
When to use this tool
Converting database columns to API property names
A Rails backend returns user_sign_up_date in snake_case while the TypeScript frontend expects userSignUpDate in camelCase. Paste 50 column names, convert to camelCase in one pass, paste directly into the Zod or Yup schema definition without hand-rewriting each identifier.
Normalizing vendor product data before CSV import
A supplier sends product titles in inconsistent cases — some SHOUTING, some lowercase, some MiXeD. Convert to Title Case so the Shopify, WooCommerce, or BigCommerce import displays consistently. The four-letter rule means 'for' and 'the' stay lowercase but 'With' capitalizes.
Generating CSS class names from design tokens
A designer hands you 120 Figma layer names in PascalCase (NavBarPrimaryLink). Convert to kebab-case (nav-bar-primary-link) for BEM-style CSS classes, ready to paste into a Tailwind config or SCSS partial without running sed on the terminal.
Fixing headlines pasted from PDF sources
Academic PDFs often paste with every word in Title Case or every letter uppercased depending on the font rendering. Drop in the extracted title, hit Sentence case, and get clean headline-case text ready for a citation manager like Zotero or Mendeley.
Building environment variable names from feature flags
A product manager wrote feature flag descriptions in plain English ('dark mode toggle', 'new checkout flow'). Convert to CONSTANT_CASE (DARK_MODE_TOGGLE, NEW_CHECKOUT_FLOW) to match .env convention and paste directly into the Vercel or Netlify environment variables dashboard.
How it works
- 1
Tokenization handles mixed-case identifiers
Input is split into tokens using a regex that recognizes existing word boundaries (whitespace, hyphens, underscores, dots) plus camelCase and PascalCase breaks ([A-Z][a-z]+). So 'getHTTPResponse' tokenizes to ['get', 'HTTP', 'Response'] and round-trips correctly through any case without losing the acronym 'HTTP'.
- 2
Title case follows AP Stylebook four-letter rule
Words of four or more letters capitalize; shorter conjunctions, articles, and prepositions stay lowercase ('a', 'an', 'the', 'and', 'or', 'but', 'of', 'in', 'on', 'at', 'to', 'for'). The first and last word of the string always capitalize regardless of length, which is the AP and Chicago Manual standard — Wikipedia and most newspaper house styles use the same rule.
- 3
Conversions preserve non-letter content
Numbers, punctuation, and emoji pass through unchanged. Only alphabetic characters are transformed, and Unicode case folding (not just ASCII) is applied via String.prototype.toLocaleLowerCase and toLocaleUpperCase, so Turkish dotted-i, German ß, and Greek sigma final-form behave correctly.
Pro tips
Title Case differs between AP and Chicago styles
AP Stylebook (newspapers, most web publications) capitalizes words of four or more letters. Chicago Manual of Style (books, academic) capitalizes all words except articles, conjunctions, and prepositions regardless of length. Our default is AP because it matches what most editorial CMS systems expect. If you are publishing academic content or a book manuscript and your style guide specifies Chicago, manually lowercase any 5-letter prepositions like 'about', 'above', 'below' after conversion — the algorithm will incorrectly capitalize them under AP rules.
camelCase for JSON keys, snake_case for SQL columns
The case convention for your codebase is not aesthetic — it matches the runtime. JavaScript and JSON APIs use camelCase by overwhelming convention (userName, createdAt), Python and Ruby use snake_case (user_name, created_at), and SQL column names are almost always snake_case because most database engines fold unquoted identifiers to lowercase anyway. When converting between layers (Rails API to React frontend), pick one convention per layer and transform at the boundary rather than mixing — libraries like humps.js or lodash.camelCase automate this in code.
Do not round-trip SHOUTING text through Title Case blindly
Converting SHOUTING ALL CAPS to Title Case loses information when the original contained proper nouns or acronyms. 'CEO OF NASA' becomes 'Ceo Of Nasa' because the algorithm has no way to know NASA should stay uppercase. For vendor data that mixes legitimate acronyms (USA, API, SKU) with shouting, first convert to lowercase, then manually identify and uppercase the real acronyms, then apply Title Case. Or keep the original and only convert the words you know are not acronyms.
Frequently asked questions
What Title Case rules do you follow — AP, Chicago, or something else?
We default to AP Stylebook rules: capitalize all words of four or more letters, plus the first and last word regardless of length. Short conjunctions, articles, and prepositions ('a', 'an', 'the', 'and', 'or', 'of', 'in', 'on', 'at', 'to', 'for', 'but') stay lowercase unless they are the first or last word. This is the convention used by the Associated Press, most newspapers, and the majority of web publications. If your style guide requires Chicago Manual rules (where all prepositions stay lowercase regardless of length), you will need to manually lowercase words like 'about', 'above', and 'below' after the automated pass.
Why did converting 'getHTTPResponse' to snake_case produce 'get_http_response' instead of 'get_h_t_t_p_response'?
Because the tokenizer recognizes sequences of uppercase letters as a single acronym token when followed by a lowercase letter. 'getHTTPResponse' splits as ['get', 'HTTP', 'Response'] and reassembles cleanly in any target case. Without this heuristic, round-tripping between camelCase and snake_case in a real codebase becomes impossible — 'getHTTPResponse' would turn into 'get_h_t_t_p_response' and back into 'getHTTPResponse' as 'getHttpResponse', breaking imports. The rule matches how lodash.snakeCase, Google's Closure library, and most Ruby ActiveSupport implementations handle this edge case.
Does this handle Unicode characters like Turkish dotted-i or German ß correctly?
Yes. We use String.prototype.toLocaleLowerCase and toLocaleUpperCase rather than the deprecated ASCII-only versions, so Turkish lowercase 'i' (U+0069) correctly uppercases to 'İ' (U+0130) rather than plain 'I', and German lowercase 'ß' (U+00DF) correctly uppercases to 'SS' in most locales or 'ẞ' (U+1E9E) in newer ones. For text-heavy tasks in non-English languages, always test a small sample first because locale-specific rules vary — Azerbaijani also uses dotted-i, Lithuanian has specific rules for 'i' combining with diacritics, and these edge cases surface only in the specific character combinations that trigger them.
Can I convert a 10,000-line file without crashing my browser?
Yes for most cases. The conversion is a single pass over the string with regex operations that run at roughly 100 MB per second on modern CPUs, so a 10,000-line text file (typically 500 KB to 2 MB) converts in under 50 milliseconds. The bottleneck is usually the DOM update when the result is injected back into the output textarea — large outputs can cause a brief paint pause. For files over 10 MB, prefer a CLI tool (sed, awk, or a Node script using lodash.snakeCase) which operates without DOM overhead and can stream the result to disk.
Will proper nouns and acronyms be preserved when converting from lowercase to Title Case?
No. The algorithm has no knowledge of which words are proper nouns or acronyms — 'nasa' lowercased has identical letters to any other four-letter word, so it converts to 'Nasa' in Title Case rather than staying 'NASA'. If you need to preserve specific capitalization patterns (brand names, acronyms, chemical formulas), either pre-process your text to mark them with placeholder tokens and substitute back after conversion, or do a manual pass on the output looking for the specific strings you know should stay capitalized. This is a structural limitation of context-free case conversion, not something any tool in this category solves automatically without ML.
Honest limitations
- · Title Case cannot distinguish real acronyms (NASA, API) from shouted words, so converting from ALL CAPS loses acronym information.
- · Tokenization assumes English-style word boundaries; languages without spaces (Chinese, Japanese, Thai) are not meaningfully case-transformable.
- · Special characters and emoji pass through unchanged, which is usually desired but means a title containing em-dashes will keep them intact rather than following the typographic rules of your target style guide.
Case conversion is rarely the last step. After normalizing case, the duplicate-line-remover is often next for deduplicating column lists or identifier files. The word-counter verifies that a normalized article still meets its budget after the transforms. For developers converting between naming conventions at an API boundary, the json-formatter cleans up the target JSON after key transformation, and the regex-tester is how you build the right tokenization pattern when a case converter is not flexible enough for your specific identifier scheme.
Advertisement