2017-04-01 5 views
0

Ich versuche, die BEM-Methode für meine Variablen zu implementieren.Deklarieren von Sass-Variablen mit der BEM-Methode

// Variables 
    // Colors 
    $color--blue--light: #3696D1; 
    $color--grey: #2D4452; 
    ... 
    // Fonts 
    $body__font--sans-serif--roboto: 'Roboto', sans-serif; 
    ... 

/* Global */ 

body { 
    font-family: $body__font--sans-serif--roboto; 
    background-color: $color--blue--light; 
    color: $color--grey; 
}... 

Ist dies ein guter Ansatz für die BEM-Methode?

Auch ich werde die Farbvariable für verschiedene Blöcke (Körper, Header ...) verwenden, sollte ich einen Block hinzufügen, wenn die Farbvariable deklariert?

Antwort

1

Wenn es hilft, Ihren Code zu organisieren und zu standardisieren, ist das ein guter Ansatz. Wenn Sie das Gefühl haben, dass es unnötig ist, können Sie eine andere Konvention verwenden.

Zum Beispiel habe ich BEM verwenden in Markup:

<div class="myBtnClass myBtnClass--blue"> 
    <div class="myBtnClass__inner"> 
     etc etc etc 

In der Benennung von Variablen ich hilfreich nicht das Gefühl ist so ausführlich und streng und ich verwende einfach

$red: #cc0000; 
$roboto: 'Roboto', sans-serif; 

kann aber auch auf die abhängig Komplexität des Projekts, an dem Sie arbeiten.

+0

Vielen Dank. Übrigens habe ich gerade eine andere Person gefunden, die verrückt wird wegen Sabotage und dieser Konvention [http://www.juliecameron.com/blog/2013/11/06/bem-naming-for-sass-color-variables-what1/](http : //www.juliecameron.com/blog/2013/11/06/bem-naming-for-sass-color-variables-what1/) –

+0

@cesare Es ist eine schlechte Idee Variablen auf diese Weise zu benennen. Was passiert, wenn die Schriftfamilie in Arial geändert wird? Aber Variable hat immer noch den Namen '$ roboto'. Also, '$ red' ->' $ color', '$ roboto' ->' $ font-family'. Namen müssen so abstrakt wie möglich sein. – 3rdthemagical

+0

Sicher, wenn ich ein Projekt habe, wo es die Möglichkeit gibt, Schriftarten oder Farben zu ändern, erstelle ich eine abstraktere Schicht von Variablen: '$ borderColor: $ red',' $ copyFont: $ arial', und so ... – cesare

Verwandte Themen