postcss-styled-components
A PostCSS and stylelint custom syntax for parsing CSS inside styled-components templates.
For example:
const Div = styled.div`
color: hotpink;
`;
Install
npm i -D postcss-styled-components
Usage with PostCSS
In your postcss.config.js
:
module.exports = {
syntax: 'postcss-styled-components',
plugins: [...]
};
PostCSS with webpack
If you use webpack to execute postcss, you must ensure the right order of loaders, like so:
module.exports = {
entry: './src/my-element.ts',
module: {
rules: [
{
test: /\.ts$/,
use: ['postcss-loader', 'ts-loader'],
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.ts']
},
output: {
filename: 'bundle.js'
}
};
This is important as postcss will transform your CSS before typescript transpiles to JS (which is what you want to happen).
Usage with stylelint
In your .stylelintrc.json
(or other stylelint config file):
{
"customSyntax": "postcss-styled-components"
}
Or with the CLI:
stylelint --custom-syntax postcss-styled-components
Usage with vscode-stylelint
In order to make the vscode-stylelint extension work with this syntax correctly, you must configure it to validate JS and/or TypeScript files.
You can do this by following these instructions.
For example:
{
"stylelint.validate": ["css", "javascript", "typescript"]
}