Case Converter

Paste a line once. Every case appears beside your text, from Sentence case for a button label to CONSTANT_CASE for an env var, each with its own copy button. Nothing leaves your browser.

Convert text case

0 characters 0 words 0 lines

Title Case style

Headline keeps a, the, of, to, in and other short words lowercase mid-title.

Writing

Sentence case UI labels, body text, email subjects
Save changes to the draft
Title Case Headlines, book and video titles
How to Read a Stack Trace
UPPER CASE Labels, warnings, short tags
DO NOT DEPLOY ON FRIDAY
lower case Tags, emails, a reset before another case
editors@toolexe.com

Code

camelCase JavaScript variables, JSON keys
lastModifiedAt
PascalCase Classes, React components
ToolCard
snake_case Python, database columns
created_at
CONSTANT_CASE Env vars, constants
R2_CDN_URL
kebab-case URL slugs, CSS classes, CLI flags
case-converter
Train-Case HTTP header names
Content-Type
dot.case Translation keys, config paths
auth.failed

Playful

aLtErNaTiNg Mocking-meme text
sUrE, sHiP iT tOdAy
iNVERSE Fix text typed with Caps Lock on
hELLO tHERE
RaNdOm Rerolls on every edit
rAnDOm cAsE

Choose the case by where the text lands

Case mistakes rarely come from the text. They come from the destination. A newspaper-style headline looks loud on a button. A Python constant in camelCase fails review. Find your destination in the first column, then copy the matching row from the converter above.

Where the text goesCaseLooks likeWhy
Buttons, menu items, settings pagesSentence caseSave changesThe Google and Microsoft developer style guides both ask for sentence case in interface text.
Article headlines, book and film titlesTitle CaseHow to Read a Stack TraceAP, Chicago, and APA disagree on short words. The rulebook table below shows where.
JavaScript variables, JSON keys from JS APIscamelCaselastModifiedBrowser APIs set the pattern, from getElementById to innerHTML.
React components, Java and C# classesPascalCaseToolCardReact reads a lowercase JSX tag as a built-in HTML element, so components need a capital.
Python functions, database columnssnake_casecreated_atPEP 8 asks for lowercase words with underscores in function and variable names.
Environment variables, constantsCONSTANT_CASER2_CDN_URLShell tradition. PEP 8 uses the same form for module-level constants.
URL slugs, CSS classes, CLI flagskebab-casecase-converterThe last segment of this page's URL. Google recommends hyphens over underscores between words in URLs.
HTTP headersTrain-CaseContent-TypeHeader names are case-insensitive under RFC 9110. Train-Case is habit, not a requirement.
Translation keys, config pathsdot.caseauth.failedLaravel, Rails i18n, and Spring properties all nest keys with dots.

How the converter decides where one word ends

The code formats, camelCase through dot.case, break each line into words first, then rejoin them. Most surprises trace back to this step. These are the exact rules.

  • Spaces, hyphens, underscores, dots, slashes and other punctuation end a word.
  • A lowercase letter followed by a capital starts a new word. lastModified splits into last and Modified.
  • A run of capitals holds together until its final capital meets a lowercase letter. XMLResponse splits into XML and Response.
  • Digits stay with the word before them, so utf8Decode becomes utf8_decode and R2 stays whole. A word opening with a digit splits: 2FA turns into 2_fa. Check those by hand.
  • Apostrophes inside a word disappear, so don't becomes dont, not don_t.
  • Each line converts on its own. Paste a column of 40 field names and a column of 40 comes back.
input  parseXMLResponse2 for user-id
words  parse | XML | Response2 | for | user | id
snake  parse_xml_response2_for_user_id
camel  parseXMLResponse2ForUserId   acronyms kept
camel  parseXmlResponse2ForUserId   acronyms off

Google's Java style guide writes XmlHttpRequest, treating an acronym as one ordinary word. The browser API itself is named XMLHttpRequest. Both styles ship in real code. The Keep acronyms box picks one and applies the choice to camelCase, PascalCase, Train-Case, Title Case, and Sentence case together.

Title Case follows three different rulebooks

Every style guide capitalizes nouns, verbs, and the first word. They split on short words. Headline mode lowercases articles, short conjunctions, and prepositions of three letters or fewer, unless the word opens or closes the line or follows a colon. AP and APA follow the same split. Chicago lowercases every preposition regardless of length, so Chicago writers should fix words like from and between by hand.

Word mid-titleAPChicagoAPAHeadline mode
the (article)thethethethe
for (3-letter preposition)forforforfor
from (4-letter preposition)FromfromFromFrom
between (long preposition)BetweenbetweenBetweenBetween
is (short verb)IsIsIsIs

Headline mode reads spelling, not grammar. In Log In to Your Account, the word In belongs to the verb log in, so AP capitalizes the word. The converter sees a short preposition and writes Log in to Your Account. Read the result once before publishing. Pick Every word instead when a channel wants every word capitalized, a common habit in YouTube titles.

Six cases where the output needs a second look

Names in Sentence case

Sentence case lowercases every word after the first, names included. Call with Priya Raman becomes Call with priya raman. The converter has no list of names, so fix them after copying.

Mixed-case brands

iPhone, eBay, and McDonald's come out as Iphone, Ebay, and Mcdonald's in Title Case. Lowercase input such as json stays Json, since only words typed in capitals count as acronyms.

German ß

UPPER CASE turns Straße into STRASSE, one character longer. Lowercasing back gives strasse, not the original word.

Turkish i

Browsers uppercase i to I by default. Turkish expects İ with a dot. This converter uses the default rules, so Turkish copy needs a locale-aware editor.

Abbreviations with periods

Sentence case treats a period followed by a space as the end of a sentence. Dr. Malik survives by luck. e.g. this comes out as e.g. This.

Lines typed in all caps

With Keep acronyms on, a line written fully in capitals would never change. The converter spots lines with no lowercase letters and converts every word on them, acronyms included.

Case conversion questions

Short answers on title rules, acronyms, privacy, and lists.

How do I convert text to title case without capitalizing small words?

Keep the Title Case style on Headline. Articles, short conjunctions, and prepositions of three letters or fewer (a, the, of, to, in, on) stay lowercase unless they open or close the line or follow a colon.

Why does PascalCase turn API into Api?

The Keep acronyms box is off. With the box off, every word gets one capital, the style Google's Java guide recommends (XmlHttpRequest). Tick the box to keep words typed in capitals intact.

Does the converter send my text anywhere?

No. Every conversion runs in JavaScript inside your browser. Copy link is the exception you control. The button puts your text into the URL, so the text then sits in any chat or browser history the link reaches. Skip Copy link for passwords or API keys.

How do I convert a whole list of variable names?

Paste one name per line. Each line converts separately, so the snake_case or camelCase row returns the same number of lines in the same order, ready to paste back into a spreadsheet or an editor.

What is the difference between snake_case and kebab-case?

Only the separator. snake_case joins words with underscores, kebab-case with hyphens. Most programming languages read a hyphen as a minus sign, so kebab-case suits URLs, CSS classes, and file names, not Python or JavaScript identifiers.

Why does UPPER CASE change the length of my text?

Some characters expand. The German ß becomes SS, and ligatures such as the single character fi become two letters. Character counts after conversion differ from the original as a result.