Case Converter
Text ToolsConvert between upper, lower, title, camel, snake, kebab, Pascal, CONSTANT cases. Free, private — all processing in your browser.
Paste text once and see it in every case at the same time — UPPERCASE, lowercase, Title Case, Sentence case, and the programming conventions: camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, kebab-case, dot.case, and more. Click any result to copy it.
It's the fast fix for the everyday friction of naming things: turning a column header into a variable name, a page title into a URL slug, or a constant into the right convention for whatever language you're in. Nothing is sent anywhere — it converts in your browser as you type.
What the Case Converter can do
12+ case styles
Upper, lower, Title, Sentence, camel, Pascal, snake, kebab, CONSTANT, dot, path, alternating, inverse — all in one tool.
Side-by-side preview
See your text in every case style simultaneously. No need to toggle between options.
Smart word detection
Automatically recognizes word boundaries in any source format (spaces, underscores, hyphens, case changes).
Preserves non-ASCII
Unicode characters (accents, emoji, CJK) are preserved through conversions — only case rules apply to Latin letters.
Bulk conversion
Paste multiple lines and convert all at once. Each line converts independently.
Copy any variant
One-click copy for any case style. Ideal workflow for converting variable names across languages.
Live conversion
Output updates as you type. Fast iteration for testing different cases.
100% client-side
All conversion happens in your browser — your text never leaves your device.
How to use the Case Converter
- 1
Paste or type text
Drop text in the input area. Single line, multiple lines, or multiline paragraphs — all supported.
- 2
See all cases
Every case style is computed simultaneously. Scroll through to find the one you need.
- 3
Copy the result
Click Copy next to the case style you want. Paste into your code, config, or document.
- 4
Bulk convert multiple lines
If multiple lines are pasted, each line converts independently — useful for bulk renaming or list formatting.
When to use the Case Converter
Programming
- →Rename variables across languages: Port code from Python (snake_case) to JavaScript (camelCase) by converting variable names wholesale.
- →Convert API response keys: External APIs return snake_case keys; your JS code expects camelCase. Convert for clean integration.
- →Standardize naming conventions: Enforce your team's case conventions by converting legacy code to the preferred style.
- →Generate multiple variable forms: Need `userName` (variable), `USER_NAME` (env var), `user_name` (DB column)? Generate all from one input.
Content and writing
- →Format headings: Convert prose to Title Case for headings and subheadings. Apply title-case rules consistently.
- →Create URL slugs: Convert page titles to kebab-case slugs: `Hello World Post` → `hello-world-post`.
- →Fix all-caps or mixed-case text: Comments, notes, forum posts often have bad case. Clean up with lowercase or Sentence case.
- →Social media post formatting: Apply specific case styles for visual impact: Title Case for impact, ALL CAPS for emphasis.
Data and databases
- →Clean spreadsheet column headers: Excel/CSV exports often have inconsistent casing. Convert to snake_case for SQL or camelCase for JSON.
- →Normalize user input: User-submitted data with mixed casing — normalize before storing or comparing.
- →Convert database column names: Migrating from one database's convention to another (Postgres snake_case vs SQL Server PascalCase).
Design and UX
- →CSS class naming: Convert design tokens to kebab-case CSS classes or BEM notation.
- →Figma layer naming: Standardize layer names across design files by applying consistent casing.
- →Component naming: Convert between PascalCase (React components) and kebab-case (HTML custom elements).
Case Converter in practice
All cases at once
One input, all variants.
Hello World Example
UPPERCASE: HELLO WORLD EXAMPLE lowercase: hello world example Title Case: Hello World Example Sentence case: Hello world example camelCase: helloWorldExample PascalCase: HelloWorldExample snake_case: hello_world_example CONSTANT_CASE: HELLO_WORLD_EXAMPLE kebab-case: hello-world-example dot.case: hello.world.example
camelCase to snake_case
Convert variable naming between languages.
getUserProfile getOrderItems saveCustomer
get_user_profile get_order_items save_customer
snake_case to camelCase
Python to JavaScript style.
user_name first_name email_address
userName firstName emailAddress
Title to kebab (URL slug)
Blog post title to URL.
10 Best JavaScript Libraries for 2026
10-best-javascript-libraries-for-2026
UPPERCASE to Sentence case
Clean up ALL-CAPS text.
HELLO! THIS IS VERY EXCITING NEWS.
Hello! This is very exciting news.
Acronyms in camelCase
XMLParser to various cases.
XMLParser
snake_case: xml_parser camelCase: xmlParser kebab-case: xml-parser
Mixed input to CONSTANT_CASE
Environment variable naming.
APIendpoint URL
API_ENDPOINT_URL
How it works
Each convention has a home, and mixing them up is how code review comments happen:
- camelCase — JavaScript/TypeScript variables and functions, Java methods (userName, getData).
- PascalCase — classes, types, React components, C# most things (UserProfile).
- snake_case — Python variables/functions and SQL columns by convention (user_name).
- SCREAMING_SNAKE_CASE — constants and environment variables (MAX_RETRIES, API_KEY).
- kebab-case — URLs, CSS classes and custom properties, HTML attributes, npm package names (user-profile). Not legal in most language identifiers because the hyphen reads as minus.
- dot.case / path/case — config keys and file paths.
How the conversion works. The tool splits your text into words at spaces, hyphens, underscores, and case boundaries (so getUserName and get user name both tokenize the same), then reassembles them in the target style. That means you can convert *from* any case *to* any other, not just from plain text.
Common problems and solutions
⚠Using kebab-case in code identifiers
A hyphen is the minus operator in almost every language, so my-variable is a syntax error. Use kebab-case only for URLs, CSS classes, and filenames — snake_case or camelCase inside code.
⚠Acronyms getting mangled
Converting APIKey or parseHTML can produce a-p-i or lose the grouping, because case-boundary splitting treats each capital as a new word. Double-check identifiers that contain acronyms after converting.
⚠Expecting Title Case to follow a style guide
This capitalizes each word simply; real title-case rules (leaving small words like of, the, and lowercase) vary by style guide. For strict AP/Chicago title case, review the output by hand.
⚠Losing meaningful separators
Converting to camelCase or PascalCase removes spaces, hyphens, and underscores entirely. If those separators carried meaning (like a version or date), the joined result may be ambiguous — check before using.
⚠Numbers at word boundaries
How a converter treats version2 or v2Api varies. Confirm the placement of digits in the output, especially for identifiers where user2Name vs user2name matters.
How it compares
camelCase vs PascalCase. Same words joined together; the only difference is the first letter. Lowercase-first (camel) for variables and functions, uppercase-first (Pascal) for classes, types, and components. Picking the wrong one is a common lint error.
snake_case vs kebab-case. Both use a separator instead of capitalization; snake uses _, kebab uses -. The decisive factor: identifiers in code can't contain a hyphen (it's the minus operator), so kebab is for the *outside* world — URLs, CSS, filenames — and snake is for *inside* code (Python, SQL, Ruby).
Title Case vs Sentence case. Title Case capitalizes most words (headings, button labels); Sentence case capitalizes only the first word and proper nouns (body text, UI descriptions). Modern style leans toward Sentence case for interface text because it reads more naturally.
Case Converter — FAQ
▶What's the difference between camelCase and PascalCase?
Only the first letter. camelCase starts lowercase (userName) and is used for variables and functions; PascalCase starts uppercase (UserName) and is used for classes, types, and components.
▶Which case should I use for URLs and CSS?
kebab-case (words-with-hyphens). Hyphens are safe and readable in URLs, CSS class names, and custom properties. Avoid it inside code, where the hyphen is a minus sign.
▶Which case does Python use?
snake_case for variables and functions (user_name), PascalCase for class names (UserProfile), and SCREAMING_SNAKE_CASE for constants (MAX_SIZE). SQL columns also conventionally use snake_case.
▶Does it convert between cases, or only from plain text?
Both. It splits your input on spaces, hyphens, underscores, and case changes, so you can paste camelCase and get snake_case, or paste a Title and get kebab-case — any direction.
▶Is my text uploaded anywhere?
No. Every conversion runs in your browser as you type. Nothing is sent to a server, so it's safe for internal names, unreleased copy, or anything sensitive.
▶Does it handle acronyms correctly?
Mostly, but acronyms are the tricky case for any converter — HTMLParser or APIKey can split in unexpected ways. Give identifiers with acronyms a quick review after converting.
Useful references
- PEP 8 — Python Style Guide — Python's naming conventions (snake_case for functions/variables).
- Google JavaScript Style Guide — Google's JavaScript naming conventions.
- Airbnb JavaScript Style Guide — Widely adopted JS style guide with naming rules.
- BEM Naming Convention — Block-Element-Modifier naming for CSS.
- Naming Conventions (Wikipedia) — Overview of programming naming conventions.
Related tools
All Text ToolsFancy Text Generator
Convert plain text into dozens of fancy Unicode font styles (bold, italic, script, monospace, double-struck, circled, bubble, and more) ready to paste into social media bios and messages.
Find and Replace
Find and replace text with regex support, case sensitivity, whole-word matching, and preview of all changes before applying.
Random String Generator
Generate random strings with configurable length, character sets, and patterns for tokens, IDs, passwords, and test data.
Remove Duplicate Lines
Remove duplicate lines from text with case-sensitive or case-insensitive matching, preserving original order or sorting the result.
Sort Lines
Sort text lines alphabetically, numerically, by length, randomly, or in reverse, with options for case sensitivity and duplicate removal.
Text Repeater
Repeat any text a specified number of times with optional separators, line breaks, or custom delimiters for test data and patterns.
Learn more
Explore more tools
200+ free tools that run in your browser.
Browse all tools →