Security News
OpenJS: “XZ Utils Cyberattack Likely Not an Isolated Incident”
OpenJS is warning of social engineering takeovers targeting open source projects after receiving a credible attempt on the foundation.
postcss-custom-properties
Advanced tools
Weekly downloads
Readme
PostCSS Custom Properties lets you use Custom Properties in CSS, following the CSS Custom Properties specification.
:root {
--color: red;
}
h1 {
color: var(--color);
}
/* becomes */
:root {
--color: red;
}
h1 {
color: red;
color: var(--color);
}
Note: This plugin only processes variables that are defined in the :root
selector.
Add PostCSS Custom Properties to your project:
npm install postcss-custom-properties --save-dev
Use PostCSS Custom Properties as a PostCSS plugin:
const postcss = require('postcss');
const postcssCustomProperties = require('postcss-custom-properties');
postcss([
postcssCustomProperties(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);
PostCSS Custom Properties runs in all Node environments, with special instructions for:
Node | PostCSS CLI | Webpack | Create React App | Gulp | Grunt |
---|
The preserve
option determines whether Custom Properties and properties using
custom properties should be preserved in their original form. By default, both
of these are preserved.
postcssCustomProperties({
preserve: false
});
:root {
--color: red;
}
h1 {
color: var(--color);
}
/* becomes */
h1 {
color: red;
}
The importFrom
option specifies sources where Custom Properties can be imported
from, which might be CSS, JS, and JSON files, functions, and directly passed
objects.
postcssCustomProperties({
importFrom: 'path/to/file.css' // => :root { --color: red }
});
h1 {
color: var(--color);
}
/* becomes */
h1 {
color: red;
}
Multiple sources can be passed into this option, and they will be parsed in the
order they are received. JavaScript files, JSON files, functions, and objects
will need to namespace Custom Properties using the customProperties
or
custom-properties
key.
postcssCustomProperties({
importFrom: [
'path/to/file.css', // :root { --color: red; }
'and/then/this.js', // module.exports = { customProperties: { '--color': 'red' } }
'and/then/that.json', // { "custom-properties": { "--color": "red" } }
{
customProperties: { '--color': 'red' }
},
() => {
const customProperties = { '--color': 'red' };
return { customProperties };
}
]
});
See example imports written in CSS, JS, and JSON.
The overrideImportFromWithRoot
option determines if properties added via importFrom
are overridden by properties that exist in :root
.
Defaults to false
.
postcssCustomProperties({
overrideImportFromWithRoot: true
});
The exportTo
option specifies destinations where Custom Properties can be exported
to, which might be CSS, JS, and JSON files, functions, and directly passed
objects.
postcssCustomProperties({
exportTo: 'path/to/file.css' // :root { --color: red; }
});
Multiple destinations can be passed into this option, and they will be parsed
in the order they are received. JavaScript files, JSON files, and objects will
need to namespace Custom Properties using the customProperties
or
custom-properties
key.
const cachedObject = { customProperties: {} };
postcssCustomProperties({
exportTo: [
'path/to/file.css', // :root { --color: red; }
'and/then/this.js', // module.exports = { customProperties: { '--color': 'red' } }
'and/then/this.mjs', // export const customProperties = { '--color': 'red' } }
'and/then/that.json', // { "custom-properties": { "--color": "red" } }
'and/then/that.scss', // $color: red;
cachedObject,
customProperties => {
customProperties // { '--color': 'red' }
}
]
});
See example exports written to CSS, JS, MJS, JSON and SCSS.
Silence the deprecation notice that is printed to the console when using importFrom
or exportTo
.
"importFrom" and "exportTo" will be removed in a future version of postcss-custom-properties. Check the discussion on github for more details. https://github.com/csstools/postcss-plugins/discussions/192
FAQs
Use Custom Properties Queries in CSS
The npm package postcss-custom-properties receives a total of 5,355,362 weekly downloads. As such, postcss-custom-properties popularity was classified as popular.
We found that postcss-custom-properties demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
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.
Security News
OpenJS is warning of social engineering takeovers targeting open source projects after receiving a credible attempt on the foundation.
Company News
Come meet the Socket team at BSidesSF and RSA! We're sponsoring several fun networking events and we would love to see you there.
Security News
OSI is starting a conversation aimed at removing the excuse of the SaaS loophole for companies navigating licensing and the complexities of doing business with open source.