TextFree

Case Converter

Switch text between eight naming styles

Every style, converted — pick one to see it in full

Sentence case

Your converted text appears here.

About Case Converter

Renaming text by hand is tedious and error-prone, and it gets worse the longer the string is. Converting a list of database columns to camelCase, or a heading to title case, is mechanical work that a tool should do exactly the same way every time.

This converter rewrites whatever you paste in twelve naming styles and shows all twelve at once, updating as you type. You are not converting to one style and then converting again to compare — the comparison is the interface.

Pick a style to see it in full and copy it, or take every style at once as a labelled block. Nothing is uploaded: the conversion happens in your browser, on your text.

  • Twelve styles, all converted live as you type
  • camelCase, PascalCase, snake_case, kebab-case
  • CONSTANT_CASE, Train-Case, dot.case and path/case
  • Title Case, Sentence case, UPPER CASE and lower case
  • Copy one style, or copy all twelve as a labelled block
  • Large pastes stay responsive — typing never waits on the conversion

How to use Case Converter

  1. Paste your text

    One line or many — line breaks and blank lines survive the prose cases.

  2. Read the twelve previews

    Every style shows the opening of your own text rather than a canned example, so you can see which one you actually want before committing to it.

  3. Pick a style

    The full result appears below, however long the input is, ready to copy.

  4. Or copy all twelve

    One click emits every style, each under its own heading — useful when you are filling in a naming convention table or a set of environment variables.

The twelve cases, and where each is used

camelCase starts lowercase and capitalises each following word — the convention for variables in JavaScript, Java and Swift. PascalCase does the same but capitalises the first word too, and is used for class and component names.

snake_case joins words with underscores and is the norm in Python and in SQL column names. kebab-case uses hyphens and is what URLs, CSS classes and HTML attributes want. CONSTANT_CASE is snake_case in capitals, and is what shell and CI environment variables, C macros and exported constants in Go and Java look like.

Train-Case capitalises each word and joins with hyphens, which is how HTTP header names are conventionally written: Content-Type, X-Request-Id. dot.case turns up in configuration keys, feature flags and analytics event names, where the dots imply a hierarchy. path/case produces the slash-separated form used by file paths, URL segments and object storage keys.

The remaining four are for prose rather than code: Title Case for headings, Sentence case for ordinary text, and UPPER CASE or lower case when a format demands one of them.

CONSTANT_CASE, SCREAMING_SNAKE_CASE and MACRO_CASE

These are three names for the same thing: words in capitals joined by underscores. Which name you meet depends on the community — CONSTANT_CASE in the JavaScript ecosystem, SCREAMING_SNAKE_CASE in Rust and Python discussions, MACRO_CASE in older C style guides.

The convention exists because capitals are a loud signal, and it is applied to things that should not change at runtime: environment variables, compile-time constants, enum members in several languages. If you are naming something that is assigned once and read everywhere, this is almost always the style being asked for.

The one thing to watch is that it destroys the distinction between an acronym and an ordinary word. Once parseHTTPResponse becomes PARSE_HTTP_RESPONSE there is no way to tell, from the string alone, which of the three tokens was originally an initialism — which matters if anything later converts it back.

Title case is not just capitalising every word

Real title case leaves short words lowercase unless they start or end the title — articles, short prepositions and conjunctions like a, an, the, of, in and and. Capitalising all of them produces something that looks like a spreadsheet header rather than a headline.

Style guides disagree about the exact cutoff, so any automated title case is one reasonable convention rather than the definitive answer. Read the result before shipping it into a heading.

Train-Case is the exception in this list: it capitalises every word including the short ones, because it is an identifier style rather than a prose style and consistency matters more there than readability.

Why converting between cases is not lossless

Splitting a string back into words requires guessing where the boundaries were, and some strings do not say. An acronym in the middle of a camelCase identifier is genuinely ambiguous: parseHTTPResponse could be parse HTTP response or parse http response depending on what the author meant.

The eight identifier styles all share one word-splitting pass, which splits on spaces, punctuation and lowercase-to-uppercase transitions. That means a separator already present in your text is treated as a word boundary: feed src/lib/tools to dot.case and you get src.lib.tools, not one word containing slashes.

The converter picks the more common reading, but a round trip through two styles can still come back subtly different from where it started. For identifiers that matter, check the output rather than assuming.

Frequently asked questions

What is the difference between title case and sentence case?

Title case capitalises the first letter of every significant word, the way a headline is written. Sentence case capitalises only the first word of each sentence.

Which case should I use for code?

It depends on the language: camelCase for JavaScript variables, PascalCase for classes and React components, snake_case for Python and SQL, kebab-case for CSS classes, file names and URLs.

Last updated 19 Aug 2026 · Free to use · Runs entirely in your browser