+ All Categories
Home > Education > BEM - A naming methodology that just works

BEM - A naming methodology that just works

Date post: 08-Jan-2017
Category:
Upload: alessandro-muraro
View: 16 times
Download: 2 times
Share this document with a friend
26
BEM A naming philosophy that just works
Transcript
Page 1: BEM - A naming methodology that just works

BEMA naming philosophy that just works

Page 2: BEM - A naming methodology that just works
Page 3: BEM - A naming methodology that just works

Per fortuna c’è BEM

BEM ci dà regole per dare nomi alle cose.

Page 4: BEM - A naming methodology that just works

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.

Page 5: BEM - A naming methodology that just works

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.

Page 6: BEM - A naming methodology that just works

Si ma chevvordì?

Block

Element

Modifier

Page 7: BEM - A naming methodology that just works

BlockElementModifierBlockElementModif

Page 8: BEM - A naming methodology that just works

● Componente stand-alone.

● Indipendente dal punto di vista funzionale.

● Possono essere nidificati ma senza avere rapporto gerarchico.

Block: Concetti Base

Page 9: BEM - A naming methodology that just works

Block: Esempio Visuale

Page 10: BEM - A naming methodology that just works

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.

Page 11: BEM - A naming methodology that just works

● 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

Page 12: BEM - A naming methodology that just works

BlockElementModifierBlockElementModif

Page 13: BEM - A naming methodology that just works

● 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

Page 14: BEM - A naming methodology that just works

Elemento: Esempio Visuale

Page 15: BEM - A naming methodology that just works

Elemento: Esempio codice 1

Page 16: BEM - A naming methodology that just works

● 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

Page 17: BEM - A naming methodology that just works

Elemento: Esempio codice 2

Page 18: BEM - A naming methodology that just works

Elemento: Esempio codice 3

Page 19: BEM - A naming methodology that just works

● Un componente può essere descritto da un mix di blocchi ed elementi.

Element: Altri Concetti

Page 20: BEM - A naming methodology that just works

● Un blocco può non avere elementi.

● Un blocco può esistere dentro un elemento

Block & Element: Altri Concetti

Page 21: BEM - A naming methodology that just works

BlockElementModifierBlockElementModif

Page 22: BEM - A naming methodology that just works

● 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

Page 23: BEM - A naming methodology that just works

Modificatore: Esempio di codice 1

Page 24: BEM - A naming methodology that just works

Modificatore: Esempio di codice 2

Page 26: BEM - A naming methodology that just works

● Pattern 7-in-1 (parte di Sass Guidelines): sass-guidelin.es/it

● ITCSS: youtube.com/watch?v=1OKZOV-iLj4

Bonus


Recommended