UtilHero

Case Converter

Convert text between upper, lower, title, camel, snake, and kebab case.

Result

About Case Converter

A case converter transforms text between naming and writing styles. Paste text and switch instantly between UPPERCASE, lowercase, Title Case, Sentence case, camelCase, snake_case, and kebab-case — the splitter even breaks camelCase input apart at word boundaries, so converting a variable name comes out clean. It runs in your browser with no upload.

The programming cases and where each belongs

camelCase starts lowercase and capitalises each subsequent word — the convention for variables and functions in JavaScript, Java, and C#. PascalCase capitalises the first word too and is used for classes and types in the same languages. snake_case joins lowercase words with underscores and is the Python and Ruby standard, and the usual convention for database columns.

kebab-case uses hyphens and appears where underscores are awkward or illegal: URLs, CSS class names, HTML attributes, and file names. SCREAMING_SNAKE_CASE is reserved almost everywhere for constants and environment variables. These are conventions rather than rules, but following the one your language expects is what makes code look like it belongs.

Why splitting is the hard part

Converting between cases means first working out where the words are, and that is where naive tools fail. Splitting camelCase on capital letters works until you hit an acronym: parseHTMLResponse should become parse HTML response, but a simple rule produces parse H T M L Response. Handling that needs a look at whether a run of capitals is followed by a lowercase letter.

Digits are the other ambiguity. Should user2FA split before the 2, after it, or not at all? Different libraries answer differently, which is why the same identifier converted by two tools can come out unlike. Check acronyms and numbers specifically when converting a batch of names.

Title Case is not one rule

Title case capitalises significant words and leaves minor ones lowercase, but the definition of minor varies by style guide. AP keeps prepositions of three letters or fewer lowercase; Chicago lowercases all prepositions regardless of length. So Chicago writes a title with between lowercase, while AP capitalises it. The first and last word are always capitalised in both.

Because of that, automatic title case is a good first pass and a poor final answer for anything published. Sentence case — capitalise the first word and proper nouns only — sidesteps the problem entirely, which is one reason it has become the default in most modern interface and documentation style guides.

Case and computers

Uppercasing is not always reversible. The German ß uppercases to SS, and lowercasing that gives back ss, not the original character. Turkish has a dotted and a dotless i that map differently from English, which is the source of a well-known class of bug where a locale-aware uppercase turns i into İ and breaks a comparison.

That is why identifiers and keys should be compared with a case-insensitive function rather than by uppercasing both sides, and why a language's invariant or ordinal comparison exists. For anything user-facing, convert case for display only, and keep the original string as the source of truth.

Frequently asked questions

What's the difference between camelCase and snake_case?
camelCase joins words and capitalizes each after the first (myVariableName); snake_case lowercases words and joins them with underscores (my_variable_name).
Will it split camelCase input correctly?
Yes. It inserts word boundaries at lower-to-upper transitions, so 'fooBarBaz' converts cleanly to snake_case or kebab-case.
Can it convert text to camelCase or kebab-case for code?
Yes. Pick camelCase, snake_case, or kebab-case and it normalizes spacing and punctuation into a valid identifier — handy for variable, function, and CSS-class names.
Is there a limit on text length?
No practical limit — it converts as much text as your browser can hold, all locally with nothing uploaded.

More tools

All Text Tools
Unit ConverterAWG to mm²NetToolkitClick CounterClick TestTyping Speed TestReaction Time TestKeyboard TesterDead Pixel TestMic TestWebcam TestPassword GeneratorPassword Strength CheckerID GeneratorStopwatchTimerCountdown to DateTodo ListOnline NotepadWheel SpinnerRandom Number GeneratorCoin FlipDice RollerWord CounterJSON FormatterJSON VisualizerCSV to JSONYAML to JSONSQL FormatterCron Expression GeneratorChmod CalculatorQR Code GeneratorBarcode GeneratorPercentage CalculatorGPA CalculatorGrade CalculatorScientific CalculatorAge CalculatorRoman Numeral ConverterBase64 Encode / DecodeNumber Base ConverterText to BinaryMorse Code TranslatorSymbols & EmojiText to SpeechText RepeaterFancy Text GeneratorHash GeneratorURL Encode / DecodeUnix Timestamp ConverterTime Zone ConverterColor PickerColor ConverterLorem Ipsum GeneratorBMI CalculatorBMR & Calorie CalculatorTip CalculatorJWT DecoderJWT EncoderRegex TesterUTM BuilderSERP SimulatorOpen Graph GeneratorDynamic QR Code GeneratorSlugifyText DiffRemove Duplicate LinesDiscount CalculatorSales Tax CalculatorLoan CalculatorCompound Interest CalculatorMortgage CalculatorTime Duration CalculatorContrast CheckerGradient GeneratorBox Shadow GeneratorBorder Radius GeneratorFlexbox & Grid GeneratorPalette GeneratorTints & ShadesImage to Base64Aspect Ratio CalculatorImage ResizerHEIC to JPGAVIF to JPGAVIF to PNGFavicon GeneratorInvoice GeneratorPDF ToolsRotate PDFDelete PDF PagesReorder PDF PagesAdd Page NumbersWatermark PDFPDF to JPGPDF to Text