Skip to content

css-modules/postcss-icss-values

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

postcss-icss-values Build Status

PostCSS plugin for css modules to pass arbitrary values between your module files.

Usage

postcss([ require('postcss-icss-values') ])

See PostCSS docs for examples for your environment.

Export value

/* colors.css */ @value primary: #BF4040; /* or without colon for preprocessors */ @value secondary #1F4F7F; .panel { background: primary; } /* transforms to */ :export { primary: #BF4040; secondary: #1F4F7F } .panel { background: #BF4040; }

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.

Note also you can import multiple values at once but can only define one value per line.

@value a: b, c: d; /* defines a as "b, c: d" */

Importing value

@value primary, secondary from './colors.css'; .panel { background: secondary; } /* transforms to similar exports */ :import('./colors.css') { __value__primary__0: primary; __value__secondary__1: secondary } :export { primary: __value__primary__0; /* this long names will be mapped to imports by your loader */ secondary: __value__secondary__1 } .panel { background: __value__secondary__1; }

Importing value in JS

import { primary } from './colors.css'; // will have similar effect console.log(primary); // -> #BF4040

Aliases

To avoid conflict between names you are able to import values with aliases

@value small as bp-small, large as bp-large from './breakpoints.css'; @value ( small as t-small, large as t-large ) from './typo.css'; @media bp-small { .foo { font-size: t-small; } }

Messages

postcss-icss-values passes result.messages for each declared or imported value

{ plugin: 'postcss-icss-values', type: 'icss-value', name: string, // exported identifier value: string // generated imported identifier or value }

Justification

See this PR for more background

License

MIT © Glen Maddern and Bogdan Chadkin, 2015

About

Pass arbitrary constants between your module files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 15