Text Case Converter

Convert text between camelCase, snake_case, kebab-case, Title Case, and more.

Detected 5 words · Hello · world · from · Lovable's · tools

camelCase
helloWorldFromLovable'sTools
PascalCase
HelloWorldFromLovable'sTools
snake_case
hello_world_from_lovable's_tools
CONSTANT_CASE
HELLO_WORLD_FROM_LOVABLE'S_TOOLS
kebab-case
hello-world-from-lovable's-tools
COBOL-CASE
HELLO-WORLD-FROM-LOVABLE'S-TOOLS
Train-Case
Hello-World-From-Lovable's-Tools
dot.case
hello.world.from.lovable's.tools
path/case
hello/world/from/lovable's/tools
Title Case
Hello World From Lovable's Tools
Sentence case
Hello world from lovable's tools
lower case
hello world from lovable's tools
UPPER CASE
HELLO WORLD FROM LOVABLE'S TOOLS
aLtErNaTiNg
hElLo WoRlD fRoM lOvAbLe'S tOoLs
iNVERSE cASE
hELLO WORLD FROM lOVABLE'S TOOLS

About Text Case Converter

Text Case Converter transforms free text between programmer-friendly cases: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, Train-Case, and lower / UPPER / Sentence case. Each output is computed simultaneously, so picking the right one is a copy away. The transformer detects word boundaries from existing punctuation, case transitions, and digit boundaries — so `XMLHttpRequest` becomes `xml_http_request`, `userID` becomes `user_id`, and `Order2024Q3` becomes `order_2024_q_3`.

Reach for it when an external system uses a different casing convention than your code: API payloads in snake_case but TypeScript expects camelCase, environment variables in CONSTANT_CASE, URL slugs in kebab-case, file names in Train-Case, or import names in PascalCase. For converting JSON keys in bulk, use JSON Key Renamer instead — it applies the same case transforms to every key in a document recursively. This tool is for ad-hoc text or single identifiers.

Examples

Input
user account ID
Output
camelCase:    userAccountId
snake_case:   user_account_id
kebab-case:   user-account-id
CONSTANT:     USER_ACCOUNT_ID
PascalCase:   UserAccountId

All target cases shown side-by-side. The detector treats spaces, dashes, underscores, and case transitions as word boundaries.

Frequently asked questions

How does it detect word boundaries?

From three signals: explicit separators (spaces, dashes, underscores, dots), case transitions (lowercase → uppercase as in `userID`), and digit boundaries (`Order2024` → `Order` + `2024`). The combination handles most identifier styles you will encounter.

How is this different from JSON Key Renamer?

JSON Key Renamer applies the same case transforms but only to keys inside a JSON document, recursively. Use this tool for ad-hoc text and single identifiers; use Key Renamer when the input is JSON and every key needs renaming.

What about acronyms like XML or HTTP?

Acronyms are tricky. The default reads `XMLHttpRequest` as `XML` + `Http` + `Request` and emits `xml_http_request`. If you prefer treating an acronym as a single word in PascalCase output, the option toggle has 'preserve acronyms' — `XMLHttpRequest` then survives unchanged.

Does it work with non-ASCII characters?

Yes for the most part. Unicode-aware lower/upper conversion is used everywhere, so accented letters and other scripts round-trip correctly. Word-boundary detection still relies on ASCII separators by default; for languages where `_` or `-` are not used, paste with explicit spaces.