ship the small things.
keep api names consistent — and release with confidence.Case library
Select a row to make it the primary result.
Convert text between twelve casing styles — from sentence case and Title Case for prose to camelCase, snake_case, kebab-case, and CONSTANT_CASE for code. Line structure is preserved by default, so a list of headings or identifiers converts as a list rather than collapsing into one run of words.
Step by step
01Paste the text
One string or a whole list — line breaks are preserved by default, so a column of headings or identifiers converts line by line.
02Pick the style
Prose styles keep the words apart: lowercase, UPPERCASE, Capitalize first, Title Case, Sentence case, aLtErNaTiNg. Identifier styles join them: camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case.
03Decide what to do with the edges
Trim outer whitespace tidies up a paste from a table or a PDF. For alternating case, restricting the pattern to letters keeps punctuation from consuming a turn and breaking the rhythm.
04Copy, or share the recipe
Copy takes the transformed text. Share copies a link carrying the style and the switches — and the text too, if it is short enough to fit in a URL.
Worked example
The same input through every style, which is the fastest way to see what each one is actually for. Note where the words stay separate and where they get joined.
Given
Prose styles keep spaces; identifier styles remove them
lowercase user profile url
UPPERCASE USER PROFILE URL
Capitalize User profile url
Title Case User Profile URL
Sentence case User profile url
aLtErNaTiNg uSeR PrOfIlE UrL
camelCase userProfileUrl
PascalCase UserProfileUrl
snake_case user_profile_url
CONSTANT_CASE USER_PROFILE_URL
kebab-case user-profile-url
dot.case user.profile.urlThe split that matters is not upper versus lower — it is whether the style keeps the words apart. Prose styles change letters and leave the spacing alone; identifier styles delete the separators and encode the word boundaries in punctuation or capitalisation instead. That is why converting a sentence to camelCase gives you something unreadable, and why converting an identifier to Title Case needs the boundaries to survive the trip.
Before you convert
Title Case has competing rules
AP, Chicago, APA, and MLA disagree about which short words stay lowercase and where a hyphenated compound capitalises. Any automatic Title Case is one interpretation — capitalise each word, keep known acronyms — so read the result before it becomes a headline rather than trusting it.
Identifier styles are ecosystem conventions
camelCase in JavaScript and Java, snake_case in Python and Ruby, kebab-case in URLs and CSS, CONSTANT_CASE for environment variables and enums. Following the local convention is not aesthetics: linters, serialisers, and code review all assume it.
Acronyms break every naming scheme
URL, ID, and API are the reason two engineers write parseHTTPResponse and parseHttpResponse in the same file. Pick one convention and hold it, because the mismatch does not fail loudly — it just means grep finds half the occurrences.
Not every conversion round-trips
snake_case to Title Case and back returns what you started with. Sentence case to camelCase and back does not, because the punctuation was dropped and the sentence boundaries went with it. Convert from the most structured form you have, not from prose.
Case is not always cosmetic
URLs are case-sensitive after the domain, most filesystems are on Linux and are not on macOS, and JSON keys are case-sensitive everywhere. A casing change that looks like tidying can be a functional change — check what consumes the string before you convert it in bulk.
Lines survive the transformation
Line structure is preserved by default, so a pasted column of a hundred headings or field names comes back as a hundred lines rather than one paragraph. That is what makes this usable on a list rather than only on a phrase.
The judgement call
Casing conventions are agreements, and the agreements differ by context.
A JavaScript variable or function
camelCase
The language convention, and what every linter and style guide in the ecosystem expects.
A class, component, or type name
PascalCase
Universal across languages for things you instantiate or reference as a type.
A Python or Ruby variable, or a database column
snake_case
The convention in both languages, and the safest form for SQL identifiers.
A URL slug, CSS class, or filename
kebab-case
Hyphens survive URLs cleanly and read better to search engines than underscores.
An environment variable or a constant
CONSTANT_CASE
Shell convention for exported variables, and the visual marker for compile-time constants.
A headline going to print
Check it by hand
Style guides disagree about short words and hyphenated compounds. Automatic Title Case is a starting point.
Reference
FAQ
Paste the text and pick camelCase. Words are joined with each subsequent word capitalised and the first left lowercase, whether the input was spaced, hyphenated, or underscored. A whole column of field names converts line by line in one pass.
Only the first letter. camelCase starts lowercase and is the convention for variables and functions in JavaScript and Java; PascalCase capitalises the first letter too and is used for classes, components, and type names in most languages.
snake_case for Python and Ruby identifiers and for database columns, where a hyphen would be read as a minus sign. kebab-case for URL slugs, CSS class names, and filenames, where hyphens are safe and read better to both people and search engines.
Because there is no single rule. AP, Chicago, APA, and MLA disagree about which short words stay lowercase and how hyphenated compounds are handled. The transformation here capitalises each word and preserves known acronyms, which is a sensible default rather than a house style — check headlines by eye.
It can. URLs are case-sensitive after the domain, JSON keys are case-sensitive, and filesystems differ — Linux is case-sensitive, macOS usually is not. Converting a batch of paths, keys, or identifiers is a functional change, so check what consumes them first.
No. Every transformation runs in your browser. Inputs under 2,400 characters can travel inside a share link if you want a colleague to see the same text and style; longer ones stay on your machine and only the settings are shared.
Every transformation runs in your browser. Nothing is uploaded or retained, and share links carry only what fits in a URL.
Keep going
Word Counter
Check the headline still fits its limit after recasing.
Remove Duplicate Lines
Collapse a list whose entries only differed by capitalisation.
Text Diff Checker
Compare two versions with case differences ignored.
ID Generator
Generate identifiers that already follow a convention.