camelCase, snake_case oder kebab-case: Was wann nutzen?
camelCase für JavaScript, snake_case für Python und Datenbanken, kebab-case für CSS und URLs. Wo welche Konvention hingehört und wie du gratis umwandelst.
Veröffentlicht am · 5 Min. Lesezeit
camelCase, snake_case oder kebab-case ist vor allem eine Frage, wo der Name lebt. JavaScript und Java nutzen camelCase (firstName), Python, Ruby und SQL nutzen snake_case (first_name), und CSS, HTML-Attribute und URLs nutzen kebab-case (first-name). Halte dich an die Konvention der Sprache und an den Styleguide deines Teams. Um Text zwischen den Schreibweisen umzuwandeln, erledigen Groß-/Kleinschreibung ändern und der kostenlose URL-Slug-Generator den Großteil der Arbeit in deinem Browser.
camelCase, snake_case und kebab-case auf einen Blick
| Stil | Beispiel | Wo du ihn siehst |
|---|---|---|
| camelCase | userFirstName |
Variablen und Funktionen in JavaScript und TypeScript, Java-Methoden, JSON vieler Web-APIs |
| PascalCase | UserFirstName |
Klassennamen in den meisten Sprachen, React-Komponenten, C#-Methoden |
| snake_case | user_first_name |
Variablen und Funktionen in Python, Ruby, SQL-Spaltennamen, viele JSON-APIs |
| SCREAMING_SNAKE_CASE | USER_FIRST_NAME |
Konstanten in vielen Sprachen, Umgebungsvariablen |
| kebab-case | user-first-name |
CSS-Eigenschaften und Klassennamen, HTML-Attribute, URLs, Dateinamen, CLI-Flags |
Die Namen kommen von der Form: camelCase hat Höcker aus Großbuchstaben, snake_case liegt flach auf Unterstrichen, und bei kebab-case sind die Wörter auf Bindestriche aufgespießt wie auf einen Spieß.

Sprache für Sprache
JavaScript und TypeScript. Variablen und Funktionen sind camelCase (getUserName), Klassen und React-Komponenten PascalCase (UserCard), und Konstanten oft SCREAMING_SNAKE_CASE (MAX_RETRIES). Die eingebauten Funktionen der Sprache folgen dem, etwa getElementById und toLowerCase.
Python. PEP 8, der Styleguide von Python, nutzt snake_case für Funktionen, Variablen und Modulnamen, CapWords (PascalCase) für Klassen und Großbuchstaben mit Unterstrichen für Konstanten. getUserName funktioniert in Python zwar, wirkt aber auf jeden Python-Entwickler, der es liest, fehl am Platz.
CSS und HTML. CSS-Eigenschaften sind kebab-case (background-color, font-size), und die meisten Systeme für Klassennamen ziehen mit (.nav-item, .card-title). HTML-data--Attribute sind ebenfalls kebab-case, und Browser wandeln sie für JavaScript um: Aus data-user-id wird element.dataset.userId. Diese eine Zeile fasst schön zusammen, warum es beide Konventionen gibt.
SQL und Datenbanken. Spalten- und Tabellennamen sind meist snake_case (created_at, order_items). Viele Datenbanken bringen Namen ohne Anführungszeichen auf eine einheitliche Schreibweise, sodass createdAt stillschweigend zu createdat werden kann, wenn du es nicht jedes Mal in Anführungszeichen setzt. snake_case vermeidet das.
URLs und Dateinamen. Nimm kebab-case. Googles Hinweise zur URL-Struktur empfehlen Bindestriche statt Unterstrichen zum Trennen von Wörtern, weil Bindestriche Wortgrenzen klar markieren. Kleinbuchstaben vermeiden außerdem kaputte Links auf Servern, die About.html und about.html als verschiedene Dateien behandeln. Siehe was ein URL-Slug ist und unsere Best Practices für URL-Slugs.
JSON und APIs. Es gibt keine einheitliche Regel. Viele auf JavaScript ausgerichtete APIs nutzen camelCase, und viele Backends in Python oder Ruby liefern snake_case. Wähl eines pro API und misch sie nie in derselben Antwort.
Was liest sich am leichtesten?
Alle drei sind lesbar, sobald man sich daran gewöhnt hat. Ein paar praktische Unterschiede:
- snake_case und kebab-case lassen eine klare Lücke zwischen den Wörtern, das hilft bei langen Namen und Abkürzungen (
html_parservs.htmlParservs.HTMLParser). - camelCase ist kürzer und braucht keine zusätzlichen Zeichen.
- kebab-case lässt sich in den meisten Sprachen nicht für Variablennamen verwenden, weil
user-namealsuser minus namegelesen wird. - Doppelklick markiert in den meisten Editoren einen ganzen Namen in snake_case oder camelCase, stoppt bei kebab-case aber meist am Bindestrich.
Die eigentliche Regel heißt Einheitlichkeit. Eine Datei, die userName, user_name und UserName mischt, ist schwerer zu lesen als jeder einzelne Stil, der überall genutzt wird.
Zwischen Schreibweisen umwandeln
Umwandeln musst du, wenn Daten zwischen Schichten wandern: Aus created_at einer Python-API wird ein JavaScript-createdAt, aus einem Seitentitel eine URL oder aus einem Einstellungsnamen eine Umgebungsvariable.
Zu kebab-case oder snake_case: Nimm den Slug-Generator. Füge die Wörter ein, einen Namen pro Zeile, und wähle Bindestriche (-) für kebab-case oder Unterstriche (_) für snake_case. Er schreibt alles klein, macht aus Buchstaben mit Akzent einfache Buchstaben und entfernt Symbole. Jedes Symbol behandelt er als Worttrenner, aus user_first_name wird also user-first-name und wieder zurück. camelCase trennt er allerdings nicht: Aus userFirstName wird userfirstname. Setz vorher Leerzeichen zwischen die Wörter.
Zu SCREAMING_SNAKE_CASE. Erstell die snake_case-Version im Slug-Generator, füge sie dann in Groß-/Kleinschreibung ändern ein und klick auf GROSSBUCHSTABEN. In die andere Richtung macht kleinbuchstaben aus MAX_RETRIES wieder max_retries.
Zu camelCase oder PascalCase. Dafür gibt es keinen Ein-Klick-Knopf. Der schnellste Weg: Tipp die Wörter mit Leerzeichen, klick in Groß-/Kleinschreibung ändern auf Jedes Wort Groß (aus user first name wird User First Name), lösch dann die Leerzeichen für PascalCase und schreib für camelCase den ersten Buchstaben klein.
Viele Namen auf einmal, im Code. Für eine große Umbenennung nutze Suchen und Ersetzen deines Editors mit einem regulären Ausdruck. Teste das Muster zuerst im kostenlosen Regex-Tester: Zum Beispiel findet _([a-z]) jeden Unterstrich, auf den ein Buchstabe folgt, also genau die Stelle, an der snake_case in camelCase einen Großbuchstaben bräuchte. Viele Editoren können den erfassten Buchstaben beim Ersetzen großschreiben; die Syntax findest du in der Dokumentation deines Editors.
Worauf du beim Umwandeln achten solltest
- Abkürzungen. Entscheide, ob es
userIdoderuserID,HtmlParseroderHTMLParserheißt, und bleib dabei. - Zahlen.
address_line_2lässt sich sauber umwandeln;addressLine2ist in Ordnung; lass nur die Ziffer nicht weg. - Öffentliche Namen. Wenn du ein JSON-Feld oder eine URL umbenennst, bricht das bei allen, die sie nutzen. Richte für URLs eine Weiterleitung ein und lass alte Feldnamen in APIs noch eine Weile funktionieren.
Wandle deinen Text um
Nutze Groß-/Kleinschreibung ändern für GROSSBUCHSTABEN, kleinbuchstaben und Jedes Wort Groß und den Slug-Generator für kebab-case und snake_case. Beide laufen in deinem Browser, und nichts, was du einfügst, verlässt dein Gerät.
Häufige Fragen
- Was ist der Unterschied zwischen camelCase und snake_case?
- camelCase verbindet Wörter und schreibt jedes nach dem ersten groß (
firstName). snake_case lässt die Wörter klein und verbindet sie mit Unterstrichen (first_name). - Soll ich in JSON camelCase oder snake_case verwenden?
- Beides ist in Ordnung. Richte dich nach der Sprache, die die meisten deiner Clients nutzen, und bleib innerhalb der API einheitlich.
- Warum nutzt CSS kebab-case?
- CSS wurde mit Eigenschaftsnamen mit Bindestrich wie
font-sizeentworfen, und Klassennamen folgen meist demselben Stil. In den meisten Programmiersprachen dürfen Variablennamen keine Bindestriche enthalten, deshalb nutzt JavaScript für dieselben Eigenschaften camelCase. - Ist kebab-case gut für URLs?
- Ja. Google empfiehlt Bindestriche, um Wörter in URLs zu trennen, und Kleinbuchstaben vermeiden Probleme mit Groß- und Kleinschreibung.
- Kann Groß-/Kleinschreibung ändern camelCase erzeugen?
- Nicht mit einem Klick. Nutze Jedes Wort Groß, entferne dann die Leerzeichen und schreib den ersten Buchstaben klein. Für kebab-case und snake_case nimm den URL-Slug-Generator.
Text-Tools
Groß-/Kleinschreibung ändern ausprobieren
Kostenlos, ohne Anmeldung, läuft in deinem Browser. Füge Text ein und ändere ihn mit einem Klick in GROSSBUCHSTABEN, kleinbuchstaben, Satzanfang groß, Titel-Schreibweise oder Jedes Wort Groß und kopiere ihn dann.
Auch nützlich
- URL-Slug-GeneratorMach aus einem Titel oder beliebigem Text einen sauberen URL-Slug in Kleinbuchstaben wie „mein-erster-blogbeitrag“. Akzente werden umgewandelt (aus café wird cafe), Symbole entfernt, und du kannst kleine Wörter weglassen, eine Maximallänge festlegen oder Slugs für eine ganze Liste von Titeln auf einmal erstellen.
- Regex-TesterTeste einen regulären Ausdruck an deinem Text und sieh jeden Treffer hervorgehoben, während du tippst, mit einer Tabelle der Erfassungsgruppen (auch benannter) und einer Live-Vorschau für Suchen und Ersetzen. Es gelten die Regex-Regeln von JavaScript, und ein Muster, das zu lange läuft, wird gestoppt, statt die Seite einzufrieren.