Chciałbym zachować jeden centralny plik .scss, który przechowuje wszystkie definicje zmiennych SASS dla projektu.
// _master.scss
$accent: #6D87A7;
$error: #811702;
$warning: #F9E055;
$valid: #038144;
// etc...
Projekt będzie miał dużą liczbę plików CSS ze względu na swój charakter. Ważne jest, aby zadeklarować wszystkie zmienne stylu dla całego projektu w jednym miejscu.
Czy jest na to sposób w SCSS?
Odpowiedzi:
Możesz to zrobić w następujący sposób:
Mam folder o nazwie utilities i wewnątrz niego mam plik o nazwie _variables.scss
w tym pliku deklaruję zmienne w następujący sposób:
następnie mam plik style.scss, w którym importuję wszystkie inne moje pliki scss, takie jak to:
następnie w dowolnym pliku, który zaimportowałem, powinienem mieć dostęp do zmiennych, które zadeklarowałem.
Upewnij się tylko, że importujesz plik zmiennej przed innymi, w których chcesz go użyć.
źródło
$black: #000 !default;
. Rzecz!default
zapobiega resetowaniu zmiennej, jeśli już istnieje.Ta odpowiedź pokazuje, jak skończyłem z tym i dodatkowe pułapki, które trafiłem.
Zrobiłem główny plik SCSS. Ten plik musi mieć podkreślenie na początku, aby mógł zostać zaimportowany:
Następnie w nagłówku wszystkich innych moich plików .SCSS importuję wzorzec:
WAŻNY
Nie dołączaj do
_master.scss
pliku niczego oprócz zmiennych, deklaracji funkcji i innych funkcji SASS . Jeśli podasz rzeczywisty CSS, skopiuje ten CSS do każdego pliku, do którego zaimportujesz wzorzec.źródło
To pytanie zostało zadane dawno temu, więc pomyślałem, że opublikuję zaktualizowaną odpowiedź.
Teraz powinieneś unikać używania
@import
. Zaczerpnięte z dokumentów:Pełna lista powodów znajduje się tutaj
Powinieneś teraz używać,
@use
jak pokazano poniżej:_variables.scss
_otherFile.scss
Możesz także utworzyć alias dla przestrzeni nazw:
_otherFile.scss
źródło
Utwórz plik index.scss i tam możesz zaimportować całą posiadaną strukturę plików. Wkleję ci mój indeks z projektu korporacyjnego, może pomoże to innym, jak ustrukturyzować pliki w css:
Możesz je oglądać za pomocą gulp / grunt / webpack itp., Takich jak:
gulpfile.js
// Zadanie SASS
źródło
Co powiesz na zapisanie klasy opartej na kolorach w globalnym pliku sass, więc nie musimy się przejmować, gdzie są zmienne. Podobnie jak poniżej:
a następnie możemy użyć
background-color
klasy w dowolnym pliku. Chodzi mi o to, że nie muszę importowaćvariable.scss
do żadnego pliku, wystarczy go użyć.źródło