Gostaria de manter um arquivo .scss central que armazena todas as definições de variáveis SASS para um projeto.
// _master.scss
$accent: #6D87A7;
$error: #811702;
$warning: #F9E055;
$valid: #038144;
// etc...
O projeto terá um grande número de arquivos CSS, devido à sua natureza. É importante declarar todas as variáveis de estilo de todo o projeto em um local.
Existe uma maneira de fazer isso no SCSS?
Respostas:
Você pode fazer assim:
Eu tenho uma pasta chamada utilitários e dentro dela eu tenho um arquivo chamado _variables.scss
Nesse arquivo, declaro variáveis da seguinte forma:
então eu tenho o arquivo style.scss no qual importo todos os meus outros arquivos scss como este:
então, em qualquer um dos arquivos que importei, devo poder acessar as variáveis que declarei.
Apenas certifique-se de importar o arquivo variável antes de qualquer outro em que você gostaria de usá-lo.
fonte
$black: #000 !default;
. O!default
item impede que a variável seja redefinida se ela já existir.Esta resposta mostra como eu acabei usando isso e as armadilhas adicionais que encontrei.
Eu criei um arquivo SCSS mestre. Este arquivo deve ter um sublinhado no início para ser importado:
Em seguida, no cabeçalho de todos os meus outros arquivos .SCSS, importo o mestre:
IMPORTANTE
Não inclua nada além de variáveis, declarações de função e outros recursos do SASS em seu
_master.scss
arquivo. Se você incluir CSS real, ele será duplicado em todos os arquivos nos quais você importa o mestre.fonte
Esta pergunta foi feita há muito tempo, então pensei em publicar uma resposta atualizada.
Agora você deve evitar o uso
@import
. Retirado dos documentos:Uma lista completa dos motivos pode ser encontrada aqui
Agora você deve usar
@use
como mostrado abaixo:_variables.scss
_otherFile.scss
Você também pode criar um alias para o espaço para nome:
_otherFile.scss
fonte
Crie um index.scss e aí você poderá importar toda a estrutura de arquivos que possui. Vou colar o meu índice de um projeto corporativo, talvez ajude outros a estruturar arquivos em css:
E você pode assisti-los com gulp / grunt / webpack etc, como:
gulpfile.js
// Tarefa SASS
fonte
Que tal escrever alguma classe baseada em cores em um arquivo sass global, portanto, não precisamos nos importar onde estão as variáveis. Assim como o seguinte:
e então, podemos usar a
background-color
classe em qualquer arquivo. O que quero dizer é que não preciso importarvariable.scss
nenhum arquivo, apenas usá-lo.fonte