Text Case Converter_
Paste once, read your text in twelve cases at the same time: UPPERCASE, lowercase, APA title case, sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, and the alternating and inverse novelty cases — each with its own copy button, so the one you came for is never a menu away.
Writers get a title-case rule implemented by the book and honest sentence casing; developers get identifier conversion with real boundary detection — acronyms, digits, and mixed separators included — that converts a pasted column line by line. Everything runs in your browser as you type.
One box, twelve cases — what each conversion actually does
Uppercase to lowercase, without retyping a word
The most common job here is the simplest: a paragraph arrives in caps-lock and you need it back in readable form. Paste it and the lowercase card is already done; the same keystroke fills the UPPERCASE card for the fields and style rules that demand shouting. Both use Unicode's default case mappings — a deliberate choice that makes the output identical on every machine, whatever the visitor's system language. Language-specific mappings are not applied: German ß uppercases to SS, and the Turkish dotless ı never appears unless you typed it.
Title case, by the book — this page implements APA
"Title case" is not one rule — AP, Chicago, MLA, and APA each capitalize different small words, which is why two writers can both be right and still disagree. This converter implements the APA style rule, exactly: every word of four or more letters is capitalized; only minor words of three letters or fewer stay lowercase — the articles (a, an, the), short conjunctions (and, as, but, for, if, nor, or, so, yet), and short prepositions (at, by, in, of, off, on, per, to, up, via). The first word, the last word, the word after a colon, and both halves of a hyphenated compound are always capitalized. APA is the one major guide whose rule is purely mechanical; Chicago and MLA lowercase prepositions by grammatical role — a judgment no word-list tool can make ("Look Up the Number" capitalizes Up as an adverb). One named guide done right beats a menu of approximations; the gotchas below list where the other guides differ.
Sentence case across whole paragraphs
Sentence case lowercases everything, then re-capitalizes the first letter of the text, of every line, and of every sentence — a boundary being a period, question mark, exclamation mark, or ellipsis, optionally followed by a closing quote or bracket, then a space. That handles multi-sentence pastes correctly, including dialogue like he said "stop." then he left. → He said "stop." Then he left. What it deliberately does not do is guess: abbreviations like u.s. look like sentence ends, so the word after them gets a capital it shouldn't; and proper nouns are lowercased along with everything else, so iPhone mid-sentence comes out iphone. Some converters silently "fix" nouns they recognize from a dictionary; this one states its rule and leaves the judgment calls visibly yours.
camelCase, snake_case, and friends: one tokenizer, six spellings
The six identifier cases all start from the same word-splitting step. The tokenizer breaks text on whitespace and every run of separators (underscores, hyphens, dots, slashes, commas — any punctuation, in any mixture), on lower-to-upper transitions (fooBar → foo · Bar), on acronym-to-word transitions (parseHTMLString → parse · HTML · String), and between letters and digits (item42Count → item · 42 · Count, the same convention lodash uses). The words are then re-joined with each case's separator and capitalization. Because splitting and joining are separate steps, any input spelling converts to any output spelling — mixed_Separator-kinds.here comes out mixedSeparatorKindsHere in one pass. Note what happens to acronyms on the way through camelCase: HTML is a single token, so it re-joins as Html — parseHtmlString, not parseHTMLString — the normalization change-case and most linters settle on. The identifier cases also convert per line: paste a column of fifty field names and you get fifty converted names back, blank lines preserved. To verify a big batch changed only where intended, diff the before and after with the text compare tool.
How to use
- 01Paste or type your text — all twelve cases convert on every keystroke, and the strip above the box keeps a live character and word count (for graphemes, bytes, and platform limits, the character counter has the full breakdown).
- 02Read the card you came for: writer cases first, developer cases after, so the grid serves a headline and a variable rename alike.
- 03Click Copy on that card — it copies its full conversion, even when a long output is truncated on screen.
- 04Converting identifiers in bulk? One name per line — identifier cases convert line by line, so a pasted column returns ready to paste back.
Four jobs this page does daily
Headline to APA title case
A blog title drafted in lowercase needs to match the style guide before publishing.
our five-step plan for a faster site: what we learned
Our Five-Step Plan for a Faster Site: What We Learned
De-shouting a caps-lock draft
An all-caps email needs to sound human again — note that names like Friday still need a manual capital afterward.
I NEED THIS BY FRIDAY. IT IS URGENT.
I need this by friday. It is urgent.
Component name to CSS class
A React component needs a matching stylesheet class — PascalCase in, kebab-case out.
UserProfileCard
user-profile-card
Spreadsheet headers to database columns
A column of human-readable headers becomes snake_case fields in one paste — line by line, blank lines kept.
First Name Email Address Sign-up Date
first_name email_address sign_up_date
One phrase in all twelve cases
| Case | parse HTML string v2 becomes |
|---|---|
| UPPERCASE | PARSE HTML STRING V2 |
| lowercase | parse html string v2 |
| Title Case (APA) | Parse Html String V2 |
| Sentence case | Parse html string v2 |
| camelCase | parseHtmlStringV2 |
| PascalCase | ParseHtmlStringV2 |
| snake_case | parse_html_string_v_2 |
| kebab-case | parse-html-string-v-2 |
| CONSTANT_CASE | PARSE_HTML_STRING_V_2 |
| dot.case | parse.html.string.v.2 |
| aLtErNaTiNg cAsE | pArSe hTmL StRiNg v2 |
| iNVERSE cASE | PARSE html STRING V2 |
Every output is exactly what the tool produces for this phrase — including the honest rough edges: HTML flattens to Html in the joined cases, and the digit token 2 gets its own separator (v_2), the lodash convention.
Which identifier case goes where
| Case | Conventional home | Example |
|---|---|---|
| camelCase | JavaScript & Java variables and functions, JSON API fields | totalPrice, getUserById() |
| PascalCase | Classes, React components, C# and Go exported names, type names | InvoiceService, UserProfileCard |
| snake_case | Python and Ruby functions and variables, Rust locals, database columns | total_price, created_at |
| kebab-case | CSS classes, HTML attributes, URL paths, npm package names, CLI flags | .nav-item, --dry-run |
| CONSTANT_CASE | Environment variables, constants in most languages | DATABASE_URL, MAX_RETRIES |
| dot.case | Java properties files, logger and config namespaces | server.port, app.cache.ttl |
Conventions, not laws — a codebase's own style guide wins. But crossing these defaults is what reviewers flag first, and shells reject hyphens in variable names outright.
Tips & best practices
- Convert from the original, not from a previous conversion: once text has been through UPPERCASE, the difference between iPhone and Iphone is gone for good.
- Batch-rename by column: one identifier per line, convert, paste the result back — the line count in and out always matches.
- When an APA title looks wrong, check the word length first: with, from, and over capitalize because they have four letters.
- After converting names with acronyms, search the result for Html, Api, and Id and restore any your house style keeps uppercase.
- CONSTANT_CASE output is shell-safe by construction — letters, digits, and underscores only — which is exactly why it is the environment-variable convention.
- iNVERSE cASE has a real job: it un-does a paragraph typed with caps-lock on, where shift did the opposite of what you wanted.
Gotchas — where case conversion trips people
Title-case style guides genuinely disagree
This page follows APA: minor words of three letters or fewer stay lowercase. AP capitalizes any preposition of four or more letters; Chicago lowercases prepositions by role, however long; MLA lowercases every preposition. The same headline can be correct four different ways — know which guide your publication uses.
Sentence case cannot read for meaning
Every period-plus-space reads as a sentence end, so abbreviations promote the next word (the u.s. economy grew → the u.s. Economy grew), and the initial lowercasing pass flattens proper nouns and brand caps. Proofread names after converting — the tool will not invent capitals it cannot verify.
camelCase conversion normalizes acronyms
parseHTMLString converts to parseHtmlString, not back to itself: joined tokens are capitalized, so acronyms flatten to Html, Api, Id. The loss is inherent — nothing in parse_html_string records that HTML was ever uppercase — and most modern style guides accept the flattened form for exactly this reason.
Casing is locale-dependent — this tool pins one answer
In Turkish, lowercase i uppercases to İ and I lowercases to ı. This page applies Unicode default mappings instead of the visitor locale, so i always becomes I — identical output on every machine, but wrong for Turkish and Azerbaijani prose. German ß becomes SS in UPPERCASE, per the same default tables.
UPPERCASE round-trips destroy information
MCDONALD, IPHONE, and E.E. CUMMINGS give lowercase no way to recover McDonald, iPhone, or the poet’s preferred styling. Case conversion is lossy in one direction: keep the original until you no longer need its capitalization.
Technical details
- Cases
- 12: UPPERCASE, lowercase, Title Case (APA), Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, aLtErNaTiNg, iNVERSE
- Title-case rule
- APA: capitalize all words of 4+ letters, the first and last word, and the word after a colon; lowercase minor words of ≤3 letters; both halves of hyphenated compounds capitalized
- Casing engine
- Unicode default case mappings (no locale argument) — output is machine-independent; Turkish/Azeri i-mappings deliberately not applied
- Tokenizer
- Splits on whitespace, separator runs, lower→Upper boundaries, acronym→word boundaries, and letter↔digit boundaries; caseless scripts (CJK) pass through unchanged
- Identifier cases
- Converted per line — a pasted column converts as a batch; blank lines preserved; leading and trailing punctuation shed
- Alternating rule
- Positional toggle starting lowercase, advancing every character; per-code-point iteration, so emoji never split
- Display cap
- Each card shows the first 10,000 characters; Copy always carries the full conversion. Tested with 200k-character pastes
- Processing
- All conversion happens in your browser — text is never uploaded, stored, or sent anywhere
FAQ
How do I convert uppercase to lowercase without retyping?
Paste the text above — the lowercase card is filled in by the time you look at it, and its Copy button puts the converted text on your clipboard. The same paste fills the other eleven cards, so switching to sentence case instead is zero extra work.
Which title-case style does this tool use?
APA, exactly as published: words of four or more letters are always capitalized, and only short articles, conjunctions, and prepositions stay lowercase. It is the one major guide implementable without grammatical judgment; the gotchas section lists how AP, Chicago, and MLA differ.
What is the difference between camelCase and PascalCase?
Only the first letter: camelCase starts lowercase (totalPrice), PascalCase starts uppercase (TotalPrice). Convention assigns them different jobs — camelCase for variables and functions in JavaScript and Java, PascalCase for classes, types, and React components.
Why did iPhone come out as Iphone?
Title and sentence case rebuild capitalization from rules, and no rule can know iPhone is a brand spelling rather than an ordinary word. This tool doesn’t consult a proper-noun list, so brand caps are normalized and you restore the exceptions — predictable behavior beats dictionary guesses you would have to audit.
Does it handle Turkish, German, or non-Latin text?
Cyrillic and Greek case correctly; Chinese, Japanese, and Korean have no letter case and pass through every conversion unchanged. Turkish is the documented limitation: this tool pins Unicode default mappings so results are identical everywhere, which means i uppercases to I, never to the Turkish İ.
Can I use kebab-case output as a URL slug?
It is the right shape — lowercase words joined by hyphens — but a real slug generator also folds accents (café → cafe) and drops stop words. For plain ASCII titles the kebab-case card is a perfectly good slug; for anything messier, treat it as the starting point.