Case Converter Online — camelCase snake_case kebab

Convert identifiers between camelCase, PascalCase, snake_case, SCREAMING_SNAKE, and kebab-case with live preview. Optional per-line mode for bulk lists — Unicode letters stay as-is.

Loading…
Case converter — developer notes
Tokenizes on non-alphanumeric separators and camel/Pascal boundaries, then rejoins for the target case. Live preview and optional per-line mode for identifier lists.

How conversion works

Paste an identifier or phrase, pick the target case — the result updates as you type. Digits stay attached to the preceding letter run (foo2Bar → foo2 + Bar). Enable Convert each line when you paste a newline-separated list: every non-empty line is converted independently; blank lines are preserved. Empty input → explicit error.

Options

Target case
camel, Pascal, snake, SCREAMING_SNAKE, or kebab — changes the output for real.

Examples

snake → Pascal

Input

foo_bar-baz

Output

FooBarBaz

camel → SCREAMING

Input

foo2Bar

Output

FOO2_BAR

Related utilities

For URL slugs, use Slugify (separators + diacritics). This converter keeps identifier semantics.

Case converter FAQ

Identifiers

How is this different from Slugify?

Slugify builds URL slugs (separators, accents). This tool converts identifier case without diacritic stripping.

Title Case / dot.case?

Out of scope for v1 — only camel, Pascal, snake, SCREAMING_SNAKE, kebab.

Empty input?

Returns an empty error — never a silent success.

Are accents stripped?

No — caféBar keeps café inside the token.

Which scripts are supported?

Tokenization targets Latin letters (A–Z and Latin Extended, e.g. café). Non-Latin scripts (CJK, etc.) do not form tokens and may yield an empty error.

When should I use per-line mode?

When you paste several identifiers separated by newlines — each line converts independently instead of treating newlines as word separators in one blob.

Timestamps, UUID, ULID, Nanoid, cron, passwords, regex, slugify, number bases, case, text diff, and chmod — all client-side.