Text case transformer

Live case specimen
lowercase · 79 chars
Source79 chars
lowercase
ship the small things.
keep api names consistent — and release with confidence.

Case library

Select a row to make it the primary result.

12 formats
Input characters79
Output characters79
Words12
Lines2

Case Transformer

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.

Casing styles
12
Pass, no clipboard round trip
1
Characters uploaded
0
Characters a share link carries
2,400

Step by step

How to use it

  1. 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.

  2. 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.

  3. 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.

  4. 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

One phrase, twelve styles

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

Input
"user profile URL"
Lines
preserved
Acronyms
recognised

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.url
Prose styles
6, spaces kept
Identifier styles
6, words joined
Acronym in Title Case
URL preserved

The 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

What to know about casing

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

Which style, where?

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

What each style does

Prose styles
lowercase · UPPERCASE · Capitalize · Title Case · Sentence case · aLtErNaTiNgLetters change, spacing and punctuation stay where they were.
Identifier styles
camelCase · PascalCase · snake_case · CONSTANT_CASE · kebab-case · dot.caseSeparators are removed and word boundaries are re-encoded as capitals or punctuation.
Line handling
Preserved by defaultEach line converts independently, so a pasted list stays a list.
Acronyms
Recognised in Title CaseKnown acronyms keep their capitalisation instead of becoming Url and Api.
Alternating
Letters only, by defaultPunctuation does not consume a turn, which keeps the pattern reading as alternating.
Share link
2,400 charactersShorter inputs travel with the settings; longer ones stay local and only the settings are shared.

FAQ

Questions, answered plainly

How do I convert text to camelCase?

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.

What is the difference between camelCase and PascalCase?

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.

Should I use snake_case or kebab-case?

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.

Why does Title Case sometimes look wrong?

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.

Does converting case change anything functionally?

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.

Is my text uploaded?

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.