Does @import 'compass' includes the whole framework?
compass-sass
Solution
According to the docs `@import 'compass'` will import CSS3, Typography and Utilities modules. These modules won't inject anything into your output CSS, they contain only mixins.
By limiting import to a specific module or submodule (i.e. `@import 'compass/css3/image'`) you will reduce the time required to compile your SASS files into CSS.
For example, lets create two files.
// all.scss
@import "compass";
.candy {
@include background(linear-gradient(top left, #333, #0c0));
}
// module.scss
@import "compass/css3/images";
.candy {
@include background(linear-gradient(top left, #333, #0c0));
}
If we compile them (`compass compile sass/FILENAME.scss`), result CSS will be identical:
.candy {
background: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #333333), color-stop(100%, #00cc00));
background: -webkit-linear-gradient(top left, #333333, #00cc00);
background: -moz-linear-gradient(top left, #333333, #00cc00);
background: -o-linear-gradient(top left, #333333, #00cc00);
background: linear-gradient(top left, #333333, #00cc00);
}
Now lets add `--time` argument to the compilation command and compare the results. For my machine, it took 1.516 s to compile `all.css` vs only 0.108 s for `module.css`.
Problem
I started to importing shared things like variables and mixins in one place - css manifest file. Now I'm importing some Compass mixins using direct path to the files. My question is if using `@import 'compass'` injects the whole framework into application.css or is it done by looking by references in sass files and then importing only needed mixins? I don't want to include everything.