How to use Case Converter
What it does & when you need it
You have a name in the wrong shape. An API returns first_name but your
TypeScript interface wants firstName; a designer hands you "User Profile
Settings" and you need user-profile-settings for a route; a config key is
camelCase but the environment variable has to be SCREAMING_SNAKE. This tool
takes any identifier or phrase and rewrites it into camelCase, PascalCase,
snake_case, kebab-case, CONSTANT_CASE, dot.case, Title Case, Sentence case, or a
plain lower/UPPER pass. It splits the input into words first, so it understands
getHTTPResponse as three words even though there are no separators. Everything
runs in your browser — paste an internal field name or a secret key and nothing
is ever uploaded.
How to use
- Paste text into the input buffer, or press Sample to load
getHTTPResponseCode. You can also Upload a small.txtfile. - Pick a target style from the Convert to dropdown. The output buffer updates live as you type or change the style.
- Press Copy result (or
Ctrl/Cmd+Enter) to put the converted text on your clipboard, and Clear to reset the input.
Things worth knowing
The hard part is finding the word boundaries, not changing the letters.
Anyone can uppercase a string; the real work is deciding that getHTTPResponse
is get + HTTP + Response rather than get + H + T + T + P +
Response or get + HTTPR + esponse. The tool splits on the obvious
separators (space, _, -, .), on lowercase-to-uppercase humps
(fooBar), and — the tricky one — on runs of capitals: a block of uppercase
letters that is followed by an uppercase-then-lowercase pair marks the end of an
acronym, so HTTPResponse breaks cleanly into HTTP and Response. It also
treats letter-to-digit transitions as boundaries, so utf8 becomes utf + 8.
If you need to count or reorder those words afterward, the
Word Counter and Text Sorter are
handy companions.
Each style carries a convention, and mixing them up breaks tools. kebab-case is the standard for URLs and CSS class names — it is the same shape the Slug Generator produces for clean, lowercase paths. snake_case dominates database column names and Python, where PEP 8 mandates it for functions and variables. camelCase and PascalCase are the JavaScript and TypeScript world: camelCase for variables and functions, PascalCase for types, classes, and React components — the exact identifiers you would feed into JSON to TypeScript.
SCREAMING_SNAKE_CASE is a signal, not just a style. By long-standing
convention across C, Java, JavaScript, and shell scripts, all-caps words joined
by underscores mean "compile-time constant" or "environment variable"
(MAX_RETRIES, DATABASE_URL). Reach for CONSTANT_CASE when the value is fixed
at build time; use it for a mutable field and you will mislead every reader who
knows the convention.
Casing is locale-sensitive, so this tool stays ASCII-strict on purpose. The
classic trap is Turkish: in a Turkish locale, uppercasing i yields the dotted
İ and lowercasing I yields the dotless ı, which silently corrupts
identifiers like ID or title. To avoid that, the converter uses the Unicode
default case mapping (JavaScript's toLowerCase, not toLocaleLowerCase) and
only splits words on ASCII boundaries. Non-ASCII letters are never dropped —
café survives a round trip — they just stay attached to their word rather than
triggering a split.