Me gustaría mantener un archivo .scss central que almacene todas las definiciones de variables SASS para un proyecto.
// _master.scss
$accent: #6D87A7;
$error: #811702;
$warning: #F9E055;
$valid: #038144;
// etc...
El proyecto tendrá una gran cantidad de archivos CSS, debido a su naturaleza. Es importante que declare todas las variables de estilo de todo el proyecto en una ubicación.
¿Hay alguna manera de hacer esto en SCSS?
Respuestas:
Puedes hacerlo así:
Tengo una carpeta llamada utilidades y dentro de ella tengo un archivo llamado _variables.scss
en ese archivo declaro variables así:
entonces tengo el archivo style.scss en el que importo todos mis otros archivos scss como este:
entonces, dentro de cualquiera de los archivos que he importado, debería poder acceder a las variables que he declarado.
Solo asegúrese de importar el archivo variable antes que cualquiera de los otros en los que le gustaría usarlo.
fuente
$black: #000 !default;
. La!default
cosa evita que la variable se restablezca si ya existe.Esta respuesta muestra cómo terminé usando esto y las dificultades adicionales que encontré.
Hice un archivo SCSS maestro. Este archivo debe tener un guión bajo al principio para que se importe:
Luego, en el encabezado de todos mis otros archivos .SCSS, importo el maestro:
IMPORTANTE
No incluya nada más que variables, declaraciones de funciones y otras características de SASS en su
_master.scss
archivo. Si incluye CSS real, duplicará este CSS en cada archivo en el que importe el maestro.fuente
Esta pregunta se hizo hace mucho tiempo, así que pensé en publicar una respuesta actualizada.
Ahora debe evitar usar
@import
. Tomado de los documentos:Puede encontrar una lista completa de razones aquí
Ahora debe usar
@use
como se muestra a continuación:_variables.scss
_otherFile.scss
También puede crear un alias para el espacio de nombres:
_otherFile.scss
fuente
Cree un index.scss y allí podrá importar toda la estructura de archivos que tenga. Pegaré mi índice de un proyecto empresarial, tal vez ayude a otras formas de estructurar archivos en css:
Y puede verlos con gulp / grunt / webpack, etc., como:
gulpfile.js
// Tarea SASS
fuente
¿Qué tal escribir alguna clase basada en el color en un archivo sass global? Por lo tanto, no necesitamos preocuparnos de dónde están las variables. Al igual que lo siguiente:
y luego, podemos usar la
background-color
clase en cualquier archivo. Mi punto es que no necesito importarvariable.scss
en ningún archivo, solo úselo.fuente