sass-proptypes
v1.0.1
Published
Argument validation for your Sass mixins
Downloads
3
Readme
Sass propTypes
Inspired by React's PropTypes validation, Sass PropTypes helps you validate required arguments for your Sass mixins. For example, imagine you've written a mixin that compiles buttons. The mixin accepts one of several $style arguments:
@mixin button($style: default) {
@if $style == 'default' {
// Default button styles
}
@if $style == 'primary' {
// Primary button styles
}
@if $style == 'negative' {
// Negative button styles
}
@if $style == 'positive' {
// Positive button styles
}
}The mixin works well so long as you pass in a valid $style argument (one of default, primary, negative, or positive). But what happens if you accidentally pass in a invalid argument, like brand or even a misspelling like positve? Well, nothing. You'll just lose some time debugging your compiled CSS.
This where Sass propTypes steps in. If you make a mistake and pass in a invalid argument, PropTypes will throw a warning in the console.
How to use
Simply include the propTypes mixin in the mixin you wish to validate. For the example above:
@mixin button($style: default) {
$propTypes: default, primary, negaive, positive;
@include propTypes($style, $propTypes);
...
}The propTypes mixin accepts two arguments:
$propthe mixin argument you wish to validate.$propTypea list of valid arguments.
If you were to pass in an invalid argument, the console will provide a helpful warning, with a stack trace that tells you exactly where to look:
WARNING: prmary must be one of default, primary, positive, negative
on line 5 of src/stylesheets/library/_proptypes.scss
from line 43 of src/stylesheets/library/_buttons.scss
from line 40 of src/stylesheets/buttons/_base.scssGet to work
Sass propTypes is available on Bower...
$ bower install sass-proptypes...and NPM...
$ npm install sass-proptypesImprovements
Got an idea to make this better? PRs welcome.
