Case Converter
UPPER, lower, Title, camelCase, snake_case, kebab-case.
100% in your browser — nothing uploadedChange text to uppercase or lowercase
About this case converter
Paste text and switch it to any casing with one click. Beyond the everyday transforms (uppercase, lowercase, Title Case, Sentence case), it includes the developer set: camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE — handling word boundaries in existing identifiers intelligently.
Sentence case respects punctuation, capitalizing after periods, question marks and exclamation points, including the inverted ¡ and ¿ that open a Spanish sentence. Accented characters convert correctly (á ↔ Á), which many tools get wrong: Spanish orthography requires the accent on capitals, so ATENCIÓN and ÁNGEL keep their tildes instead of losing them.
The developer cases are not stylistic preferences — each ecosystem standardised on one and its tooling enforces it. PEP 8 puts Python functions and variables in lowercase with underscores and classes in CapWords. Rust’s API guidelines give UpperCamelCase to types, traits and enum variants, and snake_case to everything value-level. The .NET guidelines use PascalCase for every public member and camelCase only for parameter names. Go decides visibility by case: a leading capital is what exports a name from its package. SQL leans on snake_case for a mechanical reason — PostgreSQL folds unquoted identifiers to lower case (the SQL standard says upper case, which is its own portability trap), so a camelCase column has to be double-quoted forever.
Automatic conversion has edges that no tool papers over completely, and it is worth knowing where they are. Runs of capitals are the big one: a word boundary is detected where a lowercase letter or digit is followed by a capital, so XMLHttpRequest becomes xmlhttp_request and HTTPResponse becomes httpresponse. Put the spaces in yourself (XML Http Request) when the acronym matters. That same boundary rule only fires on Latin letters, so Cyrillic or Greek camelCase collapses into a single word. And some case changes simply are not reversible: German ß uppercases to SS, and lowercasing SS gives you ss, never ß back.
Case conversion in a browser follows Unicode’s default rules rather than your language’s, which is what you want almost always. Turkish and Azerbaijani are the exception: there a capital I should lowercase to the dotless ı, and this tool will give you i. Greek is handled properly — ΟΔΟΣ lowercases to οδος with the correct final sigma. The bigger caution is people’s names. Title Case has no idea that McDonald, O’Brien, de la Cruz and van der Berg each follow a different rule, and it will produce Mcdonald, De La Cruz and Van Der Berg. Convert the column, then read it before it reaches a mail merge or a contract.
Which case goes where: a naming convention reference
Nine buttons, but in any given file only one output is the conventional answer. Here is where each style is the documented convention.
| Style | Example | Where it is the convention |
|---|---|---|
| camelCase | userProfileUrl | JavaScript and Java variables and methods; .NET parameter names |
| PascalCase | UserProfileUrl | Types: C# public members, Java classes, Rust types, traits and enum variants |
| snake_case | user_profile_url | Python functions, variables and modules (PEP 8); Rust functions, locals and modules; SQL tables and columns |
| CONSTANT_CASE | USER_PROFILE_URL | Python module constants; Rust consts and statics; POSIX environment variables |
| kebab-case | user-profile-url | CSS properties and custom properties; HTML attributes; URL path segments; npm package names |
| MixedCaps | UserProfileURL | Go, which uses no underscores; the leading capital is also what exports the name |
| lowercase | userprofileurl | Go package names and Python package names — short, one word, no separators |
Acronyms are the one point where the guides openly disagree, so check the house style before arguing about it. Rust asks you to treat an acronym as a single word: Uuid, not UUID. The .NET guidelines capitalize acronyms longer than two letters the same way (HtmlTag) but keep two-letter ones intact (IOStream). Go goes the other way entirely and requires consistent case inside the initialism: ServeHTTP, never ServeHttp, and appID rather than appId.
That disagreement is also this tool’s main limitation. Word boundaries are found where a lowercase letter or digit meets a capital, which is enough for userProfileUrl and html5Parser but not for a run of capitals: XMLHttpRequest converts to xmlhttp_request and HTTPResponse to httpresponse. If the acronym matters, separate it by hand first and the transforms will follow. The rule also only recognises Latin letters, so иванИванов comes back as one word.
Input user profile URL
UPPERCASE USER PROFILE URL
lowercase user profile url
Title Case User Profile Url
Sentence case User profile url
camelCase userProfileUrl
PascalCase UserProfileUrl
snake_case user_profile_url
kebab-case user-profile-url
CONSTANT_CASE USER_PROFILE_URLThree case-sensitivity traps are worth memorising, because each one produces a bug that looks like something else. CSS property names are case-insensitive but custom property names are not, so --my-color and --My-color are two different variables. PostgreSQL folds unquoted identifiers to lower case, so SELECT userId works only until someone creates the column as "userId" with quotes. And POSIX defines environment variable names as uppercase letters, digits and underscore, reserving names containing lowercase letters for applications — which is why CONSTANT_CASE, not kebab-case, is the safe choice in a Dockerfile or a CI config.
How to change uppercase to lowercase in Word, Excel and Google Docs
Word has a real control and Excel has none — that is the whole difference. In Word, select the text and use Home > Change case: Sentence case, lowercase, UPPERCASE, Capitalize Each Word, tOGGLE cASE. Shift+F3 cycles lowercase, UPPERCASE and Capitalize Each Word; on a Mac, fn+Shift+F3.
Microsoft puts the Excel side plainly: "Unlike Microsoft Word, Microsoft Excel doesn’t have a Change Case button for changing capitalization." You need a helper column.
- Insert a temporary column next to the text.
- Enter =UPPER(A2), =LOWER(A2) or =PROPER(A2) and fill down.
- Copy it, right-click the original column, choose Paste > Values.
- Delete the helper column.
Check what PROPER does before trusting it on names. Microsoft documents it as capitalizing the first letter and any letter following a non-letter, lowercasing the rest — their own examples return "2-Way Street" and "76Budget". So O'BRIEN becomes O'Brien and NASA becomes Nasa.
Google Docs sits closer to Word: Format > Text > Capitalization, offering lowercase, UPPERCASE, Title Case and small caps.
Paste the column above instead: all nine transforms in one pass, no helper column, no paste-values step, accented capitals kept accented.
FAQ
What’s the difference between camelCase and PascalCase?
camelCase starts lowercase (myVariableName); PascalCase starts uppercase (MyClassName). Conventionally, variables use camel and classes use Pascal.
Does Title Case lowercase small words?
This tool capitalizes every word, the simple convention. Editorial style guides that lowercase short words (of, the, a) vary too much to automate reliably.
Can I convert an existing camelCase name to snake_case?
Yes — the developer transforms detect word boundaries from capitals, spaces, dashes, and underscores, so myVariableName becomes my_variable_name.