Text
Case Converter
Convert text into camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case while you type. Copy the five lines together. Nothing leaves the page.
camelCase
—
snake_case
—
kebab-case
—
CONSTANT_CASE
—
Title Case
—
Output actions
Ready to copy output once your result appears.
Five naming forms from one line
Case Converter splits Source text into words and fills five panels at once: camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case. There is no Run button. The panels rewrite on each keystroke. Copy output copies the five lines together, in that order.
How to convert case
- 1Paste into Source text. Leading and trailing spaces are ignored. A lowercase letter followed by an uppercase letter is treated as a word break, so marketingLaunchPlan and Marketing Launch Plan share a split.
- 2Read the five panels. camelCase, snake_case, kebab-case, and CONSTANT_CASE sit in a grid. Title Case spans the full width under them.
- 3Press Copy output. The clipboard text is the five results separated by newlines, even when a panel is blank. This tool has no download control and no switch that hides a panel.
What it is good for
- • Turning a product title into a variable name, a file name, and a constant in one pass.
- • Checking that an existing camelCase identifier splits where the capitals are.
- • Copying all five spellings into a note without clicking a separate mode.
Example
Input
Marketing Launch Plan
Output
marketingLaunchPlan marketing_launch_plan marketing-launch-plan MARKETING_LAUNCH_PLAN Marketing Launch Plan
Three words, split on spaces, then lowercased before the five joins. Title Case puts the spaces back. CONSTANT_CASE is the snake form in capitals.
How a word is split
The field is trimmed, then a lowercase letter sitting against an uppercase letter gains a space between them. marketingLaunchPlan therefore becomes three pieces before any other split. XMLHttpRequest only breaks at the pR pair, because the leading capitals are not a lowercase-then-uppercase pair, so the rebuilt words are xmlhttp and request. The camelCase panel then shows xmlhttpRequest, the snake panel shows xmlhttp_request, and Title Case shows Xmlhttp Request. The page does not keep an acronym in capitals.
After that camel split, the text is cut on runs of whitespace, underscores, and hyphens. Those runs collapse, so foo__bar and foo - bar both become foo and bar. Each piece is lowercased with the ordinary JavaScript lowercasing of that word. Digits stay in the word they were glued to. 10 SEO Tips becomes 10, seo, and tips. camelCase joins them as 10SeoTips. snake_case joins them as 10_seo_tips. Title Case prints 10 Seo Tips, because the first character of 10 is already a digit and uppercasing it changes nothing.
The five result panels
camelCase leaves the first word in lowercase and capitalizes the first character of every later word, then concatenates with nothing between. A single word is only the lowercase word. snake_case joins the words with underscores. kebab-case joins them with hyphens. CONSTANT_CASE is the snake line passed through toUpperCase, so it is not a separate dictionary of abbreviations. Title Case capitalizes the first character of every word, including the first, and joins with a single space. The labels on the panels are camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case.
Copy output does not copy the label of the panel you are looking at. It copies the five values in panel order, with a newline after each except that the join itself supplies the breaks. Marketing Launch Plan copies as marketingLaunchPlan, then marketing_launch_plan, then marketing-launch-plan, then MARKETING_LAUNCH_PLAN, then Marketing Launch Plan. An empty Source text still publishes four newlines, because five empty strings are joined. The panels look blank, and the clipboard is those newlines, not an error. There is no button that clears the field.
Jobs for a naming form
Use the snake line when a column or a file should be marketing_launch_plan. Use the kebab line when a path segment should be marketing-launch-plan. That kebab line is not a full slug: punctuation is not stripped here. If the next step is a URL segment that must drop commas and accents, paste the title into the slug generator instead of copying kebab-case and hoping the comma disappeared. The slug page also deletes underscores rather than turning them into hyphens.
A list of identifiers that should be ordered alphabetically belongs on the text sorter after you have copied one of these lines per row. A search that should swap one spelling for another belongs on Find & Replace. This converter does not search inside a document. It only rebuilds the whole field as five naming forms. Word Counter counts the source if you need a length check; it does not change case.
Punctuation, apostrophes, and blank words
Characters other than whitespace, underscore, and hyphen stay attached to the neighboring word. hello, world splits into hello, and world. camelCase becomes hello,World. snake_case becomes hello,_world. kebab-case becomes hello,-world. CONSTANT_CASE becomes HELLO,_WORLD. Title Case becomes Hello, World. The comma is not a separator and it is not deleted. An apostrophe is the same kind of leftover: don't stop stays two words, don't and stop, and camelCase is don'tStop.
A field of only separators, after trim, produces no words, and every panel is empty. Mixed tabs and spaces count as the same separator run. The page never offers PascalCase as its own panel, snake_case with a trailing underscore, or a lowercase-only line that still contains spaces. Title Case is the spaced form. If you needed the original capitals preserved, they are already gone once the words are lowercased, including inside XMLHttpRequest.
Rules and limitations
Words are trimmed, split on a lowercase-to-uppercase boundary, then split on whitespace, underscores, and hyphens. Each word is lowercased. The five joins are camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case.
Punctuation other than underscore and hyphen stays inside the word. Copy output is the five values separated by newlines, including the empty join. There is no download, no mode switch, and no per-panel copy.
Common problems
If a comma or apostrophe appears in the middle of snake_case, it was part of the word. Delete it in Source text. The converter will not strip it for you.
If an acronym came out as xmlhttpRequest, the split only saw the lowercase-to-uppercase pair. The page does not have an acronym list.
Frequently asked questions
Why do camelCase and the spaced title produce the same five lines?
A lowercase letter followed by an uppercase letter is turned into a word break before the other splits. marketingLaunchPlan and Marketing Launch Plan both become marketing, launch, and plan.
Does kebab-case remove punctuation?
No. Only spaces, underscores, and hyphens separate words. A comma stays, so hello, world becomes hello,-world in the kebab panel. The slug generator is the page that drops punctuation.
What does Copy output include?
All five panels, top to bottom, separated by newlines. It does not include the panel labels. An empty field copies the newlines between five empty values.
Is CONSTANT_CASE a different word list?
No. It is the snake_case line with the letters capitalized. 10_seo_tips becomes 10_SEO_TIPS. Digits are unchanged.
Is my input uploaded or saved?
This tool processes input in your browser and does not save its input or output to local storage. Copy and download are user actions. The site uses analytics for page and action metadata and may use ads and production error reporting; see the Privacy Policy for those services.
About this tool
Maintained by Toolbench. For large or deeply nested files, split the input into smaller batches and verify representative results before using them in an import or application. Report reproducible problems through Contact.
Next steps
Related tools
Continue the workflow with nearby tools for formatting, publishing, debugging, or follow-up checks.
Slug Generator
Create a lowercase hyphenated slug from a title.
Open Slug GeneratorText Sorter
Sort lines of text alphabetically or in reverse.
Open Text SorterFind & Replace
Replace every plain-text or regular-expression match, optionally ignoring case.
Open Find & ReplaceWord Counter
Count words, characters, sentences, paragraphs, and reading time.
Open Word CounterTrust
Policies, contact, and answers
Clear pages for how Toolbench works, what we collect, and how to reach us.