Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BEM - a naming convention that just works

Alex Muraro
December 21, 2016

BEM - a naming convention that just works

Un talk sulla metodologia BEM in italiano.

Alex Muraro

December 21, 2016
Tweet

More Decks by Alex Muraro

Other Decks in Technology

Transcript

  1. Background • Metodologia per dare nomi sensati agli elementi in

    CSS senza diventare matti. • Inventato da Yandex. • Creato per gestire siti complessi da supportare a lungo. • Aiuta nella creazione di componenti riutilizzabili ed estendibili.
  2. Che problemi risolve • Evitare il copia/incolla di CSS. •

    Ridurre al minimo i problemi causati dallo scope globale del CSS. • Semplificare il refactoring. • Rendere il codice riutilizzabile. • Rendere lo sviluppo più rapido.
  3. • Componente stand-alone. • Indipendente dal punto di vista funzionale.

    • Possono essere nidificati ma senza avere rapporto gerarchico. Block: Concetti Base
  4. Block: Esempio Codice Nota 1: Non è necessario mettere il

    nome del blocco in maiuscolo, tuttavia può essere una buona idea per rendere il codice più leggibile. Nota 2: Non si deve replicare la struttura dell’HTML nel CSS.
  5. • Il nome descrive la funzione e non l’estetica. •

    Il nome del blocco definisce il namespace per evitare conflitti nel CSS. • Il blocco non deve dipendere da altri componenti. • Il blocco non deve influenzare il posizionamento degli altri blocchi tramite positioning o margini esterni (robe da layout). • Non si usano mai ID o nomi di tag, solo classi. Block: Altri Concetti
  6. • Un elemento è parte di un blocco e non

    può essere utilizzato separatamente da esso. • Se un elemento può essere usato da solo… è un blocco! • Un elemento può essere all’interno di un altro elemento appartenente allo stesso blocco, ma NON all’interno di un altro blocco. Element: Concetto base
  7. • Il nome di un elemento non deve seguire la

    struttura dell’HTML • Si separa il nome dell’elemento da quello del blocco tramite due underscores “_ _” • Il nome di un elemento deve contenere il nome del blocco. Element: Altri Concetti
  8. • Un componente può essere descritto da un mix di

    blocchi ed elementi. Element: Altri Concetti
  9. • Un blocco può non avere elementi. • Un blocco

    può esistere dentro un elemento Block & Element: Altri Concetti
  10. • Classe addizionale che modifica le “impostazioni” di base di

    un blocco o elemento. • Viene separato dal blocco o dall’elemento da due dash “--” • Quando sia applica un modificatore, viene riutilizzata anche la classe originale, mentre il modificatore contiene solo la modifica • Si possono usare modificatori multipli Modifier: Concetti Base