Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Underscore in partial Sass file

Tags:

sass

gulp-sass

Is it necessary to have a .scss partial file start with an underscore? The documentation states that a partial should start with an underscore, because the file would otherwise compile to a CSS file.

However I've noticed gulp-sass compiles files without an underscore into one complete CSS file just fine.

like image 241
Squrler Avatar asked Jul 09 '15 07:07

Squrler


1 Answers

1. Partials must start with an underscore if you do not want them to be generated into a css file.

2. A scss file can import another file without an underscore and still compile correctly.

Take this example:

sass     +-- base     |   +-- _normalize.scss      +-- components       |   +-- site-header.scss     +-- utilities            |   +-- _icons.scss     +-- site.scss 

Here we can see that site-header.scss and site.scss do not have underscores. If I ran a gulp task to compile anything within the sass folder, two files would be output.

site-header.css site.css 

We do not want to generate site-header.css but because we have omitted the underscore the compiler only ignores files with an underscore and generates a css file for it.

site-header.scss can still be referenced in site.scss with an @import

@import 'components\site-header'; 

This will result in the same outcome whether it is prefixed with an underscore or not.

like image 60
Colin Bacon Avatar answered Oct 03 '22 06:10

Colin Bacon