Stylus and How to Use It in Infusion
Stylus documentation: http://learnboost.github.io/stylus/
Stylus tutorial: http://learnboost.github.io/stylus/try.html
What is Stylus
Stylus is a CSS pre-processor, that runs in node.js or even a web browser.
Why Use a CSS pre-processor
- Easier to maintain
- reduces duplication (e.g. variables, mixins, functions, and etc)
- improved organization
Why Stylus
- Runs in node.js
- Rich functionality
- Flexible syntax
Stylus convention for Infusion
- Keep colons, semi-colons and brackets (for readability)
How to prevent grunt from compiling utility Stylus files
Utility Stylus files only contain mixins or functions for other Stylus files to import. Utility files should not be compiled down to CSS, to prevent the grunt task `grunt buildStylus` from compiling them, place these files in a "utils" directory. This is an example of the utility directory.
Steps to convert an infusion CSS to Stylus
- Create a "stylus" directory inside of the modules css directory and place all stylus files in the "stylus" directory
- If utility Stylus files are needed, create a "utils" sub-directory within the "stylus" directory and place the utils files within
- To compile to CSS, from the command line run
grunt buildStylus
. This will place the compiled CSS files directly in the parent css directory
Example Structure
- component
- css
- stylus
- utils
- stylus
- css