Je voudrais conserver un fichier .scss central qui stocke toutes les définitions de variables SASS pour un projet.
// _master.scss
$accent: #6D87A7;
$error: #811702;
$warning: #F9E055;
$valid: #038144;
// etc...
Le projet comportera un grand nombre de fichiers CSS, en raison de sa nature. Il est important que je déclare toutes les variables de style à l'échelle du projet en un seul endroit.
Existe-t-il un moyen de le faire dans SCSS?
Réponses:
Vous pouvez le faire comme ceci:
J'ai un dossier nommé utilitaires et à l'intérieur de celui-ci j'ai un fichier nommé _variables.scss
dans ce fichier, je déclare des variables comme ceci:
alors j'ai le fichier style.scss dans lequel j'importe tous mes autres fichiers scss comme ceci:
puis, dans n'importe lequel des fichiers que j'ai importés, je devrais pouvoir accéder aux variables que j'ai déclarées.
Assurez-vous simplement d'importer le fichier variable avant tout autre fichier dans lequel vous souhaitez l'utiliser.
la source
$black: #000 !default;
. Le!default
truc empêche la réinitialisation de la variable si elle existe déjà.Cette réponse montre comment j'ai fini par l'utiliser et les pièges supplémentaires que j'ai rencontrés.
J'ai créé un fichier SCSS maître. Ce fichier doit avoir un trait de soulignement au début pour pouvoir être importé:
Ensuite, dans l'en-tête de tous mes autres fichiers .SCSS, j'importe le maître:
IMPORTANT
N'incluez rien d'autre que des variables, des déclarations de fonctions et d'autres fonctionnalités SASS dans votre
_master.scss
fichier. Si vous incluez du CSS réel, il dupliquera ce CSS dans chaque fichier dans lequel vous importez le maître.la source
Cette question a été posée il y a longtemps, j'ai donc pensé publier une réponse mise à jour.
Vous devez maintenant éviter d' utiliser
@import
. Tiré des documents:Une liste complète des raisons peut être trouvée ici
Vous devez maintenant utiliser
@use
comme indiqué ci-dessous:_variables.scss
_otherFile.scss
Vous pouvez également créer un alias pour l'espace de noms:
_otherFile.scss
la source
Créez un index.scss et vous pourrez y importer toute la structure de fichiers dont vous disposez. Je vais vous coller mon index à partir d'un projet d'entreprise, peut-être que cela aidera d'autres comment structurer des fichiers en CSS:
Et vous pouvez les regarder avec gulp / grunt / webpack etc., comme:
gulpfile.js
// Tâche SASS
la source
Que diriez-vous d'écrire une classe basée sur les couleurs dans un fichier sass global, nous n'avons donc pas besoin de nous soucier de l'emplacement des variables. Tout comme ce qui suit:
puis, nous pouvons utiliser la
background-color
classe dans n'importe quel fichier. Mon point est que je n'ai pas besoin d'importervariable.scss
dans n'importe quel fichier, il suffit de l'utiliser.la source