Free Case Converter
Convert text between UPPER, lower, Title, camelCase, snake_case, and more.
Choose Case
About Text Case Conversion
Text case conversion is the process of changing the capitalization style of text. Different contexts require different casing conventions. Title Case is standard for headings and book titles. camelCase and PascalCase are used extensively in programming for variable and class names. snake_case is common in Python and database column names. kebab-case is the standard for CSS class names and URL slugs.
This tool converts between 11 different case styles instantly as you type. All processing happens locally in your browser · nothing is sent to any server.
Common Uses
- Convert variable names between programming conventions
- Fix accidentally typed CAPS LOCK text
- Generate URL-friendly slugs with kebab-case
- Standardize headings and titles to Title Case
- Create database column names in snake_case
- Convert CSS class names to the right format
Frequently Asked Questions
What is the difference between camelCase and PascalCase?
camelCase starts with a lowercase letter and capitalizes each subsequent word (e.g., "myVariableName"). PascalCase capitalizes every word including the first (e.g., "MyVariableName"). camelCase is typical for JavaScript variables and functions, while PascalCase is used for class names in most languages.
What is CONSTANT_CASE used for?
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 most programming languages (e.g., MAX_RETRIES, API_BASE_URL).
Does this tool handle special characters?
Yes. Non-alphabetic characters (numbers, punctuation, symbols) are preserved as-is in most modes. For programmer modes like camelCase and snake_case, spaces and separators are used to identify word boundaries.
What is text case conversion?
Text case conversion is the process of transforming the capitalization of letters in a string without changing the letters themselves. The same word, "absolutool", can be written as ABSOLUTOOL (all caps for emphasis), absolutool (lower for body text), Absolutool (title case for headings), aBSOLUTOOL (inverse case for typos), or even AbSoLuToOl (alternating case for mocking memes). Each case carries a meaning that has accumulated over centuries of typographic and computing convention.
This converter handles 11 styles in a single click: lowercase, UPPERCASE, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, aLtErNaTiNg, and iNVERSE. The programmer cases (camel, Pascal, snake, kebab, constant) detect word boundaries automatically from spaces, hyphens, underscores or existing capitalization, so you can paste in mixed input and get clean output without manually marking the splits.
Everything happens in your browser. The text you paste never leaves your device, there are no API calls, no server processing, and the converted output is written directly into the read-only result box for one-click copying. The tool weighs a few kilobytes of JavaScript and runs in any modern browser without a network connection once the page is loaded.
What is inside the converter
The interface has three parts: a row of 11 case buttons at the top, an input textarea where you paste raw text, and a read-only output textarea below it that shows the converted result. The active button is highlighted, so you can see at a glance which case is currently being applied. Switching cases is instant, no submit step, no page reload.
Below the input area, a live counter displays the number of characters and words in real time as you type. This is useful when you are converting code identifiers (variable names tend to be short) versus prose (headings and titles often have a soft word ceiling). The counter ignores leading and trailing whitespace, so the numbers match what most text editors report.
Two action buttons sit at the bottom: Copy Result writes the output to your clipboard via the Clipboard API, and Clear empties both textareas. There is no save, no history, no undo. If you accidentally clear, paste your source text again. The tool treats every session as ephemeral by design, which is why nothing persists in localStorage or cookies.
History and background
Telegrams forced all caps (1844)
Samuel Morse's 1844 telegraph used a single-case alphabet because shift mechanisms did not exist. Operators wrote everything in capitals, a convention that persisted in cables, naval signals, and early teleprinters into the 1960s. The aesthetic of urgent, caps-only messaging traces directly to this technical limitation, not to a stylistic choice.
Shift key arrives on the Remington 2 (1878)
The Remington Model 2 introduced the shift key in 1878, enabling typists to produce both lowercase and uppercase letters on the same machine. Before this, typewriters could only print one case. The shift mechanism standardized the two-case writing system that ASCII would later encode digitally and that the case-conversion buttons on this page still respect.
ASCII assigns case bits (1963)
ASCII, published by ANSI in 1963 and revised in 1967, deliberately placed uppercase A through Z (65 through 90) and lowercase a through z (97 through 122) exactly 32 apart, so that flipping a single bit toggles case. This bit-level relationship is why uppercase and lowercase conversion is one of the cheapest operations a CPU can perform, and why every programming language has built-in functions for it.
Unix popularizes snake_case (1969)
Bell Labs Unix, released in 1969, used lowercase command names and underscore-separated identifiers in the C standard library (str_cpy, mem_alloc, file_open). Underscores worked around the shell's space-as-argument-separator and the inability of early identifiers to contain hyphens. The convention spread to Python (1991) where it became official style in PEP 8, and to Ruby, Rust, and most database schemas.
Smalltalk introduces camelCase (1972 to 1980)
Alan Kay's team at Xerox PARC, building Smalltalk from 1972, used camelCase for method names like addFirst: and removeLast:. The convention crossed into Objective-C in 1984, then Java in 1995 (Sun's coding style guide made it mandatory), and JavaScript in 1995 by direct inheritance from Java naming. Today camelCase is the default for variables and methods in roughly half of all production code.
CSS picks kebab-case (1996)
Hakon Wium Lie's CSS specification, published as a W3C Recommendation in December 1996, chose hyphens for multi-word property names: background-color, font-family, text-align. The choice was readability-driven, hyphens scan faster than underscores at small sizes, and CSS values cannot contain underscores in unquoted form. kebab-case later became the default for URL slugs, HTML data attributes, and most static site permalinks.
Practical workflows
JavaScript identifier conversion
You inherit a Python snippet using fetch_user_data and need to port it to JavaScript. Paste fetch_user_data, click camelCase, get fetchUserData. The tool handles the underscore-to-capital transition for you, no manual edit required. The same flow works in reverse for Python-to-JavaScript style migrations.
Python identifier conversion
A JavaScript API returns getUserById and you want to expose it as get_user_by_id in your Python wrapper. Paste, click snake_case, copy. The tool inserts underscores at every uppercase-to-lowercase boundary and lowercases all letters, exactly matching PEP 8.
URL slug generation
You wrote a blog post titled "10 Reasons Why kebab-case Wins For URLs" and need a permalink. Paste the title, click kebab-case, get "10-reasons-why-kebab-case-wins-for-urls". You may need to manually strip a leading number or special character depending on your CMS, but the bulk of the work is done.
Heading capitalization
A draft article header reads "what is css grid and when to use it". Click Title Case to get "What Is Css Grid And When To Use It". You may need to manually lowercase a few connectors (a, the, to, and) per AP or Chicago style, but the conversion handles 90 percent of the keystrokes.
Fix accidentally typed caps lock
You typed an entire paragraph with caps lock on and only noticed when you stopped. Paste the all-caps text, click Sentence case to get a proper first-letter-capitalized paragraph with the rest lowercase. This is faster than retyping and avoids the awkward halfway state of Word's "Change Case" submenu.
Database column naming
PostgreSQL and MySQL conventionally use snake_case for column names because unquoted identifiers are case-folded to lowercase by default. Paste "First Name Last Name Email Address" into the tool, click snake_case, and you get "first_name_last_name_email_address" ready to split into individual column definitions.
Common pitfalls
Title case rules vary by style guide
AP style lowercases prepositions of three letters or fewer (of, in, to, for), while Chicago style lowercases all prepositions regardless of length. This tool capitalizes every word, the simplest rule. If you need style-guide-correct output, review the result and lowercase connectors by hand, or use a dedicated AP or Chicago title-case tool.
Acronyms in camelCase look strange
The Java naming convention says HTTPRequest, but Google's Java style guide says HttpRequest. Microsoft's .NET guidelines side with Http. This tool follows the simpler rule of lowering all but the first letter of an acronym after the first word, producing fetchHttpData rather than fetchHTTPData. If your team uses a different rule, adjust by hand.
Unicode case folding has edge cases
German ß uppercases to SS (or to the rarely-used U+1E9E since 2017), Turkish i uppercases to dotted I (U+0130) rather than ASCII I, and final sigma in Greek (U+03C2) requires positional logic. This tool uses the browser's toUpperCase and toLowerCase, which follow the Unicode default and may not match your language's exact rules. Always verify locale-sensitive output.
Whitespace at the start or end is preserved
If you paste " hello world " (with leading and trailing spaces), camelCase returns " helloWorld " and snake_case returns " hello_world ". The tool does not trim by default because some use cases (formatting code blocks, preserving indentation) require the spaces. If you do not want them, trim the input before pasting or after copying.
Numbers as word boundaries are ambiguous
The string "html5Canvas2D" can split as html, 5, Canvas, 2, D or as html5, Canvas2D. This tool treats digits as part of the preceding word, so camelCase output stays html5Canvas2D and snake_case becomes html5_canvas2d. If you need digits to break words, manually insert a space before pasting.
Case-insensitive filesystems hide bugs
macOS APFS and Windows NTFS are case-insensitive by default, so MyComponent.js and mycomponent.js refer to the same file locally. Linux servers and ext4 are case-sensitive, so a deploy can fail with a confusing missing-module error. Always lowercase filenames or keep a strict case convention when working across operating systems.
Privacy and data handling
Every character you paste is processed in your browser by a small piece of JavaScript. There are no network requests, no cookies set by the converter itself, no analytics tied to the text you enter, and no logs of converted strings on our servers. The Copy Result button writes to the operating system clipboard, an action that requires explicit user gesture and is not visible to any third party.
Once the page is loaded, the converter works offline. You can disconnect from the network, open the page in a private window, or run it inside a sandboxed iframe, and the conversion still works. This makes the tool safe for sensitive identifiers, internal API names, and confidential prose that should never touch a third-party service.
When not to use a case converter
Translating between languages
Case conversion changes capitalization, not the words themselves. If you need to translate "Hello World" into French or Japanese, use a translation tool or a machine-translation API. Running text through camelCase will not produce a Japanese identifier, and converting to UPPER will not localize.
Generating stylized Unicode text
If you want fancy Unicode letters such as 𝓱𝓮𝓵𝓵𝓸 or 𝕙𝕖𝕝𝕝𝕠 (for social media bios), use a dedicated Unicode fancy-text generator. Case converters work with plain ASCII letters, A through Z, and do not substitute mathematical, fraktur, or doublestruck variants.
Counting words or characters
This tool shows a small live counter but is not optimized for word-frequency analysis, reading-time estimates, or character budgets for tweets. If you need detailed text statistics, use a word counter that breaks down sentences, paragraphs, and reading level. The case converter is only for capitalization changes.
Spell-checking or grammar review
Converting case will not fix a misspelled word. "Helo World" becomes "HELO WORLD" in UPPER and "helo world" in lower; the typo remains. Run text through a spell checker or grammar tool before or after case conversion if accuracy matters.
More questions
What is the difference between Title Case and Sentence case?
Title Case capitalizes the first letter of every word (Hello World From The Editor). Sentence case capitalizes only the first letter of the first word and any proper nouns (Hello world from the editor). Title Case is used for headings, book titles, and section headers; Sentence case is the default for body paragraphs and meta descriptions.
Why does my acronym look weird in camelCase output?
Different style guides handle acronyms differently. Google's Java style says HttpRequest, Microsoft's .NET says HttpRequest, but the older Sun style said HTTPRequest. This tool follows the more common modern convention of lowering all but the first letter, producing fetchHttpData. If your team uses the all-caps acronym style, manually capitalize the result.
Does this work for non-English text?
It works for any letters the browser's built-in toUpperCase and toLowerCase support, which covers most European and Cyrillic scripts. Edge cases include German ß (uppercases to SS), Turkish dotted and dotless I (locale-sensitive), and Greek final sigma (positional). For Japanese, Chinese, and Korean, case conversion is a no-op because those scripts do not have a case distinction.
Why is kebab-case the default for URLs?
Search engines treat hyphens as word separators but underscores as connectors, so /hello-world is indexed as two words while /hello_world is treated as one token. Google has confirmed this behavior since 2008. Hyphens also display cleanly in URL bars and copy without ambiguity, while spaces become %20 and underscores can be mistaken for hyphens at small font sizes.
Can I convert between multiple cases in a chain?
Yes. After clicking one case, the input area still holds your original text, so clicking a second case converts the original (not the previous output). To chain, copy the result, paste it into the input, and click the next case. This is intentional, it prevents accidental double-conversion that can produce odd results like double underscores or dropped capitals.
Is the converter open source?
The tool is part of Absolutool, a closed-source static site. The case-conversion algorithm itself is well-documented elsewhere (most languages ship a String.prototype.toUpperCase, a snake_case regex pattern, and a camelCase transform). If you want to self-host equivalent functionality, libraries like change-case (JavaScript) or stringcase (Python) cover all 11 cases and more.