Package Exports
- patternplate-transform-cssmodules-symbols
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (patternplate-transform-cssmodules-symbols) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
patternplate-transform-cssmodules-symbols
patternplate transform to enable usage of css modules
⚠️ This transform is intended to be used in conjunction with patternplate-transform-cssmodules and depends on it being configured properly for styles files to import.
See the Configuration section for details.
Installation
npm install --save patternplate-transform-cssmodules-symbols patternplate-transform-cssmodules
Configuration
// file: configuration/patternplate-server/patterns.js
module.exports = {
formats: {
css: {
name: 'Style',
transforms: ['cssmodules']
},
jsx: {
name: 'Markup',
transforms: ['cssmodules-symbols', 'react', 'react-to-markup']
}
}
};
// file: configuration/patternplate-server/transforms.js
module.exports = {
'cssmodules-symbols': {
inFormat: 'jsx',
outFormat: 'jsx'
},
cssmodules: {
inFormat: 'css',
outFormat: 'css'
}
};
Usage
Sources
// atoms/button/index.jsx
import styles from 'style://Pattern';
import cx from 'classnames';
const className = cx(styles.default, {
[styles.disabled]: this.props.disabled
});
<button className={className}>
{this.props.children}
</button>
/* atoms/button/index.css */
.default {
padding: 5px 10px;
background: blue;
color: white;
}
.disabled {
background: grey;
}
Transformed
// <Button>Lorem Ipsum dolor si amnet</Button>
<button class="_button_4erg9ut2">
Lorem Ipsum dolor si amnet
</button>
// <Button>Lorem Ipsum dolor si amnet</Button>
<button class="_button_4erg9ut2 _button_iert9832">
Lorem Ipsum dolor si amnet
</button>
/* atoms/button/index.css */
._button_4erg9ut2 {
padding: 5px 10px;
background: blue;
color: white;
}
._button_iert9832 {
background: grey;
}