What is the difference between camelCase, snake_case, kebab-case and PascalCase?
They are four ways of joining the words of an identifier: camelCase starts lower and capitalises each following word (userId), PascalCase capitalises every word (UserId), snake_case separates with underscores (user_id) and kebab-case with hyphens (user-id). None is "correct" — each language and format has its convention: JSON and JavaScript lean to camelCase, Python and SQL to snake_case, URLs and CSS to kebab-case, class names to PascalCase. A mismatch between an API contract and its consumer (userId vs user_id) is one of the most common integration defects.
How to use Kebab Case Converter
- Paste titles or identifiers, one per line.
- Choose kebab-case for code identifiers (it splits camelCase), URL slug for titles, or Train-Case.
- For slugs, decide whether to keep non-Latin letters and set a maximum length.
- Copy the results.
Kebab Case Converter features
- kebab-case, URL slug and Train-Case modes
- Transliteration of accented Latin characters and ligatures (café → cafe, straße → strasse)
- Optional preservation of Arabic, Hindi and other non-Latin letters in slugs
- Maximum slug length with clean truncation
- Batch conversion with a result table and warnings for empty slugs
Kebab Case Converter example
Blog post slugs
Input:
Café Straße & Crème Brûlée Menu
10 Tips for Better APIs!Output:
cafe-strasse-creme-brulee-menu
10-tips-for-better-apisFrequently asked questions about Kebab Case Converter
What is the difference between kebab-case and a URL slug?
kebab-case mode splits identifiers at case changes, underscores and spaces and joins the lowercase words with hyphens (userFirstName → user-first-name). URL slug mode, the default, treats each line as a title: it does not split camelCase (userFirstName → userfirstname), but it strips accents (café → cafe), expands ligatures (straße → strasse), drops punctuation and can cap the length — producing safe, readable URLs. Use kebab-case mode for code identifiers.
What happens to Arabic or Hindi text in slug mode?
With "Keep non-Latin letters" enabled the words are kept (مرحبا-بالعالم), which modern browsers display correctly in URLs. Disable it to allow only ASCII letters and digits.
Why did a line produce an empty result?
It contained no letters or digits after cleaning — for example only punctuation, or non-Latin text with "Keep non-Latin letters" disabled.
What is Train-Case?
Hyphen-separated words with each word capitalised (Content-Type, X-Request-Id) — the style used for HTTP header names.