Case Converter
Convert text between uppercase, lowercase, title case, sentence case, camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE instantly.
Last updated: March 25, 2026
Used 39K+ timesWhat users say
“Converting snake_case database columns to camelCase for API responses used to be a mental chore. This does all 9 cases instantly — I use it multiple times a day.”
“Invaluable when switching between Python and JavaScript projects. The BEM/CSS naming convention tip in the notes was a bonus I didn't expect.”
Find this tool useful? Support the project to keep it free!
Buy me a coffeeWhat is Case Converter?
Text case conventions are naming rules that define how words are capitalized or delimited in identifiers, headlines, file names, and programming constructs. Each programming language, ecosystem, and context has a dominant convention: Python variables use `snake_case`; JavaScript uses `camelCase` for variables and `PascalCase` for classes; CSS class names use `kebab-case`; environment variables use `CONSTANT_CASE`; database column names use `snake_case`; URL slugs use `kebab-case`; editorial headlines use `Title Case`.
Converting between cases manually is tedious and error-prone — especially for multi-word names where you need to split on spaces, camelCase humps, or underscores before re-joining in a new format. This tool handles the full split-transform-join pipeline: you paste any text (regardless of its current case) and click the target case to instantly get the correctly formatted output. All 9 common cases are supported: UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, and CONSTANT_CASE.
How to Use Case Converter
Paste or type your text in the input field — it can be in any current case (space-separated, camelCase, snake_case, etc.)
Click any case button to convert: UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE
The output updates instantly — view the result in the output panel below the buttons
Click "Copy" to copy the converted text to your clipboard
Keep clicking different case buttons to explore how the same text looks in each convention
Common Use Cases
- Converting a space-separated product name ("User Profile Settings") to camelCase for JavaScript variable: userProfileSettings
- Transforming a Python snake_case function name ("get_user_profile") to a React component PascalCase: GetUserProfile
- Converting a blog post title to kebab-case for a URL slug: "how-to-use-typescript" from "How to Use TypeScript"
- Uppercasing variable names to CONSTANT_CASE for environment variables and .env files: DATABASE_CONNECTION_STRING
- Converting a database column name (user_created_at) to camelCase for a JSON API response field: userCreatedAt
- Normalizing inconsistently capitalized user input (all-caps, mixed) to sentence case for storage
- Converting a CSS class name (`.main-navigation-bar`) to a JavaScript object key in camelCase: mainNavigationBar
- Generating file names conforming to project naming conventions: from component name to kebab-case file path
Example Input and Output
Converting "user profile settings" to all 9 case conventions:
user profile settingsUPPERCASE: USER PROFILE SETTINGS
lowercase: user profile settings
Title Case: User Profile Settings
Sentence case: User profile settings
camelCase: userProfileSettings
PascalCase: UserProfileSettings
snake_case: user_profile_settings
kebab-case: user-profile-settings
CONSTANT_CASE: USER_PROFILE_SETTINGSClient-Side Processing
All case conversion runs in your browser. Text is never sent to our servers.
Case Conversion in Code
For programmatic case conversion in code: JavaScript/TypeScript: use the lodash utility library (_.camelCase(), _.kebabCase(), _.snakeCase(), _.startCase()) or the change-case npm package (camelCase, pascalCase, snakeCase, kebabCase, constantCase). Python: use str.lower(), str.upper(), str.title() for basic cases; the inflection library for snake_case/camelCase conversions. These libraries handle edge cases like acronyms (HTMLParser → html_parser → htmlParser) more reliably than hand-rolled regex.
CSS Naming Conventions
CSS class names use kebab-case by universal convention (.main-nav, .hero-section, .card-grid) because CSS property names themselves use kebab-case (font-size, background-color, border-radius). BEM (Block Element Modifier) methodology extends this: .block__element--modifier pattern (.card__title--featured). CSS Modules and CSS-in-JS tools (styled-components, Emotion) often bridge the gap — component props use camelCase in JavaScript but the generated CSS class names may use kebab-case or hashed names.
Frequently Asked Questions
What is camelCase vs PascalCase?
When should I use snake_case vs kebab-case?
What is Title Case and how does it differ from Sentence case?
What is CONSTANT_CASE and when is it used?
How does the converter handle text that is already in camelCase?
Does this work with non-English characters and accented letters?
How This Tool Works
Input text is first tokenized into an array of words by (1) splitting for space-separated words, (2) splitting on underscore or hyphen delimiters for snake_case/kebab-case, and (3) splitting camelCase/PascalCase on uppercase letter boundaries using a regex (/[A-Z]?[a-z]+|[A-Z]+(?=[A-Z]|$)/g). All words are then lowercased to normalize. The target case transformation is applied: for camelCase, the first word stays lowercase and subsequent words are capitalized; for snake_case, words are joined by underscores in lowercase; etc. The transformed word array is joined and returned.
Technical Stack