Text Case Format Converter

Convert any text between 14 case formats instantly. Nothing leaves your browser.

ZERO UPLOAD · ALL LOCAL

Pre-filled for this page

The input below is pre-filled with snake_case, the example this page defines, converted into every case format instantly.

Pre-filled for this page

The input below is pre-filled with camelCase, the example this page defines, converted into every case format instantly.

Pre-filled for this page

The input below is pre-filled with PascalCase, the example this page defines, converted into every case format instantly.

Pre-filled for this page

The input below is pre-filled with kebab-case, the example this page defines, converted into every case format instantly.

Pre-filled for this page

The input below is pre-filled with CONSTANT_CASE, the example this page defines, converted into every case format instantly.

Input (Text)

Output (Character case)

lower case
—
UPPER CASE
—
Capitalized Case
—
aLtErNaTiNg cAsE
—
InVeRsE CaSe
—

Output (Word case)

camelCase
—
PascalCase
—
snake_case
—
SCREAMING_SNAKE
—
kebab-case
—
dot.case
—
path/case
—
sentence case
—
Title Case
—
  1. Type or paste text into the input box — all 14 conversions appear instantly.
  2. The Character Case Formats section shows 5 character-level transformations.
  3. The Word Case Formats section shows 9 word-level transformations.
  4. Use the Copy buttons to grab any individual result.
  5. Click "Use as input" to chain conversions (e.g. snake_case → camelCase → kebab-case).

Why convert offline?

Most case conversion tools are server-backed. When you paste text into them, the full string, which might contain variable names, internal code snippets, or identifiers you would rather keep private, is transmitted to a third-party server. For developers working with proprietary code or writers handling confidential drafts, that round trip is a meaningful privacy risk.

This tool uses vanilla JavaScript running entirely in your browser, so the text you paste never leaves your machine. All 14 case transformations happen locally using pure string manipulation applied character by character and word by word.1 You can verify this yourself by opening DevTools, switching to the Network tab, and watching for outbound requests as you type: there are none, no matter how much text you process.

How local execution protects your text

Nothing you paste is read by any other machine, because the conversion code runs as plain JavaScript inside your page and never opens a network socket or writes anything to disk. That means variable names, configuration keys, and confidential identifiers stay on your device from the moment you type them to the moment you copy the converted result into your clipboard. There is no backend, no analytics call, and no hidden telemetry that could leak what you are working on.

TIP Load the page once while you still have a connection, then disconnect from the internet and keep working exactly where you were. Every case conversion will continue to run because by that point all the logic is already inside your browser, and the tool never needs to reach across the network to complete a transformation.

Character case formats

The first table shows 5 character-level transformations. Each one works on every character in the string regardless of word boundaries, so the output depends only on the case of each individual letter and not on any detection of where one word ends and the next begins. There is no splitting step, which makes these formats fast and predictable even when the input is a single long token with no separators.

When to pick a character-level format

Choose a character-level format when you want a uniform transformation applied across the entire input, rather than a format that depends on splitting the text into words first. That makes them the natural fit for case-insensitive normalisation, for emphasis and stylised text in headings or messages, and for any situation where the structure of the input should not change.

  • lower case. Converts every letter to lowercase. Use: normalizing user input, preparing strings for case-insensitive comparison, standardizing display text.
  • UPPER CASE. Converts every letter to uppercase. Use: constants in programming, environment variables, SQL keywords, emphasis in headings.
  • Capitalized Case. Makes the first character of each word uppercase and the rest lowercase. Use: proper nouns in prose, formatting names or titles in user-facing text.
  • aLtErNaTiNg cAsE. Flips each character in sequence, so even positions become lowercase and odd positions become uppercase. Use: stylistic text effects, meme formatting, visual emphasis in informal contexts.
  • InVeRsE CaSe. Swaps the case of every character, turning uppercase into lowercase and lowercase into uppercase. Use: stylistic text effects and obfuscating text while keeping it readable.

Convert Text to UPPERCASE

UPPER CASE is one of the character-level rows, so it changes every letter in place and leaves spaces, digits, punctuation and line breaks exactly where they were. That makes it the row for SQL keywords, headings and labels set in capitals, while code constants that need underscores between words belong in the SCREAMING_SNAKE row instead. The guide below also covers the locale-specific letters that can change a result.

With UPPERCASE, every letter changes and no word boundary matters. It works on any text: code, prose, UI labels, or raw strings. SQL keywords are conventionally written in UPPERCASE for readability.1 Constants, headings for certain design contexts, and abbreviations all call for all-caps output.

Converting prose or mixed-case text to UPPERCASE is a character-level operation, not a word-level one. The tool does not split on word boundaries or add separators: it simply maps every character to uppercase for review or export.

Where UPPERCASE text is used

SQL conventionally writes keywords in UPPERCASE: SELECT, FROM, WHERE, JOIN, GROUP BY.1 Constants in many languages (C, Python, JavaScript) follow SCREAMING_SNAKE, which is uppercase with underscores, but when you need just the casing without underscores, this converter handles it. Building on this, design contexts like banner text, navigation section labels, and monospace UI headers often use all-caps for visual weight. Acronyms (API, URL, HTTP) are written in UPPERCASE in documentation. HTTP/2 and HTTP/3 protocol specifications render header field names in lowercase, but the older HTTP/1.1 convention of capitalized headers (Content-Type, Accept-Encoding) persists in many codebases and documentation examples.2 Legal disclaimers, terms-of-service headers, and license agreement summaries frequently use UPPERCASE for emphasis, and some government forms require all-caps entries for machine readability.

Edge cases: non-letter characters and locale-sensitive casing

Numbers, punctuation, and special characters are not affected: they pass through unchanged. The converter uses JavaScript's built-in toUpperCase(), which is locale-aware but uses the browser's default locale.3 Consequently, locale-specific characters (like the German ß or Turkish i/I distinction) may produce unexpected results if the browser locale does not match the expected language. For ASCII text, this is never an issue. The German ß is a notable edge case: in most browser locales, toUpperCase() converts it to "SS", which changes the string length and may affect character-count-sensitive contexts like fixed-width displays. For Turkish text, whose case mappings do not follow Unicode's default mappings, the dotted/dotless I distinction means that "i" uppercases to "İ" (dotted I) in a Turkish locale but to "I" (standard I) in most other locales.4 If your application serves Turkish users, test uppercase conversion with Turkish-specific input to verify the output matches expectations.

Workflow: formatting SQL query keywords

Building on this, a practical use: when writing SQL queries in a text editor that does not auto-capitalize keywords, you can draft the query in mixed case and then use the UPPERCASE converter on just the keyword portions. CapyToolkit processes whatever you paste, so selecting specific lines and converting only those is the cleanest approach. For SCREAMING_SNAKE constants, use the CONSTANT_CASE converter instead: this converter does not add underscores. When formatting SQL for documentation or code review, paste the keyword list (SELECT, FROM, WHERE, etc.) to get the canonical uppercase form, then manually recombine them with your identifiers. SQL linters like sqlfluff enforce uppercase keywords by default,5 and running your query through this converter before pasting it into a migration file or stored procedure ensures it passes linting on the first attempt without manual keyword-by-keyword correction.

SQL keyword capitalization conventions across database systems

SQL keyword capitalization is not enforced by any database engine, but all major style guides recommend UPPERCASE for reserved words. Understanding why the convention exists helps you decide when to apply it and when to skip it. The convention persists across decades of database tooling because it makes SQL significantly more readable when scanning complex queries with multiple joins and nested conditions. When you uppercase a block of SQL keywords in one pass, the output gives you the canonical form that every major style guide expects, which means your query formatting matches what reviewers and automated linters look for before a migration reaches production.

PostgreSQL, MySQL, and SQLite treat SQL keywords as case-insensitive by the SQL standard.6 You can write select, Select, or SELECT and all three execute identically. The UPPERCASE convention survives because it creates a visual split between language keywords and your identifiers: SELECT user_id FROM users WHERE is_active = true scans faster than select user_id from users where is_active = true when reading unfamiliar queries. Linters like sqlfluff enforce uppercase keywords by default.5

When to skip UPPERCASE keywords

Query builders, ORMs, and code-generated SQL typically produce lowercase or mixed-case keywords because the output is not intended for human reading. If your SQL goes directly to an ORM method call or a query-builder chain, UPPERCASE keywords add no value. Apply UPPERCASE when the SQL is written or read by humans: in migration files, in database documentation, and in ad-hoc query tools like psql or TablePlus.

One more reason to skip automatic UPPERCASE is locale sensitivity. JavaScript's toUpperCase() depends on the browser's default locale, and for Turkish text the lowercase i maps to a dotted İ rather than a plain I. If you uppercase user-submitted names or labels that may contain Turkish characters, the result can look wrong to those users, so a targeted or language-aware transform is safer than a blanket conversion.

Comparing UPPERCASE output to CONSTANT_CASE for the right use

UPPERCASE and CONSTANT_CASE (SCREAMING_SNAKE) are easy to confuse because both produce all-capital letters. They serve different purposes and are not interchangeable. Choosing the wrong one produces output that either breaks identifier validation or fails to format SQL correctly. Knowing the distinction before you start saves the round-trip of converting the same text again. The key difference is whether you need separators between words: UPPERCASE keeps the original spacing while CONSTANT_CASE replaces spaces and word boundaries with underscores to produce a valid identifier. If you need a valid environment variable name or a Python constant, CONSTANT_CASE is the right choice because the underscores make it a legal identifier in every major programming language.

When UPPERCASE is the right tool

UPPERCASE converts a word or phrase without adding separators, which distinguishes it from CONSTANT_CASE formats. Acronyms (HTML, CSS, API), SQL keywords (SELECT, FROM, WHERE), and display-only all-caps text like banner headings all benefit from this simple transformation. The output has no underscores added: "background color" becomes "BACKGROUND COLOR", not "BACKGROUND_COLOR". Use this converter when you need visual emphasis or SQL formatting, not identifier naming.

When CONSTANT_CASE is the right tool

CONSTANT_CASE adds underscores between words while also converting every letter to uppercase: "background color" becomes "BACKGROUND_COLOR". This is the correct format for environment variable names, configuration constants in Python and JavaScript, and preprocessor macros in C and C++. If you need the output to be a valid identifier in a shell or programming language, use the CONSTANT_CASE converter instead of this one.

Use this when formatting SQL keywords, converting abbreviations to their standard uppercase form, or producing all-caps text for banner headings or constants that should not have underscores.

SQL keywords and mixed-case query → uppercase keywords

Before
select id, name from users where active = true
After
SELECT ID, NAME FROM USERS WHERE ACTIVE = TRUE

Acronym list → standard uppercase abbreviations

Before
html
css
api
url
http
After
HTML
CSS
API
URL
HTTP
Sources for this section
  1. 1.

    Simon Holywell, "SQL Style Guide," sqlstyle.guide, accessed June 2026. https://www.sqlstyle.guide/

  2. 2.

    IETF, "Hypertext Transfer Protocol Version 2 (HTTP/2)," RFC 7540, IETF, May 2015. https://www.rfc-editor.org/rfc/rfc7540

  3. 3.

    Mozilla Developer Network, "String.prototype.toUpperCase()," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase

  4. 4.

    MDN Web Docs, "String.prototype.toLocaleUpperCase()," developer.mozilla.org, accessed October 2026. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase

  5. 5.

    sqlfluff, "Linting Rules Reference," docs.sqlfluff.com, accessed June 2026. https://docs.sqlfluff.com/en/stable/rules.html

  6. 6.

    "SQL Syntax," PostgreSQL Global Development Group, postgresql.org, accessed June 2026. https://www.postgresql.org/docs/current/sql-syntax-lexical.html

FAQ

UPPERCASE converts every character to capitals with no separator changes. CONSTANT_CASE (SCREAMING_SNAKE) also converts to capitals but adds underscores between words. "firstName" in UPPERCASE is "FIRSTNAME"; in CONSTANT_CASE it is "FIRST_NAME".

No. Only letter characters change. Numbers, spaces, underscores, and punctuation pass through unchanged.

Yes. Paste as many lines as you need,all of them convert at once.

For standalone SQL keywords, yes. For full query formatting with alignment and line breaks, a dedicated SQL formatter will serve you better, but for quick capitalization of keywords in a short query, this tool works fine.

No. All processing runs locally in your browser.

Convert Text to lowercase

lower case runs the browser's own Unicode lowercasing over the whole input, so accented letters and other scripts come through intact and a multi-line list keeps one entry per line. That makes it the safe first step before you compare strings, store email addresses or build search keys, and the guide below covers the locale differences and non-letter characters that can still surprise you.

Before comparing strings, generate slugs, or prepare search indexes, lowercase normalization removes avoidable ambiguity. When data arrives from user input or external APIs in mixed case, lowercasing it first makes the next processing step safer.

Yet lowercase is also a standalone output format for specific contexts: CSS property values, HTTP header names, and HTML attribute values are all lowercase by specification. Converting a list of mixed-case values in one pass avoids individual corrections.

Where lowercase normalization is required

Email addresses are case-insensitive by RFC 5321 specification,1 but servers and databases compare them as strings. Storing emails in lowercase before indexing prevents duplicates like "[email protected]" and "[email protected]". URL paths in most web servers are case-sensitive on Linux but case-insensitive on macOS and Windows, causing cross-platform routing bugs.2 Lowercasing all URL slugs before saving eliminates this ambiguity. Furthermore, HTML attribute values like type, rel, and method are specified as lowercase.3 HTTP header field names are case-insensitive by the HTTP specification,4 but many server implementations normalize them to lowercase internally. Search engines treat lowercase and uppercase URL variants as separate pages unless a canonical tag or redirect is in place, making lowercase normalization an SEO concern as well as a technical one.

Edge cases: locale differences and non-alphabetic characters

The converter uses JavaScript's toLowerCase(), which handles most Latin-script characters correctly. Locale-specific cases exist: the Turkish language distinguishes dotted I from dotless i, so lowercasing the dotted capital in "İSTANBUL" with the Turkish locale produces "istanbul" correctly, but JavaScript's default toLowerCase() does not apply the Turkish locale.5 For the vast majority of web application use cases (ASCII identifiers, email addresses, URL slugs), this is not a concern. Non-alphabetic characters (numbers, punctuation, emoji, CJK ideographs) pass through unchanged because they have no case distinction. The German ß lowercases to itself (it has no uppercase form in traditional German orthography, though the capital ẞ was added to Unicode in 2017). For applications that process multilingual content, testing with representative samples from each supported language catches locale-specific issues before they affect production data.

Workflow: normalizing user input before database storage

Building on this, a practical pattern: before inserting user-provided fields into a database (email addresses, usernames, and tags), run them through a lowercase normalizer. This tool lets you test the normalization with real data before writing the application code. Paste a list of raw user input samples, confirm the lowercased output looks correct, and use the same logic (str.toLowerCase() or str.lower()) in your application. CapyToolkit processes each line independently. For user-generated tags and categories, lowercase normalization at submission time prevents the common drift where "JavaScript", "javascript", and "Javascript" coexist as separate entries for the same concept. Running your existing tag list through this converter during a one-time migration identifies exactly which duplicates would merge, giving you a concrete count of the cleanup impact before you write the migration script.

Generating URL slugs with consistent lowercase output

URL paths on Linux servers are case-sensitive. "articles/my-Post" and "articles/my-post" resolve to different routes, and a capital letter in a slug causes 404 errors that are hard to trace in production logs. Lowercasing all URL slug components before saving prevents this class of error entirely. Building the lowercase normalization into your slug generation pipeline from the start is far cheaper than retrofitting redirects after search engines have already indexed inconsistent URLs. When you generate slugs from user-provided titles at request time rather than at publish time, a single lowercase call in your slug function ensures that every URL your application produces follows the same convention regardless of how the author capitalized the original title.

Slug generation from titles and headings

A typical slug pipeline takes a title ("My Blog Post"), lowercases everything, replaces spaces with hyphens, and strips non-alphanumeric characters. The lowercasing step is where inconsistency most often enters: a CMS field that accepts either case, a manually typed slug with an uppercase letter, or a title copied from a document in Title Case. Running the raw title through this converter before passing it to a slug function produces a consistent starting point. You then apply the hyphen and strip steps in your application code.

Canonical URLs and duplicate content prevention

Google treats https://example.com/Blog/Post and https://example.com/blog/post as separate URLs. If both exist, they split link equity and can trigger a duplicate content flag. Serving all URLs from lowercase paths and issuing 301 redirects for uppercase variants is the standard fix. Before generating URLs in bulk, run any user-provided path components through this tool to verify the lowercase form before writing the normalization into your application.

Testing normalization with real user input before writing application code

User input arrives in every capitalization shape. Before writing a normalization function, testing the logic against realistic data samples reveals edge cases that unit tests written in isolation may not cover. Building the lowercase normalization into your data pipeline from the start prevents the duplicate content and inconsistent lookups that arise when the same string arrives in different cases from different sources. Paste a sample of real user input from your application logs into this converter, verify the lowercase output handles every edge case you expect, and then implement the same logic in your production code with confidence that it covers the patterns your users actually submit.

Email address normalization across character sets

Most email servers treat the local part of an address as case-insensitive, but comparing stored emails requires a consistent format. Paste a sample of real email addresses from your signup form data into this converter and verify the lowercase output looks correct. Edge cases like addresses with multiple dots, plus signs, or domain parts with mixed case should all resolve to a predictable lowercase form. If any output surprises you, that reveals a gap in your normalization logic before you ship it.

Sub-addressing with the plus sign is preserved through lowercasing because the plus and everything after it sits in the case-insensitive local part. A user who registers [email protected] and later [email protected] keeps both aliases intact after normalization. The only characters that change are the letters, so tags and routing rules built on the plus sign survive the transform untouched.

Tag and category string normalization

Tags created by multiple authors in a shared CMS tend to drift: "javascript", "JavaScript", and "Javascript" exist as separate tags for the same concept. Lowercasing all tags at submission time (or during a one-time migration) collapses the duplicates. Paste your current tag list into this tool, copy the lowercase output, compare against your existing canonical tag list, and you can see exactly which duplicates would merge. CapyToolkit processes each line independently.

Use this when normalizing email addresses for storage, preparing strings for case-insensitive comparison, or formatting HTML attribute values, and to stop uppercase slugs from 404ing before user-supplied titles reach your routing layer on a case-sensitive server.

Mixed-case user emails → normalized storage format

Title Case tags → searchable lowercase tags

Before
JavaScript
Web Development
Open Source
Machine Learning
After
javascript
web development
open source
machine learning
Sources for this section
  1. 1.

    J. Klensin, "Simple Mail Transfer Protocol," RFC 5321, IETF, October 2008. https://www.rfc-editor.org/rfc/rfc5321

  2. 2.

    Google, "Consolidate duplicate URLs," Google Search Central, developers.google.com, accessed June 2026. https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls

  3. 3.

    WHATWG, "HTML Living Standard: Attributes," whatwg.org, accessed June 2026. https://html.spec.whatwg.org/multipage/syntax.html#attributes

  4. 4.

    IETF, "Hypertext Transfer Protocol Version 2 (HTTP/2)," RFC 7540, IETF, May 2015. https://www.rfc-editor.org/rfc/rfc7540

  5. 5.

    MDN Web Docs, "String.prototype.toLocaleLowerCase()," developer.mozilla.org, accessed October 2026. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLocaleLowerCase

FAQ

No. Email servers treat addresses as case-insensitive by the RFC 5321 spec. Lowercasing before storage only ensures consistent database lookups,it does not change which mailbox receives the email.

Yes. Paste as many lines as you need; each line converts independently.

Lowercase just changes the case of each character with no separator modifications. kebab-case also splits on word boundaries and joins with hyphens. "Hello World" in lowercase is "hello world"; in kebab-case it is "hello-world".

Yes. Google recommends lowercase URLs to avoid duplicate content from case variations. Most web frameworks generate lowercase slugs by default for this reason.

No. All conversions run locally in your browser. Nothing leaves your device.

Convert Text to Capitalized Case

Capitalized Case uppercases the first character of each space-separated word and lowercases the rest, with no list of small words to skip, so the lord of the rings becomes The Lord Of The Rings. Each line of a pasted list converts on its own, but within a line the row splits on whitespace and rejoins with single spaces, so a mixed-case name such as iPhone becomes Iphone and a hyphenated word keeps one capital, which makes brand names worth checking afterwards.

When every word needs equal visual weight, Capitalized Case gives you a simple rule. It makes every word start with an uppercase letter and lowercases the rest, which fits proper nouns in prose, product names in documentation, and formatted display text.

Capitalized Case differs from Title Case only in the treatment of the existing characters: Title Case on this tool produces the same result because both capitalize every word. The distinction matters in word processors that implement style-specific rules for articles and prepositions, but this tool applies simple word-boundary logic to all words for product labels and prose terms alike.

Where Capitalized Case is used

Product names in documentation and marketing copy use Capitalized Case: "User Authentication Service", "Payment Gateway Integration". Proper noun phrases in prose require it: "New York City", "North Atlantic Treaty Organization". Navigation labels in legacy software and some enterprise applications use Capitalized Case rather than the Sentence case preferred in modern design systems.1 Building on this, database column display names, the text an admin UI shows for a column as opposed to its identifier, often use Capitalized Case.2 Salesforce, HubSpot, and Airtable all use Capitalized Case for field labels throughout their interfaces,3 so when you build integrations that map database fields to these platforms, the display names should follow the same pattern. Academic reference lists in APA and Chicago styles use Capitalized Case for article and book titles,4 making this the expected format for bibliography entries in research software and citation management tools.

Edge cases: apostrophes, hyphens, and acronyms

Apostrophes in contractions and possessives do not start a new word: "it's" stays "It's" (not "It'S"). Hyphenated words count as one word, because only spaces separate words here: "well-known" becomes "Well-known". Acronyms already in UPPERCASE (like "API") get converted to "Api" because every letter after the first is lowercased. Consequently, for strings containing acronyms, review the output before use. Joined mixed-case inputs such as "UserProfile" count as one word and become "Userprofile", so separate the words with a space first if you want "User Profile". Single-character words like "a" and "i" capitalize to "A" and "I", which is correct for display text. Runs of spaces inside a line collapse to a single space, so accidental double spaces in pasted input do not survive into the result.

Workflow: formatting product name lists for documentation

Building on this, here is a common use: when writing feature lists or product category names in documentation, paste a list of raw lowercase or snake_case identifiers, convert to Capitalized Case, and copy the display names directly into your Markdown or HTML. CapyToolkit processes each line independently, so 30 product names convert in one pass. You get display-ready text without manually fixing each word's capitalization. For API documentation generated from OpenAPI specs, the summary and description fields often start as camelCase method names. Converting those to Capitalized Case before writing them into the spec produces human-readable endpoint descriptions in the generated docs without a separate formatting pass. When the API surface grows to hundreds of endpoints, this batch conversion saves hours of manual editing.

Formatting database column names as display labels in admin UIs

Admin dashboards and data tables need human-readable column headers. Database column names are snake_case by convention, but display labels in a grid or report need to be readable to non-technical users. Converting them in batch is faster than writing each label manually. Building a consistent display-label convention into your admin tooling from the start prevents the drift where every new column gets a hand-typed label that does not match the rest of the interface.

snake_case fields to display-ready strings

Paste a list of column names from your schema (first_name, created_at, is_email_verified) and copy the Capitalized Case output (First Name, Created At, Is Email Verified). Those are display-ready labels for a schema column, so use them as headers in your admin table, CSV export, or PDF report. CapyToolkit processes each line independently, so a 30-column schema converts in one pass. The result is display-ready copy without manual label writing.

A consistent display-label convention also helps downstream report generators and exporters. When the same column renders as "First Name" in a grid and as "first_name" in a CSV, analysts lose trust in the export. Running every schema column through this converter once, before the report template is built, guarantees that the grid header and the exported file use the same words. The Microsoft Power Apps guidance for column display names points in the same direction: readable labels beat raw identifiers wherever a non-technical user sees the data.

Matching display label conventions in enterprise software integrations

Enterprise tools like Salesforce, HubSpot, and Airtable use Capitalized Case for field labels throughout their interfaces. If you are building an integration or import tool that maps database fields to these platforms, using Capitalized Case for the mapped field display names creates visual consistency between your output and the target platform's existing UI. Users see labels that match the pattern they already recognize.

Capitalized Case versus Title Case in word processors and CMS tools

Capitalized Case and Title Case produce visually similar results, but they differ in one important way: Capitalized Case capitalizes every word without exception, while full Title Case implementations in style-guide-compliant tools lowercase articles and short prepositions. Knowing which rule applies to your context prevents output that looks correct on short phrases but breaks on longer ones.

Which to use when your CMS offers both options

If your CMS or word processor has a "Capitalize" option, it likely applies Capitalized Case (every word, no exceptions). An explicit "Title Case" option may apply Chicago or APA rules, lowercasing words like "of", "in", "the", and "a".5 For most display text in web UIs and data tables, Capitalized Case is what you actually want because the exceptions in APA and Chicago style only matter in formal publishing contexts. CapyToolkit's Capitalized Case converter applies the simpler, more predictable rule, making it the right choice for product copy and data labels.

Use this when formatting product names, proper noun phrases, database column display labels, or navigation items that should have every word capitalized.

snake_case database fields → display labels

Before
first_name
last_name
created_at
phone_number
After
First Name
Last Name
Created At
Phone Number

lowercase tag names → formatted category labels

Before
user authentication
payment processing
order management
After
User Authentication
Payment Processing
Order Management
Sources for this section
  1. 1.

    "Capitalization," Microsoft Style Guide, learn.microsoft.com, accessed June 2026. https://learn.microsoft.com/en-us/style-guide/capitalization

  2. 2.

    Microsoft, "Create and edit columns for Microsoft Dataverse using Power Apps," learn.microsoft.com, accessed October 2026. https://learn.microsoft.com/en-us/power-apps/maker/data-platform/create-edit-field-portal

  3. 3.

    Salesforce, "Object Reference," developer.salesforce.com, accessed June 2026. https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/

  4. 4.

    "The Chicago Manual of Style Online," chicagomanualofstyle.org, accessed June 2026. https://www.chicagomanualofstyle.org/home.html

  5. 5.

    "APA Style: Title Case Capitalization," apastyle.apa.org, accessed June 2026. https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case

FAQ

On this tool, both produce the same output: every word capitalized. Full Title Case implementations in word processors apply APA or Chicago rules (lowercasing short prepositions and articles), but this converter uses simple word-boundary capitalization for all words.

Hyphenated words count as one word: "well-known" becomes "Well-known". Whether this is the correct behavior depends on your style guide; some guidelines capitalize every segment, so fix those by hand.

Yes. Paste as many lines as you need; each line converts independently.

Yes. Paste the column names, convert to Capitalized Case, and use the output as display label aliases in your query. The conversion is purely presentational.

No. CapyToolkit keeps Capitalized Case conversion local in your browser, so stored or sent text is not involved.

Convert Text to aLtErNaTiNg cAsE

aLtErNaTiNg cAsE flips case by character position across the whole input, and spaces and punctuation still count as positions even though they have no case to change. The first character is always lowercase and the second uppercase, which is why the same word can come out in a different pattern depending on what comes before it; the guide below covers meme captions and testing case-insensitive systems.

For text that needs a deliberately uneven rhythm, aLtErNaTiNg cAsE alternates uppercase and lowercase for every character in sequence. It carries a specific tone (ironic, mocking, or sarcastic) borrowed from internet meme culture.

Yet this is a character-level transformation with no word boundary awareness. Spaces, punctuation, and numbers are counted in the alternation sequence but do not change case themselves.

Where alternating case is used

Alternating case became widely recognized as the "mocking SpongeBob" meme format, where text imitates a sarcastic tone by alternating the case of each letter.1 Social media platforms, Discord messages, and informal developer communication use it to signal disagreement or irony. Beyond meme contexts, some creative typographers use alternating case for stylistic effect in headings and banners. Programming humor contexts (documentation jokes, conference talk slides) sometimes include it as a deliberate contrast to formal code formatting. The format has also appeared in album titles, video game names, and street art, where the visual irregularity draws the eye and signals an intentional departure from conventional presentation. In user research and UX testing, alternating case is occasionally used in prototype text to signal "placeholder content" that participants should not read as final copy.

How the alternation works: character sequence, not word sequence

The converter assigns lowercase to even positions and uppercase to odd positions across the entire string.2 Spaces and non-letter characters count toward the position index,3 which means the case of letters after a space depends on how many characters came before the space. Consequently, the same words produce different letter casing depending on where they appear in the string. This is by design: the irregular visual rhythm creates the characteristic staggered appearance. Punctuation marks like commas, periods, and exclamation points also count as positions, which means the casing pattern shifts after every piece of punctuation. For programmers, the indexing is zero-based: position 0 is lowercase, position 1 is uppercase, position 2 is lowercase, and so forth.4 The algorithm does not reset at word boundaries, which is why multi-word phrases produce a different visual pattern than converting each word in isolation.

Workflow: generating alternating case for meme captions

Building on this, the typical use is straightforward: type or paste your text, copy the alternating case output, and paste it into your message, caption, or document. The tool is intentionally lightweight, with no options for starting character or word-level vs. character-level alternation. It is especially useful when you need a caption to feel intentionally informal or playful across a social post. For more controlled visual patterns, use the aLtErNaTiNg output row directly on the main Text Case Format Converter tool. When generating test fixtures for a string-processing library, paste a known phrase into this converter, copy the exact output, and use it as the expected value in your test assertions. The deterministic alternation (same input always produces the same output) makes it a reliable source of expected test values without needing to compute the pattern by hand.

Alternating case as input for testing case-insensitive systems

Beyond meme formatting, alternating case has a practical application in testing: it produces input that exercises every case-handling branch of a case-insensitive function. No other single input string achieves this as efficiently. Security testing also benefits from alternating-case input: authentication systems that compare API keys, session tokens, or passwords should reject any case variation, and alternating-case test strings verify that the comparison is truly case-sensitive where it should be.3 Running a single alternating-case test through every comparison path in your application reveals case-handling bugs that would otherwise stay hidden until a real user submits mixed-case input in production.5

Testing case-insensitive string comparison functions

A function that compares email addresses case-insensitively should treat [email protected], [email protected], and [email protected] as identical. Running alternating case strings through your comparison function is a fast way to verify the function does not depend on any particular case pattern. If the comparison passes for all-lowercase and all-uppercase forms but fails for alternating case, the function is not correctly case-insensitive. This tool produces mixed-case fixtures for your test suite in one click, covering a broader range of character patterns than manual input typically would. For search functionality testing, alternating-case queries verify that the search index normalizes case consistently: a search for "dOcUmEnT" should return the same results as "document" and "DOCUMENT". Generating these test queries from a single source string through this converter ensures consistent test data across your test suite.

A good test suite should include alternating-case input alongside the all-lowercase and all-uppercase forms it already covers. OWASP's guidance on case sensitivity testing calls out case variation as a class of input that exposes inconsistent comparison logic. Adding a few alternating-case fixtures to a regression suite catches the specific failure where a function passes on uniform input but breaks on the staggered pattern. Because the output is deterministic, the same fixture can be reused across every build without recomputing the expected string.

The character position index and its effect on letter patterns

Alternating case behavior depends on the position of each character across the entire string, not the position within each word. Spaces and punctuation count toward the index even though they do not change case themselves. Understanding this index behavior helps you predict the exact output when converting phrases of different lengths. The zero-based indexing model is consistent and deterministic, so the same input always produces the same output regardless of how many times you run it through the converter.

Why identical words produce different casing in different positions

Converting "hello world" produces "hElLo wOrLd". Converting only "world" in isolation produces "wOrLd". The word "world" produces different letter casing in the two contexts because its starting position in the string differs. In "hello world", the "w" falls at position 6 (counting from 0, which is even, so lowercase). As a standalone string, "w" is at position 0 (also even, so lowercase). The first letter of "world" matches in both cases, but the remaining letters shift because they land at different positions in the sequence.

Controlling starting case with pre-positioned strings

If you need the alternating case to start with an uppercase letter rather than lowercase, prepend a single space character before your text before converting, then remove it from the output. The space occupies position 0 (even, lowercase, unchanged), shifting all following characters by one position. Your actual first letter lands at position 1 (odd) and renders uppercase. This is not a built-in option in the tool, but the workaround takes seconds and requires no configuration.

Use this when you need the mocking meme text format for social media captions, Discord messages, informal developer humor, or creative typographic effects.

Normal text → mocking meme format

Before
you should use frameworks
please write tests
After
yOu sHoUlD UsE FrAmEwOrKs
pLeAsE WrItE TeStS

Standard phrase → alternating case version

Before
works on my machine
After
wOrKs oN My mAcHiNe
Sources for this section
  1. 1.

    "Mocking SpongeBob," Know Your Meme, knowyourmeme.com, accessed June 2026. https://knowyourmeme.com/memes/mocking-spongebob

  2. 2.

    Mozilla Developer Network, "String.prototype.charCodeAt()," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

  3. 3.

    OWASP Foundation, "Testing for Case Sensitivity," owasp.org, accessed June 2026. https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/07-Testing_for_Case_Sensitivity

  4. 4.

    Unicode, "Character Properties, Case Mappings & Names FAQ," unicode.org, accessed June 2026. https://unicode.org/faq/casemap_charprop.html

  5. 5.

    NIST, "Digital Identity Guidelines: Authentication and Lifecycle Management," SP 800-63B, nist.gov, June 2017. https://pages.nist.gov/800-63-3/sp800-63b.html

FAQ

The first letter is lowercase, and subsequent letters alternate: "hello" becomes "hElLo". Non-letter characters (spaces, numbers, punctuation) are included in the position count but do not change case.

Yes. Each line converts independently, and the alternation sequence restarts for each line.

Technically yes, some creative typography projects use alternating case for visual effect. In coding contexts, it is occasionally used in test data to verify that a system handles mixed-case input correctly.

The main tool at the Text Case Format Converter page shows the aLtErNaTiNg output in a dedicated row. You can also use the inverse by applying InVeRsE cAsE to the alternating output.

No. CapyToolkit keeps alternating case generation local in your browser, so stored text is not involved.

Word case formats

The second table shows 9 word-level transformations, each of which alters how words are recognised and rebuilt rather than how individual letters are cased. Understanding how the tool splits a string into words is the key to predicting what each output will look like, especially when the input mixes several separator styles or contains compound identifiers.

Case converter turning user account settings into lower, upper, capitalized, alternating and inverse case, then camelCase, PascalCase, snake_case and kebab-case
One input, every format at once: user account settings becomes userAccountSettings, UserAccountSettings, user_account_settings, USER_ACCOUNT_SETTINGS and user-account-settings.

How word splitting works

Splitting recognises explicit separators (spaces, underscores, hyphens, dots, and slashes) and implicit compound identifier boundaries at the same time. It flags lowercase-to-uppercase transitions inside a run of letters, letter-to-digit transitions, and acronym edges where a sequence of capitals meets a following capitalised word. Because of that detection, getHTTPCode produces get / http / code and userID produces user / id without any manual cleanup, and mixed inputs such as hello_world-test still resolve into a clean word list before the joining step runs.

  • camelCase. Lowercases the first word and capitalizes every subsequent word. Use: JavaScript identifiers and object keys, where project style often normalizes names before data moves between systems.23
  • PascalCase. Capitalizes every word in the identifier. Use: C# and .NET types and members, where Microsoft's guidelines use PascalCasing for public member, type, and namespace names.4
  • snake_case. Joins every word with an underscore. Use: Python variables, functions, and module names, where PEP 8 recommends lowercase with underscores.5
  • SCREAMING_SNAKE. The same as snake_case, but rendered in all capital letters. Use: constants and portable POSIX utility environment variables, where names use uppercase letters, digits, and underscores.6
  • kebab-case. Joins every word with a hyphen. Use: CSS custom properties, where the CSS variables spec uses dashed names such as --main-color.7
  • dot.case. Joins every word with a dot. Use: Java package names (com.example.app), configuration keys, semantic versioning references.
  • path/case. Joins every word with a forward slash. Use: file system paths, URL path segments, directory structures, routing patterns.
  • sentence case. Capitalizes only the first word and lowercases the rest. Use: prose sentences, user-facing messages, email body text, captions.
  • Title Case. Capitalizes every word in the string. Use: headings, book titles, navigation labels, button text, card titles in UI design.

The same identifier in the five head conventions

One worked example shows the whole family at once. Take preferredShippingMethod, a three-word compound any API might carry: pasted into the input, it appears as preferredShippingMethod in the camelCase row, PreferredShippingMethod in PascalCase, preferred_shipping_method in snake_case, PREFERRED_SHIPPING_METHOD in SCREAMING_SNAKE, and preferred-shipping-method in kebab-case, all updated together. The differences between those rows are three small decisions: which words receive a capital letter, which character joins the words, and whether the first word starts with a capital. Every convention in the table is one answer to those three questions, and the rows show the answers side by side.

Reading that row set is the point of the exercise. One word list rebuilds every format, which is why a single paste answers every conversion direction at once: the row you arrived for sits on screen next to rows you did not know you needed. Note the SCREAMING_SNAKE row in particular, because many codebases call that format constant case and treat it as the spelling of a module-level constant. If you land here for one pair of conventions, you leave holding all five, with the boundary decisions visible instead of implied by a single convention's name.

What one paste converts

All 14 rows update from a single paste, and every row keeps your line breaks, though the two groups get there differently. The character-level rows transform the entire block in place, so a multi-line list of names comes back fully converted in lower case, UPPER CASE, aLtErNaTiNg cAsE, and InVeRsE CaSe, with every line still where you left it. The word-level rows and Capitalized Case work one line at a time: each line is split into its own word list and rebuilt, so the identifier on line three of your paste becomes line three of every output row.

The workflow consequence is that a whole column converts in one pass. Paste 30 snake_case field names and the camelCase row returns 30 properties in the same order, with any blank lines between groups kept as blank lines, ready to drop into an interface or a migration. Use-as-input chaining works on the whole list too, so an indirect transition the direct rows miss still applies to every line at once. Only one rule needs care: put one identifier per line, because spaces inside a line are word boundaries and join that line's words into a single name.

Accented and non-Latin text hits the two groups differently, and the difference is worth knowing before you paste. The character-level rows use the browser's Unicode-aware casing, so accented letters and other scripts survive a lower case or UPPER CASE pass exactly as typed. Because the word-level rows keep only ASCII letters and digits, treating every other character as a separator, an accented letter drops out of the word list entirely and never reaches the rebuilt identifier. The practical boundary is simple: word-level output is always ASCII, and text carrying accents should use the character-level rows or be transliterated before any word-level conversion.

Convert Anything to Sentence case

Sentence case is a word-level row: the converter first splits the input into ASCII words, then capitalizes the first word and lowercases the rest, joining them with single spaces, one line of a pasted list at a time. Punctuation acts as a separator and drops out, and a mixed-case name such as GitHub splits into two words, so the row suits short labels and button text, while full sentences need their punctuation and capitals fixed by hand.

For UI copy, the quiet choice is often best. Sentence case capitalizes only the first word and leaves the rest lowercase, which is why button labels, notification messages, tooltip text, and error messages follow it in modern product design.

Yet applying Sentence case manually to a long list of UI strings is tedious. Paste your strings into this tool, and each line converts to Sentence case in one pass.

Where Sentence case is used

Google Material Design1 recommends Sentence case for button labels, form field labels, dialog body text, and notification messages, while Apple's Human Interface Guidelines2 describe sentence case as the more casual choice and ask you to pick one style per element type and use it consistently. Sentence case is also the standard for error messages in most developer frameworks: "Invalid email address" rather than "Invalid Email Address". Furthermore, in technical writing, all body text follows Sentence case, with only headings and proper nouns deviating. Tooltip content and accessibility text (aria-label attributes) should also use Sentence case.

Microsoft's Fluent Design System follows the same rule for all UI controls,3 and the Writing Style Guide from Microsoft explicitly states that Sentence case is the default for all user-facing strings. The UK Government Digital Service4 and the US Web Design System5 both mandate Sentence case for form labels and error messages, making it the most widely prescribed capitalization style for public-sector digital services. When you apply Sentence case across a product, every notification banner, inline validation message, and empty-state description follows the same quiet capitalization rule, which creates a consistent reading experience that feels approachable rather than shouty. The mechanical simplicity of the rule (first word capitalized, everything else lowercase) makes it the easiest style to enforce in code and the hardest to get wrong during content reviews.

Edge cases: proper nouns, acronyms, and multi-line input

This tool applies a mechanical rule (first word uppercased, rest lowercased) and does not detect proper nouns or brand names. Consequently, "Send to GitHub" converts to "Send to git hub", because the capital H also marks a word boundary, which would need a manual fix. Acronyms like "URL" in "Invalid URL format" also become "Invalid url format". For UI strings containing proper nouns or acronyms, treat this tool as a starting point and review the output before use. Each line in a multi-line input is treated as an independent sentence. Non-English text needs another route: the row keeps only ASCII letters and digits, so accented letters, Cyrillic, Greek and caseless scripts like Chinese or Arabic drop out of the result. Punctuation at the start of a line, such as a bullet character, drops out too, while a leading number becomes the first word, so "1. save changes" comes back as "1 save changes".

Workflow: standardizing a list of error messages

Building on this, a practical workflow: export your error message keys and strings from a localization file (JSON or .po), paste the strings into this tool, and copy the Sentence case output back. You avoid reviewing each message individually for capitalization errors. CapyToolkit converts each line independently, so a file with 200 error messages processes in one pass. Review proper nouns and acronyms after conversion for a clean result. For React projects using react-intl or FormatJS, the converted strings slot directly into your message definitions without further editing. When you add a new language to your application, running the same source strings through this converter gives you a consistent capitalization baseline across all locales before translators begin their work, which reduces review cycles and keeps the source-of-truth strings clean.

Design system guidelines that specify Sentence case for labels

Three of the most-adopted design systems prescribe Sentence case as the default for all interactive and informational copy. Understanding which elements fall under that rule helps you apply it consistently across a product. Applying the rule uniformly prevents the visual inconsistency that creeps in when different authors follow different capitalization habits across a long-lived product with many contributors.

When your team builds across platforms and wants visual parity with OS conventions, Sentence case is the safe default for any label that is not a proper name or brand identifier. The alternative, Title Case, draws attention to every word equally, which creates visual noise in dense interfaces where users need to scan quickly. Sentence case lets the first word anchor the reader's eye and lets the rest of the label recede into the background, which is exactly the behavior you want for secondary text that supports the primary content rather than competing with it.

Material Design and Fluent Design Sentence case rules

Material Design 3 specifies Sentence case for navigation destinations, card titles, dialog titles, and button labels. Microsoft's Fluent Design System follows the same pattern for all UI controls. Both systems reserve Title Case for product names and brand proper nouns only. When your team builds across platforms and wants visual parity with OS conventions, Sentence case is the safe default for any label that is not a proper name or brand identifier.

The practical effect is fewer arguments during design review. When the guideline is simple, authors stop debating whether a given label should be Title Case or Sentence Case and just follow the default. You can apply the same baseline to your strings in CapyToolkit by pasting your labels and converting them, then distributing the output so every component renders the same capitalization style.

Tokens and component libraries that surface Sentence case at the content layer

Design token libraries sometimes surface display text through CMS content fields or structured copy decks. If your component library's <Button> renders whatever string you pass it unchanged, Sentence case enforcement falls entirely to the content author. Batch-converting existing button label strings is faster than reviewing each label by hand, so run every label through Sentence case before pasting them into a token file or CMS. You get a consistent baseline in one pass.

Comparing Sentence case output against proper noun preservation

Sentence case is a mechanical transformation. This tool handles the rule correctly, but some output strings require human review before going into production. Understanding which strings need that review pass is what separates a quick batch conversion from a publish-ready result that reads naturally to your users. When you convert a hundred UI strings at once and every brand name, acronym, and product title in the list arrives in lowercase, a systematic review pass through the output catches the exceptions that the mechanical rule cannot handle on its own.

Brand names, product names, and trademarked strings

Brand names that do not follow standard capitalization rules (iPhone, eBay, GitHub) will be split at their inner capital and lowercased by this tool because they are not the first word in the sentence. A string like "Connect with GitHub" becomes "Connect with git hub" after conversion. Review your output list and restore any brand-capitalized terms before copying to your codebase. Keeping a short list of brand exceptions specific to your product makes the review faster on subsequent passes.

Acronyms in error messages and technical labels

Acronyms like "URL", "API", "ID", and "HTTP" lose their uppercase form when they are not the first word in the sentence. "Invalid API key" becomes "Invalid api key", which looks incorrect to most readers. Review technical strings for acronyms before finalizing the conversion. If your design system mandates all-lowercase for error messages, the tool output may be correct as-is. If the system expects uppercase acronyms preserved, restore them after conversion.

Use this when writing UI button labels, form error messages, notification text, or tooltip strings that should follow Sentence case per your design system.

Title Case UI labels → Sentence case equivalents

Before
Save Your Changes
Delete This Item
Confirm Your Email Address
Upgrade Your Plan
After
Save your changes
Delete this item
Confirm your email address
Upgrade your plan

ALL_CAPS error codes → readable error messages

Before
INVALID_EMAIL_ADDRESS
PASSWORD_TOO_SHORT
ACCESS_DENIED
After
Invalid email address
Password too short
Access denied
Sources for this section
  1. 1.

    Google, "Material Design 3: Buttons," m3.material.io, accessed June 2026. https://m3.material.io/components/buttons/guidelines

  2. 2.

    Apple, "Writing," Human Interface Guidelines, developer.apple.com, accessed October 2026. https://developer.apple.com/design/human-interface-guidelines/writing

  3. 3.

    Microsoft, "Capitalization," Microsoft Style Guide, learn.microsoft.com, accessed June 2026. https://learn.microsoft.com/en-us/style-guide/capitalization

  4. 4.

    Government Digital Service, "Writing for user interfaces," gov.uk, accessed June 2026. https://www.gov.uk/service-manual/design/writing-for-user-interfaces

  5. 5.

    US Web Design System, "List," designsystem.digital.gov, accessed June 2026. https://designsystem.digital.gov/components/list/

FAQ

No. The converter applies a mechanical rule and lowercases all words after the first. Brand names and proper nouns need a manual review pass after conversion.

Sentence case capitalizes only the first character; lowercase converts everything. "Hello World" becomes "Hello world" in Sentence case and "hello world" in lowercase.

Yes. Each line converts independently, so pasting an entire exported localization file works fine.

Most modern design systems, Material Design and Apple HIG, recommend Sentence case for labels. Title Case is common in older desktop software conventions. Check your design system documentation for the definitive answer.

No. CapyToolkit keeps Sentence case conversion local in your browser, so stored or transmitted text is not involved.

Title Case Converter for Headings and Titles

Title Case on the converter capitalizes every word it finds, including short words such as a, of and the, because it applies no style-guide rules. It works from the same ASCII word list as the programming rows, so punctuation drops out while each line of a pasted list stays its own title; the guide below explains where APA or Chicago capitalization still needs a manual pass afterwards.

The <title> element defines the document title and affects SEO; page titles can influence search result order and reader click-through1. Title case is a common convention for English-language work titles: most words are capitalized, while articles, short conjunctions, and short prepositions are often left lowercase unless they start or end the title2. Applying it consistently across headings helps long articles and publishing workflows avoid uneven capitalization.

Where Title Case is used

Title Case applies to article headings, page titles, and navigation labels in contexts where every word deserves visual weight. English-language title case commonly capitalizes most words while leaving articles, short conjunctions, and short prepositions lowercase unless they start or end the title3. Google's developer documentation style uses sentence case for document titles, headings, captions, labels, callouts, and table elements4, and Apple's interface text guidance allows either title-style or sentence-style capitalization for labels5. That means Title Case remains useful for publishing-style headings, while contemporary UI copy often leans toward Sentence case. Academic publications, book covers, and newspaper mastheads still rely on Title Case as the dominant convention, and most style guides (Chicago, APA, MLA) specify it for reference lists and bibliographies. Understanding which convention your project follows prevents inconsistent capitalization across documents that should look like they belong to the same publication.

What this tool does not cover: style-guide-aware title casing

Common title-case rules lowercase short prepositions such as "of", "in", and "at", articles such as "a", "the", and "an", and coordinating conjunctions such as "and", "but", and "or" unless they are the first or last word2. Apple defines title-style capitalization similarly for interface labels: capitalize every word except articles, coordinating conjunctions, and prepositions of four or fewer letters, while always capitalizing the first and last word5. This tool capitalizes every word regardless of part of speech. Consequently, "The History of Art" becomes "The History Of Art", so review small prepositions and articles after conversion if your style guide requires them.

Workflow: formatting blog headings before publishing

Building on this, a practical use: when you have a list of article headings drafted in lowercase or mixed case, paste them all into this converter and copy the Title Case output. You get consistently capitalized headings for a blog post, documentation page, or changelog. CapyToolkit processes each line independently, so a document with 15 section headings converts in one pass. Review prepositions and articles after conversion if your style guide requires it. For static site generators like Hugo or Astro, the heading in the Markdown frontmatter becomes the page title in the HTML output, the navigation menu, and the Open Graph social preview. Running it through this converter before committing ensures the published heading matches the visible heading on the page, which prevents the common mismatch where a social share shows different capitalization than the article itself.

Title Case in HTML meta tags and structured data markup

HTML meta tags carry title text into search results and social previews without the visual context of a styled page. What appears in the browser tab, the Open Graph preview, and the JSON-LD structured data field should all agree in capitalization style. When these three surfaces show different casing for the same article, readers who click through from a social share perceive a quality mismatch between the preview they saw and the page they landed on.

Open Graph and Twitter Card titles

Open Graph og:title appears in link previews on LinkedIn, Slack, and Discord. When the og:title differs from the visible visible heading in capitalization style, users who arrive from a social share see a mismatch between what attracted them and what the page delivers. Using Title Case for og:title ensures the preview and the landing page look like they belong to the same document. Most CMS platforms populate og:title directly from the page title field, so correcting title case in one place updates both the visible heading and the meta tag simultaneously.

The consistency this creates matters for trust. A reader who clicks a link preview expects the landing page to match what the preview promised, and mismatched capitalization undermines that first impression. You can check your own pages in CapyToolkit by pasting a heading and converting it, then comparing the result against the og:title your CMS emits to confirm the two surfaces agree.

JSON-LD article headlines and schema.org name fields

Schema.org's Article schema specifies a headline property that represents the article title for rich results and Knowledge Graph entries. Google's Structured Data guidelines do not mandate a capitalization style, but they do require the headline to match the visible content on the page. If your schema.org headline reads "How to convert camelCase" while the visible visible heading reads "How To Convert CamelCase", the inconsistency can appear in a structured data audit as a content mismatch. Running both the visible heading and the structured data string through this converter together ensures they stay in sync.

When to prefer Sentence case over Title Case in publishing workflows

Two situations make Sentence case the better choice even in contexts where Title Case might seem appropriate. Knowing which applies to your workflow prevents unnecessary back-and-forth during content reviews. The decision between these two styles affects every heading, label, and notification string in your product, so establishing the rule early prevents a patchwork of inconsistent capitalization that accumulates technical debt across every new feature.

Design systems that prescribe Sentence case for headings

Material Design 3 specifies Sentence case for all display, headline, and title components inside application UIs. Apple's Human Interface Guidelines recommend Sentence case for window titles and all button text. Both systems reserve Title Case for product names and brand proper nouns only. If your product ships on Android, iOS, or the web following either design system, using Title Case for headings inside the app creates a visual inconsistency with platform norms. Running existing Title Case content through a Sentence case converter before implementing a new component library prevents that conflict early.

Long-form documentation where acronyms are dense

Technical documentation with acronyms like "API", "HTTP", or "JSON" can look cluttered in Title Case because each acronym is treated as a word to capitalize. "How To Use The REST API With JSON" reads more naturally as "How to use the REST API with JSON". Sentence case keeps the capitalization of established acronyms unchanged because only the first word is affected. For API references, SDK docs, and developer guides, Sentence case reduces visual noise from densely capitalized section headings.

Use this when a set of article headlines, page titles, navigation labels, or card headings needs the same treatment, since you can capitalize every word in a heading in one pass instead of editing each line by hand before publishing.

Blog post title cleanup

Before
how to convert camelCase to snake_case in python
After
How To Convert Camel Case To Snake Case In Python

Navigation label formatting

Before
getting started with the api
advanced configuration options
frequently asked questions
After
Getting Started With The Api
Advanced Configuration Options
Frequently Asked Questions
Sources for this section
  1. 1.

    MDN Web Docs, "<title> HTML document title element," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/title

  2. 2.

    Wikipedia editors, "Wikipedia: Manual of Style/Titles of works," en.wikipedia.org, accessed June 2026. https://en.wikipedia.org/wiki/Wikipedia:Manual_of_Style/Titles_of_works

  3. 3.

    Microsoft, "Microsoft Style Guide: Capitalization," learn.microsoft.com, updated August 2024. https://learn.microsoft.com/en-us/style-guide/capitalization

  4. 4.

    Google, "Google Developer Documentation Style Guide: Capitalization," developers.google.com, updated April 2025. https://developers.google.com/style/capitalization

  5. 5.

    Apple Inc., "Text Style Guidelines," developer.apple.com, updated December 2013. https://developer.apple.com/library/archive/documentation/FinalCutProX/Conceptual/FxPlugHIG/TextStyleGuidelines/TextStyleGuidelines.html

FAQ

The tool capitalizes every word including articles and prepositions. If you need Chicago or APA style (which lowercases short prepositions), review those words manually,full style-guide-aware title casing requires knowing the part of speech of each word, which this tool does not attempt.

Yes. Each line is processed independently. Paste a list of headings and all of them convert in one pass.

Title Case capitalizes every word. Sentence case capitalizes only the first word and proper nouns. Most article headings use Title Case; most UI tooltips and notification messages use Sentence case.

No. CapyToolkit processes Title Case conversions in your browser. Nothing is sent to any server.

No. This tool capitalizes every word without exception. APA and Chicago rules lowercase short prepositions, articles, and conjunctions (unless they are the first word). For strict style-guide compliance, review words like "of", "in", "a", "the", "and", "or" in the output after conversion.

Chaining conversions

The "Use as input" button next to each row lets you chain transformations. Click it and the converted text becomes the new input, so the tool immediately recalculates all 14 formats based on the updated text. This is useful when you need to go from one format to another that the tool doesn't support directly. For example, you can start with a snake_case variable, convert it to camelCase, and then use that result as the input to produce kebab-case in a second step.

CapyToolkit offers this chaining workflow because real-world text transformations rarely fit inside a single conversion. Variable names move between languages when Python snake_case needs to become JavaScript camelCase. URL slugs evolve when a Title Case heading should become a kebab-case path for SEO. Configuration keys get normalized across systems when a dot.case property needs to turn into a SCREAMING_SNAKE constant. Chaining lets each of those shifts happen in place without losing the intermediate result.

Variable naming conventions across languages

Different ecosystems make casing part of their conventions. Python's PEP 8 recommends lowercase function and variable names with underscores, while JavaScript guidance uses camelCase for function names and PascalCase for class names.25 Microsoft's .NET guidance uses PascalCasing for public member, type, and namespace names and camelCasing for parameter names.4 CSS custom property names start with two dashes, and the CSS variables spec shows dashed names such as --main-color.7

Moving code between these worlds is where conversion earns its place in a workflow. Copying a Python REST API response into a TypeScript interface means every snake_case field needs camelCase treatment before the types compile. Generating CSS variable names from a Figma token list means converting Title Case labels to kebab-case before they work as custom properties. Exporting database column names to an ORM model means snake_case columns become camelCase or PascalCase properties depending on the ORM's convention. Each step is mechanical, but doing it manually across dozens of identifiers invites slip errors that take real time to trace through compiled output and failing tests.

Configuration files and data formats add another layer. JSON object names are strings rather than a mandated casing scheme, while portable POSIX utility environment variables use uppercase letters, digits, and underscores.36 A single project can pull data from multiple formats and require consistent naming before any of the data can be joined or compared. That work fits the way the converter reads a paste: a block of field names converts wholesale, one identifier per line, through the character-level and word-level rows alike, so a 30-field list is one bulk drop rather than 30 separate pastes. Either way, the mechanical effort is seconds against the hand-typing alternative, and the output keeps the order of the list you pasted. CapyToolkit's Text Case Format Converter handles all 14 formats in a single pass, so you pick the target format and every output updates simultaneously.

The same conversion also runs in code when a refactor is too large to paste. In any mainstream language, the standard library can perform it, and the routine is always the same three steps this tool runs: split the identifier into words using boundary rules, normalize each word's case, and join with the separator the target convention calls for. A regex or a handful of string methods covers the split for most inputs, while acronym edges and digit boundaries are the cases that reward a tested helper over a hand-rolled one-liner. Written once and reviewed, that helper then serves every future migration.

Sources
  1. 1.

    Ecma International, "ECMAScript® 2027 Language Specification: Text Processing," tc39.es, accessed June 2026. https://tc39.es/ecma262/multipage/text-processing.html

  2. 2.

    MDN Web Docs, "Guidelines for writing JavaScript code examples," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/MDN/Writing_guidelines/Code_style_guide/JavaScript

  3. 3.

    T. Bray, "The JavaScript Object Notation (JSON) Data Interchange Format," RFC 8259, IETF, December 2017. https://datatracker.ietf.org/doc/html/rfc8259

  4. 4.

    Microsoft Learn, "Capitalization Conventions," learn.microsoft.com, October 2023. https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions

  5. 5.

    Guido van Rossum, Barry Warsaw, and Alyssa Coghlan, "PEP 8 – Style Guide for Python Code," peps.python.org, accessed June 2026. https://peps.python.org/pep-0008/

  6. 6.

    The Open Group, "Environment Variables," IEEE Std 1003.1-2024, pubs.opengroup.org, 2024. https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap08.html

  7. 7.

    W3C, "CSS Custom Properties for Cascading Variables Module Level 1," w3.org, June 2022. https://www.w3.org/TR/css-variables/

FAQ

No. CapyToolkit does not collect, store, transmit, or log any text data. All 14 case conversions run entirely inside your browser tab using vanilla JavaScript — nothing leaves your device.

Yes. Each row has a "Use as input" button. Click it and the converted text becomes the new input, so you can go from snake_case to camelCase to kebab-case in one click.

Yes. In addition to explicit separators like underscores, hyphens, and spaces, the splitter detects lowercase-to-uppercase transitions, acronym edges, and letter-to-digit boundaries. So "getHTTPCode" splits into get, http, code; "userID" into user, id; and "parseHTML" into parse, html. Mixed inputs like "hello_world-test" still work the same way — split on all separators, rebuild from the clean word list.

Title Case capitalizes every word (Like This), while Capitalized Case makes only the first character of each word upper case and the rest lower (Like This). For single words they produce the same result.

No. These are character-level transformations that work on every character in the string regardless of words. aLtErNaTiNg flips each character in sequence; InVeRsE swaps upper and lower case for each character.