🚀 DAY 5 OF LAUNCH WEEK:Introducing Webhook Events for Alert Changes.Learn more →
Socket
Book a DemoInstallSign in
Socket

sass-proptypes

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sass-proptypes

Argument validation for your Sass mixins

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

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:

  • $prop the mixin argument you wish to validate.
  • $propType a 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.scss

Get to work

Sass propTypes is available on Bower...

$ bower install sass-proptypes

...and NPM...

$ npm install sass-proptypes

Improvements

Got an idea to make this better? PRs welcome.

Keywords

sass

FAQs

Package last updated on 13 Sep 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts