##Goals
- Simple and Thin
Output code is clean and minimal - Modular
Build system allows to import only necessary modules into any amount of output files. - Override and Extend
Anything can be overridden or extended - Design Skeleton
Provides minimal design skeletons, which you can extend to your needs
##Different levels of abstraction
- Variables:
User changes values of variables which affects different aspects of system during compilation. - Functions:
Return several vars (in property list form) or calculate result based on vars. User can override functions to implement his own calculations. - Prop-placeholders:
Used for extension (@extend
) within the prop-mixins to break dependencies. Cannot be overridden. - Prop-mixins:
Collection of actual css properties. Can be injected into any selector. Uses
@content
directive. User overrides those to change default css property set for specific selector. - User-prop-mixins:
Just includes (@include
) corresponding prop-mixin. User can override those to extend (not to replace completely) default property set. - Selector-mixin:
Contains selector sets with user-prop-mixins injection. Override those to change selectors relationships and prop-mixin injection. - User-selector-mixin:
Just includes (@include
) corresponding selector-mixin. Override those to extend (not to replace completely) default selector-mixins.