Text Case Converter
Convert text between different cases and formats
Enter text above to convert to different cases
Advanced Options
Text Analysis
Enter some text to see detailed analysis
Conversion History
No conversion history yet. Start converting text to build your history!
Text Case Converter
Convert text between different cases and formats
Features
- 13 case formats: UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, dot.case, SCREAMING_SNAKE, aLtErNaTiNg, InVeRsE, and SpOnGeBoB random
- Acronym preservation that keeps API, URL, JSON, and other all-caps tokens intact when generating Title Case so you don't end up with Api or Url
- Smart-quote conversion for typographically correct curly quotes (Unicode U+2018, U+2019, U+201C, U+201D) when copying into Markdown, blogs, or email
- Whitespace controls: collapse runs of spaces, trim leading/trailing whitespace, or leave the input untouched for code-sensitive transforms
- Auto-convert as you type plus a Convert to All Formats button that emits every casing side-by-side for picking the right naming style
- Live text analysis: characters, words, lines, sentences, paragraphs, unique words, average word length, longest/shortest word, plus reading and speaking time estimates
- Conversion history with timestamps stored in localStorage (capped at 50 entries) and one-click recall of past inputs
- Built-in templates for common contexts (email subject, file name, code variable, database column, API endpoint) to speed up repetitive renaming
- Export to .txt for batch dumps and copy-to-clipboard for any individual format result
How to use
- Paste or type the source text into the input area; auto-convert runs as you type unless you disable it.
- Pick a target format from the dropdown — programming-style cases (camelCase, snake_case, kebab-case) or prose styles (Title Case, Sentence case).
- Open Advanced Options if you need to preserve acronyms, enable smart quotes, or skip whitespace collapsing for code-sensitive input.
- Read the converted output instantly; toggle Analysis to see word counts, unique terms, and reading-time estimates for the original text.
- Hit Convert to All Formats to dump every casing side-by-side — perfect for picking the right naming convention for a new project.
- Copy the result, export to .txt, or revisit History to recall a past conversion without retyping.
Tips & Best Practices
- You can paste text directly from any source — formatting will be preserved.
- Use the clear button to start fresh without refreshing the page.
- Large text inputs are supported but may take slightly longer to process.
- Copy the output directly to your code editor or document.
- All transformations happen instantly in your browser with no server roundtrip.
FAQ
Why does Title Case sometimes leave words like "of" and "the" capitalized?
This converter uses a mechanical rule: capitalize the first letter of every whitespace-separated word. True journalistic Title Case (AP, Chicago) lowercases articles, conjunctions, and short prepositions — but those rules conflict between style guides and require dictionary lookups to do well. For headlines following a specific style guide, edit the output by hand or pre-process with a style-aware library. The Preserve Acronyms toggle does keep all-caps tokens like API and URL intact.
How are non-ASCII characters and Unicode handled?
Case mapping uses JavaScript's native `String.prototype.toUpperCase()` and `toLowerCase()`, which implement the Unicode default case algorithm. That covers Latin, Greek, Cyrillic, Armenian, and most cased scripts correctly. Locale-sensitive edge cases — Turkish dotless I (İ/ı), Lithuanian softening, German ß — are not specially handled because the converter doesn't know the input's locale; if you work in those languages, double-check round-trip case conversions.
Does this tool send my text anywhere?
No. All transformations and analysis run client-side in JavaScript. Your input is never uploaded, logged, or analyzed server-side. The conversion history persists in localStorage on your device only, and you can clear it at any time. The tool works offline after the first page load.
What's the right case for my variable names — camelCase, snake_case, or kebab-case?
It depends on language convention. JavaScript and Java use camelCase for variables and PascalCase for classes. Python and Rust use snake_case for variables and PascalCase for types. CSS custom properties and HTML attributes use kebab-case. SQL databases often use snake_case for columns. Pick the convention that matches the surrounding code; using Convert to All Formats lets you compare them in one shot.
Why does kebab-case break when my input contains punctuation?
The conversion only collapses whitespace into the chosen separator — it does not strip or transliterate punctuation. So `User's Profile!` becomes `user's-profile!`, not `users-profile`. If you need URL-safe slugs, also run the result through a slugify step that strips diacritics and non-alphanumerics. We may add a built-in slug mode later.
How accurate are the reading-time and speaking-time estimates?
They use industry averages: 200 words per minute for silent reading and 150 words per minute for spoken delivery. Real reading speed varies from roughly 150 wpm for technical material to 300+ wpm for casual prose; speaking pace varies even more. Use the numbers as rough planning estimates — for a conference talk or video script, time yourself reading aloud rather than trusting the estimate.
What does SpongeBob / aLtErNaTiNg case do exactly?
Sponge case randomizes upper/lowercase per character (used for the SpongeBob mocking meme); alternating case strictly toggles between lower and upper starting from lowercase. Both are pure novelty — no programming language uses them — but they're requested often enough that we include them. Inverse case flips whatever case each character started with, useful if you accidentally typed with Caps Lock on.
Will the conversion preserve my line breaks and indentation?
Line breaks are preserved. Indentation (leading whitespace per line) is preserved unless Trim Whitespace is enabled, in which case each pass through `text.trim()` removes leading/trailing whitespace from the whole input — not per line. If you need per-line trimming or want to keep code formatting intact, disable both Trim Whitespace and Remove Extra Spaces in Advanced Options before converting.