πŸ”€ Utilities

Text Case Converter

Convert text between camelCase, snake_case, kebab-case, PascalCase, SCREAMING_SNAKE_CASE, Title Case, dot.case, path/case, UPPERCASE, lowercase and more in real time. Click any output to copy it instantly.

πŸ“– How to Use This Tool
β–Ό
1
Type text in the input field
2
All conversions show at once: camelCase, snake_case, etc.
3
Click any result to copy it
4
Bulk Convert handles multiple lines
πŸ“ Examples
camelCase
Input: hello world
Output: helloWorld
All Conversions
Bulk Convert

One identifier per line β€” all lines are converted to the chosen case.

Case Reference
Case Example Common Use

Browser Converter vs. Editor Plugins and CLI Renamers

Most code editors already ship a rename-refactor feature, and IDEs like IntelliJ or VS Code with the right extension can convert a selected identifier's case in place. Those tools are the right choice when the change needs to propagate through an entire codebase β€” a rename-refactor understands scope and updates every reference safely, something a text converter has no way to do. Where a browser-based converter earns its place is everything upstream of code: naming a new column before a migration is written, deciding on an environment variable name before it exists anywhere to refactor, or translating a product spec's plain-English field names into every casing convention a cross-language API needs simultaneously.

Command-line alternatives exist too β€” a one-off sed or awk substitution can mechanically convert case in a file, and codemod frameworks like jscodeshift can do it safely across a whole repository β€” but both require writing and testing a script for what is often a single lookup. This tool is deliberately the fast path: paste once, get every casing convention back immediately, with no script to write or repository to touch.

Tokenizing Text Before Recasing It

Before any output format can be produced, the converter has to agree on what the "words" in the input actually are β€” the mechanism handling this is a boundary-detection tokenizer. It inserts breaks in three situations: at existing separators (spaces, underscores, hyphens, dots, slashes), at a lowercase-to-uppercase transition typical of camelCase or PascalCase input (helloWorld β†’ hello / World), and at the boundary within an acronym run followed by a new word (XMLParser β†’ XML / Parser, so the acronym isn't shredded into single letters). Once the input is reduced to this word list, every output format is just a different join-and-capitalize rule applied to the same tokens: snake_case lowercases and joins with underscores, kebab-case does the same with hyphens, PascalCase capitalizes every token and concatenates, camelCase does the same but leaves the first token lowercase. Because every format shares the same tokenizer, a single input reliably produces a consistent set of outputs rather than each conversion re-parsing the string independently.

Where Case Conversion Bites Teams

The API Field That Broke Every Mobile Client

A backend team once ran what they thought was a purely cosmetic cleanup: standardizing every field in a public JSON API from inconsistent mixed casing to strict camelCase, matching the JavaScript frontend's conventions. The change shipped in a routine deploy, and within minutes crash reports started arriving from the mobile apps β€” both iOS and Android clients had model-mapping code that deserialized JSON fields by exact string match against the old, inconsistent field names, and the "cleanup" had renamed several of them out from under those clients with no warning. The web frontend, coincidentally, used a JSON library lenient enough to keep working.

The incident forced a rollback and a much slower second attempt: adding the new camelCase field names alongside the old ones, giving every client team weeks to migrate, and only removing the legacy field names once telemetry confirmed nothing was still requesting them. The lesson generalized well beyond this one field-naming exercise β€” any rename to something external clients depend on needs a deprecation window, not a same-day cutover, no matter how mechanical the rename itself feels.

Frequently Asked Questions

What text cases does this tool support?

The tool converts between camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, kebab-case, Title Case, UPPER CASE, lower case, dot.case, path/case, and more. All conversions happen simultaneously from a single input β€” you type or paste once and every variant is generated instantly. This is particularly useful when you need to define the same concept across multiple contexts: a Kubernetes label (kebab-case), an environment variable (SCREAMING_SNAKE_CASE), a Go struct field (PascalCase), and a JSON API field (camelCase) all from the same descriptive phrase.

What is the difference between camelCase and PascalCase?

camelCase begins with a lowercase letter and capitalises the first letter of each subsequent word β€” for example, myVariableName or getUserById. PascalCase (also called UpperCamelCase) capitalises every word including the first β€” for example, MyVariableName or GetUserById. In practice, camelCase is the standard for variable and function names in JavaScript, Java, Go, and Kotlin, while PascalCase is reserved for class names, TypeScript interfaces, React components, and Go exported identifiers. Understanding this distinction prevents common naming errors when reviewing code or designing APIs.

When should I use SCREAMING_SNAKE_CASE?

SCREAMING_SNAKE_CASE β€” all uppercase letters with underscores separating words β€” is the conventional format for environment variables, constants, and externally injected configuration values. Examples include DATABASE_URL, AWS_ACCESS_KEY_ID, MAX_RETRY_COUNT, and REDIS_CONNECTION_TIMEOUT. Using this convention universally signals to engineers that a value is fixed configuration or a constant rather than a computed runtime variable. It is the standard across shell scripts, Docker and Docker Compose environment blocks, Kubernetes ConfigMaps and Secrets, GitHub Actions environment variables, and twelve-factor app configuration. Most linters and style guides for Python, Java, and C enforce this convention for module-level constants.