Text Case Converter

Reading time: 5 min Last updated: February 10, 2026 Algorithm: Unicode-aware case mapping
Typography and text formatting
Quick Summary: Paste your text, click any case button, and get instant results. Supports 12 case conversions including UPPERCASE, camelCase, snake_case, and more. Character and word counts update in real time.
Characters: 0 Words: 0 Sentences: 0 Lines: 0
Table of Contents
  1. Typography Conventions
  2. Programming Naming Conventions
  3. CSS text-transform Property
  4. Internationalization Considerations
  5. Frequently Asked Questions

Typography Conventions

Text case conventions have evolved over centuries of typographic practice. The terms "uppercase" and "lowercase" originate from the physical layout of moveable type in printing workshops. Capital letters were stored in the upper case (the higher type drawer), while small letters were stored in the lower case. This physical arrangement from the era of Gutenberg gave us the terminology we still use today.

Title Case is used for headings, book titles, article titles, and proper nouns. The conventions for title case vary between style guides. The Associated Press (AP) Stylebook, The Chicago Manual of Style, and the APA Publication Manual each have slightly different rules for which words to capitalize. This converter follows the most common convention: capitalize all words except articles (a, an, the), short prepositions (in, on, at, to, for, of, by), and short conjunctions, unless they are the first or last word of the title.

Sentence case capitalizes only the first word of a sentence and proper nouns. It is the default case for body text in most writing systems that use the Latin alphabet. Sentence case is increasingly preferred for UI elements and headings in modern web design, as it feels more natural and conversational than Title Case. Google's Material Design guidelines, for example, recommend sentence case for all UI text.

ALL CAPS (uppercase) is used for acronyms, abbreviations, and emphasis in informal writing. In typography, all caps reduces readability for long text blocks because the uniform height of capital letters eliminates the distinctive word shapes that our eyes use for rapid recognition. This is why body text is never set in all caps — the loss of ascenders and descenders makes reading significantly slower.

Programming Naming Conventions

In software development, naming conventions are among the most debated topics. The choice between camelCase, snake_case, PascalCase, and kebab-case is not arbitrary — each convention is standard in specific languages and contexts, and consistency within a codebase is paramount.

camelCase (also called lower camelCase) starts with a lowercase letter and capitalizes the first letter of each subsequent word: getUserName, calculateTotalPrice, isValidEmail. It is the dominant convention in JavaScript, TypeScript, Java, and C# for variable names, function names, and method names. The name comes from the "humps" created by the capital letters in the middle of the identifier.

PascalCase (also called upper camelCase) is identical to camelCase but with the first letter also capitalized: UserService, HttpClient, DatabaseConnection. PascalCase is standard for class names and type names in most languages. In C#, it is also used for public method names and properties. The convention is named after the Pascal programming language, where it was first widely used.

snake_case separates words with underscores, with all letters in lowercase: user_name, total_price, is_valid. It is the standard convention in Python (PEP 8), Ruby, Rust, and C for variables and functions. Snake case is also common in database column names and SQL identifiers. Its advantage is clarity — underscores provide a visible word separator that is unambiguous even in fonts where lowercase 'l' and number '1' look similar.

kebab-case separates words with hyphens: user-name, main-content, is-active. It is the standard convention for CSS class names, HTML attributes, URL slugs, and file names. Kebab-case cannot be used for variable names in most programming languages because the hyphen is interpreted as a minus operator. The name references how the words are "skewered" on the hyphens like meat on a kebab stick.

CONSTANT_CASE (also called SCREAMING_SNAKE_CASE) uses uppercase letters with underscores: MAX_RETRIES, API_BASE_URL, DATABASE_HOST. It is the universal convention for constants and environment variables across virtually all programming languages. The uppercase letters make constants visually distinct from regular variables, signaling to developers that the value should not be changed.

CSS text-transform Property

CSS provides the text-transform property to change the case of text in the browser without modifying the source HTML. The property accepts four values: uppercase (converts all characters to uppercase), lowercase (converts all characters to lowercase), capitalize (capitalizes the first letter of each word), and none (preserves the original case).

Using CSS text-transform is generally preferred over hard-coding uppercase text in HTML. It separates content from presentation, allowing the case to be changed by updating a stylesheet rather than editing content. It also preserves the original casing in the HTML source, which is important for accessibility (screen readers may read ALL CAPS text letter by letter) and SEO (search engines see the original case).

However, CSS text-transform: capitalize is not true title case — it capitalizes the first letter of every word, including articles and prepositions that should remain lowercase in titles. For proper title case rendering, JavaScript-based conversion (like this tool provides) is necessary.

Internationalization Considerations

Case conversion is more complex than it appears when working with international text. The rules for converting between uppercase and lowercase are defined by the Unicode Standard and vary by language and locale. Several notable complications arise in practice.

In Turkish and Azerbaijani, the letter 'i' has four variants: dotted lowercase (i), dotted uppercase (I with dot above), dotless lowercase (dotless i), and dotless uppercase (I). The standard ASCII uppercase of 'i' is 'I', but in Turkish it should be 'I with dot above'. This means that correct case conversion requires locale awareness — a detail that many programming languages handle through locale-specific string functions.

German has the sharp-s character (Eszett) which historically had no uppercase form. When converting to uppercase, it was traditionally replaced by "SS". Unicode 5.1 introduced a capital sharp-s character, but its adoption varies. Some German-speaking regions accept it while others still prefer the SS replacement.

Greek has context-dependent final sigma: the lowercase sigma at the end of a word uses a different character (final sigma) than sigma in the middle of a word. Proper case conversion from uppercase to lowercase Greek text must account for word position to select the correct sigma variant.

Frequently Asked Questions

What is Title Case?

Title Case capitalizes the first letter of each word, except for minor words like articles (a, an, the), prepositions (in, on, at, to, for, of, by), and conjunctions when they are not the first word. This follows standard typographic conventions used in English-language publishing.

When should I use camelCase vs snake_case?

camelCase is the convention in JavaScript, Java, TypeScript, and C#. snake_case is preferred in Python, Ruby, Rust, and C. Follow the style guide of your programming language or project. Consistency within a codebase matters more than which convention you choose.

What is kebab-case used for?

kebab-case (words separated by hyphens) is commonly used in URLs, CSS class names, HTML attributes, and file names. It is readable and URL-friendly. It cannot be used for variable names in most programming languages because the hyphen is interpreted as a minus operator.

What is CONSTANT_CASE?

CONSTANT_CASE (also called SCREAMING_SNAKE_CASE) uses all uppercase letters with underscores between words. It is the standard convention for constants and environment variables in virtually all programming languages, from JavaScript to Python to Rust.

Does Title Case handle articles and prepositions?

Yes. The converter follows standard title case rules: articles (a, an, the), prepositions (in, on, at, to, for, of, by), and short conjunctions are not capitalized unless they are the first word of the title.

Is my text sent to a server?

No. All text processing happens entirely in your browser using JavaScript. No data is transmitted to any server. You can verify this by disconnecting from the internet and confirming the tool still works.

Can I convert text with special characters?

Yes. The converter handles Unicode characters correctly. Case conversion follows JavaScript's built-in Unicode-aware toUpperCase() and toLowerCase() methods, so accented characters and non-Latin scripts are handled properly.

TB
Thibault Besson-Magdelain
Developer and technical writer focused on building practical web tools. Creator of TextToBinary.net.
Connect on LinkedIn

Back to Text & Data Converters