camelCase, snake_case o kebab-case: quale usare
camelCase per JavaScript, snake_case per Python e database, kebab-case per CSS e URL. Dove va ogni convenzione e come convertire gratis.
Pubblicato il · 5 min di lettura
camelCase, snake_case o kebab-case non è tanto una questione di stile quanto di dove vive il nome. JavaScript e Java usano camelCase (firstName), Python, Ruby e SQL usano snake_case (first_name), e CSS, gli attributi HTML e gli URL usano kebab-case (first-name). Segui la convenzione del linguaggio e la guida di stile del tuo team. Per convertire un testo da un caso all'altro, il convertitore di maiuscole e minuscole gratuito e il generatore di slug URL gratuito coprono gran parte del lavoro direttamente nel browser.
camelCase, snake_case e kebab-case a colpo d'occhio
| Stile | Esempio | Dove si usa |
|---|---|---|
| camelCase | userFirstName |
variabili e funzioni di JavaScript e TypeScript, metodi Java, JSON di molte API web |
| PascalCase | UserFirstName |
nomi di classi nella maggior parte dei linguaggi, componenti React, metodi C# |
| snake_case | user_first_name |
variabili e funzioni Python, Ruby, nomi di colonne SQL, molte API JSON |
| SCREAMING_SNAKE_CASE | USER_FIRST_NAME |
costanti in molti linguaggi, variabili d'ambiente |
| kebab-case | user-first-name |
proprietà e classi CSS, attributi HTML, URL, nomi di file, flag CLI |
I nomi derivano dalla forma: camelCase ha la gobba di lettere maiuscole, snake_case giace piatto sui trattini bassi, e le parole in kebab-case sono infilzate sui trattini.

Linguaggio per linguaggio
JavaScript e TypeScript. Variabili e funzioni sono in camelCase (getUserName), classi e componenti React in PascalCase (UserCard), e le costanti spesso in SCREAMING_SNAKE_CASE (MAX_RETRIES). Anche le funzioni integrate del linguaggio seguono questa regola, come getElementById e toLowerCase.
Python. PEP 8, la guida di stile di Python, usa snake_case per funzioni, variabili e nomi di moduli, CapWords (PascalCase) per le classi, e lettere maiuscole con trattini bassi per le costanti. Scrivere getUserName in Python funziona, ma sembrerà fuori posto a ogni sviluppatore Python che lo legge.
CSS e HTML. Le proprietà CSS sono in kebab-case (background-color, font-size), e la maggior parte dei sistemi di nomi di classi segue lo stesso schema (.nav-item, .card-title). Anche gli attributi HTML data- sono in kebab-case, e i browser li convertono per JavaScript: data-user-id diventa element.dataset.userId. Questa riga riassume bene perché esistono entrambe le convenzioni.
SQL e database. Nomi di colonne e tabelle sono di solito in snake_case (created_at, order_items). Molti database convertono i nomi non racchiusi tra virgolette in un unico caso, quindi createdAt può silenziosamente diventare createdat se non lo racchiudi tra virgolette ogni volta. snake_case evita il problema.
URL e nomi di file. Usa kebab-case. Le linee guida di Google sulla struttura degli URL raccomandano i trattini anziché i trattini bassi per separare le parole, perché i trattini segnano chiaramente i confini tra le parole. Le minuscole evitano anche link rotti sui server che trattano About.html e about.html come file diversi. Vedi cos'è uno slug URL e le nostre buone pratiche per gli slug URL.
JSON e API. Non esiste una regola unica. Molte API centrate su JavaScript usano camelCase, e molti back end in Python o Ruby restituiscono snake_case. Scegline uno per API e non mescolarli mai nella stessa risposta.
Quale è più facile da leggere?
Tutti e tre sono leggibili quando ci si fa l'abitudine. Alcune differenze pratiche:
- snake_case e kebab-case lasciano uno spazio chiaro tra le parole, il che aiuta con nomi lunghi e acronimi (
html_parservshtmlParservsHTMLParser). - camelCase è più corto e non richiede caratteri extra.
- kebab-case non può essere usato per i nomi di variabili nella maggior parte dei linguaggi, perché
user-namesi legge comeuser meno name. - Il doppio clic seleziona un intero nome in snake_case o camelCase nella maggior parte degli editor, ma di solito si ferma ai trattini in kebab-case.
La regola vera è la coerenza. Un file che mescola userName, user_name e UserName è più difficile da leggere di qualsiasi stile usato ovunque.
Convertire tra un caso e l'altro
Dovrai convertire quando sposti dati tra livelli: il created_at di un'API Python che diventa createdAt in JavaScript, un titolo di pagina che diventa un URL, o il nome di un'impostazione che diventa una variabile d'ambiente.
In kebab-case o snake_case: usa il generatore di slug. Incolla le parole, una per riga, e scegli Trattini (-) per kebab-case o Trattini bassi (_) per snake_case. Converte tutto in minuscolo, trasforma gli accenti in lettere semplici ed elimina i simboli. Tratta ogni simbolo come un confine di parola, quindi user_first_name diventa user-first-name e viceversa. Non separa però il camelCase: userFirstName diventa userfirstname. Metti prima gli spazi tra le parole.
In SCREAMING_SNAKE_CASE. Crea prima la versione snake_case nel generatore di slug, poi incollala nel convertitore di maiuscole e minuscole gratuito e clicca MAIUSCOLO. Al contrario, minuscolo trasforma MAX_RETRIES in max_retries.
In camelCase o PascalCase. Non c'è un pulsante con un clic. Il percorso più rapido: scrivi le parole con gli spazi, clicca Iniziali maiuscole nel convertitore (user first name diventa User First Name), poi elimina gli spazi per il PascalCase e rendi minuscola la prima lettera per il camelCase.
Molti nomi insieme, nel codice. Per un grande rinomina, usa la ricerca e sostituzione del tuo editor con un'espressione regolare. Prova prima il pattern nel tester di espressioni regolari gratuito: per esempio, _([a-z]) trova ogni trattino basso seguito da una lettera, il punto in cui lo snake_case dovrebbe avere una maiuscola nel camelCase. Molti editor possono mettere in maiuscolo la lettera catturata nella sostituzione; consulta la documentazione del tuo editor per la sintassi.
Cose da tenere d'occhio nelle conversioni
- Acronimi. Decidi se scrivere
userIdouserID,HtmlParseroHTMLParser, e mantieni la scelta. - Numeri.
address_line_2si converte senza problemi;addressLine2va bene; non eliminare la cifra. - Nomi pubblici. Rinominare un campo JSON o un URL rompe chi lo usa. Aggiungi un reindirizzamento per gli URL e mantieni funzionanti per un po' i vecchi nomi di campo nelle API.
Converti il tuo testo
Usa il convertitore di maiuscole e minuscole gratuito per MAIUSCOLO, minuscolo e Iniziali maiuscole, e il generatore di slug per kebab-case e snake_case. Entrambi funzionano nel browser, e nulla di ciò che incolli lascia il tuo dispositivo.
Domande frequenti
- Qual è la differenza tra camelCase e snake_case?
- camelCase unisce le parole e mette in maiuscola la lettera iniziale di ogni parola successiva alla prima (
firstName). snake_case tiene le parole in minuscolo e le unisce con trattini bassi (first_name). - Devo usare camelCase o snake_case nel JSON?
- Vanno bene entrambi. Scegli il linguaggio usato dalla maggior parte dei tuoi client e mantieni la coerenza all'interno dell'API.
- Perché il CSS usa kebab-case?
- Il CSS è stato progettato con nomi di proprietà con trattini come
font-size, e i nomi di classi di solito seguono lo stesso stile. I trattini non si possono usare nei nomi di variabili della maggior parte dei linguaggi di programmazione, per questo JavaScript usa camelCase per le stesse proprietà. - Il kebab-case è adatto agli URL?
- Sì. Google raccomanda i trattini per separare le parole negli URL, e le minuscole evitano problemi di distinzione tra maiuscole e minuscole.
- Il convertitore può creare camelCase?
- Non con un clic. Usa Iniziali maiuscole, poi elimina gli spazi e rendi minuscola la prima lettera. Per kebab-case e snake_case, usa il generatore di slug URL.
Strumenti per testo
Prova Convertitore maiuscole/minuscole
Gratis, senza registrazione, funziona nel browser. Incolla un testo e trasformalo in MAIUSCOLO, minuscolo, Maiuscola iniziale, Stile Titolo o Ogni Parola Maiuscola con un clic, poi copialo.
Utili anche
- Generatore di slug URLTrasforma un titolo o qualsiasi testo in uno slug URL pulito e in minuscolo, come "my-first-blog-post". Gli accenti vengono convertiti (café diventa cafe), i simboli vengono rimossi e puoi eliminare le parole brevi, impostare una lunghezza massima o creare slug per un intero elenco di titoli in una volta.
- Tester regexProva un'espressione regolare sul tuo testo e vedi ogni corrispondenza evidenziata mentre scrivi, con una tabella dei gruppi di cattura (anche quelli con nome) e un'anteprima dal vivo di trova e sostituisci. Segue le regole delle regex JavaScript, e un pattern che impiega troppo tempo viene fermato invece di bloccare la pagina.