Properly architecting your Sass project is a crucial starting point to having a maintainable, scalable, and well-organized project. Sass makes separating your project into logical “modules” simple with the @import
directive, which acts differently than the native CSS @import
directive in that it includes .scss
or .sass
files before the final CSS output.
You can read the documentation on the @import
directive to get a good idea of how you can use it to include partial files.
There are many project architectures that you can employ in your project, and each might have their pros and cons. The important thing is that you choose one and stick with it. In this article, The 7-1 Pattern by Hugo Giraudel will be used. To summarize, there are seven folders and one main.scss
file for output:
base/
– contains global styles, such as resets, typography, colors, etc.components/
– contains each self-contained component in its own .scss partiallayout/
– contains styling for larger layout components; e.g. nav, header, footer, etc.pages/
– contains page-specific styling, if necessarythemes/
– contains styling for different themesutils/
– contains global mixins, functions, helper selectors, etc.vendors/
– contains 3rd-party styles, mixins, etc.main.scss
– output file that brings together all of the above parts
Source : scotch.io