Name Last Update
..
lib Loading commit data...
src Loading commit data...
test Loading commit data...
.npmignore Loading commit data...
.travis.yml Loading commit data...
README.md Loading commit data...
package.json Loading commit data...

CSS Modules: Values

Pass arbitrary values between your module files

Usage

/* colors.css */
@value primary: #BF4040;
@value secondary: #1F4F7F;

.text-primary {
  color: primary;
}

.text-secondary {
  color: secondary;
}
/* breakpoints.css */
@value small: (max-width: 599px);
@value medium: (min-width: 600px) and (max-width: 959px);
@value large: (min-width: 960px);
/* my-component.css */
@value colors: "./colors.css";
@value primary, secondary from colors;
@value small as bp-small, large as bp-large from "./breakpoints.css";

.header {
  composes: text-primary from colors;
  box-shadow: 0 0 10px secondary;
}

@media bp-small {
  .header {
    box-shadow: 0 0 4px secondary;
  }
}
@media bp-large {
  .header {
    box-shadow: 0 0 20px secondary;
  }
}

If you are using Sass along with this PostCSS plugin, do not use the colon : in your @value definitions. It will cause Sass to crash.

Justification

See this PR for more background

License

ISC

With thanks

  • Mark Dalgleish
  • Tobias Koppers
  • Josh Johnston

Glen Maddern, 2015.