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
- Semantic HTML5
- Includes Flat Color
- Includes Typography
- Autoprefixer
- Livereload with Browsersync
- Includes Framework
- Includes Useful Mixins
- Breakpoints
- Clearfix
- Rem units
- Background Image
- Background Tinted Image
- Background Image Parallax
- Background Tinted Image Parallax
- Background Shapes Image
- Background Tinted Shapes Image
- Background Shapes Image Parallax
- Background Tinted Shapes Image Parallax
-
Breakpoints
@include mq (xxsmall) { // your css } or .example { @include mq (xxsmall) { // your css } }
-
Clearfix
.example { @include clearfix; }
-
Rem units
.example { @include font-size(14px); }
-
Background Image
.example { @include bgImg ('../images/image.jpeg', center center, no-repeat, cover); }
-
Background Tinted Image
.example { @include bgTintedImg ('../images/image.jpeg', center center, no-repeat, cover, rgba(255, 0, 0, 0.45)); }
-
Background Image Parallax
.example { @include bgImgParallax ('../images/image.jpeg', center center, no-repeat, cover, fixed); }
-
Background Tinted Image Parallax
.example { @include bgTintedImgParallax ('../images/image.jpeg', center center, no-repeat, cover, fixed, rgba(255, 0, 0, 0.45)); }
-
Background Shapes Image
.example { @include bgShapeLeftImg ('../images/image.jpeg', center center, no-repeat, cover, 87%); } .example { @include bgShapeRightImg ('../images/image.jpeg', center center, no-repeat, cover, 87%); }
-
Background Tinted Shapes Image
.example { @include bgShapeLeftImg ('../images/image.jpeg', center center, no-repeat, cover, 87%, rgba(255, 0, 0, 0.45)); } .example { @include bgShapeRightImg ('../images/image.jpeg', center center, no-repeat, cover, 87%, rgba(255, 0, 0, 0.45)); }
-
Background Shapes Image Parallax
.example { @include bgShapeLeftImgParallax ('../images/image.jpeg', center center, no-repeat, cover, fixed, 87%); } .example { @include bgShapeRightImgParallax ('../images/image.jpeg', center center, no-repeat, cover, fixed, 87%); }
-
Background Tinted Shapes Image Parallax
.example { @include bgTintedShapeLeftImgParallax ('../images/image.jpeg', center center, no-repeat, cover, fixed, 87%, rgba(255, 0, 0, 0.45)); } .example { @include bgTintedShapeRightImgParallax ('../images/image.jpeg', center center, no-repeat, cover, fixed, 87%, rgba(255, 0, 0, 0.45)); }