
Security News
Django Joins curl in Pushing Back on AI Slop Security Reports
Django has updated its security policies to reject AI-generated vulnerability reports that include fabricated or unverifiable content.
@csstools/postcss-light-dark-function
Advanced tools
npm install @csstools/postcss-light-dark-function --save-dev
PostCSS Light Dark Function lets you use the light-dark
color function in
CSS, following the CSS Color 5 Specification.
.dark {
color-scheme: dark;
}
.light {
color-scheme: light;
}
.theme {
color: light-dark(pink, magenta);
}
.prop {
--theme-color: light-dark(cyan, deepskyblue);
}
/* becomes */
.dark {
--csstools-color-scheme--light: ;
--csstools-color-scheme--dark: initial;
color-scheme: dark;
}
.light {
--csstools-color-scheme--light: initial;
--csstools-color-scheme--dark: ;
color-scheme: light;
}
.theme {
color: var(--csstools-color-scheme--light, pink) var(--csstools-color-scheme--dark, magenta);
color: light-dark(pink, magenta);
}
.prop {
--theme-color: var(--csstools-color-scheme--light, cyan) var(--csstools-color-scheme--dark, deepskyblue);
& * {
--theme-color: var(--csstools-color-scheme--light, cyan) var(--csstools-color-scheme--dark, deepskyblue);
}
}
@supports (color: light-dark(red, red)) {
.prop {
--theme-color: light-dark(cyan, deepskyblue);
}
}
:root {
--csstools-color-scheme--light: initial;
--csstools-color-scheme--dark: ;
}
@media (prefers-color-scheme: dark) {
:root {
--csstools-color-scheme--light: ;
--csstools-color-scheme--dark: initial;
}
}
Add PostCSS Light Dark Function to your project:
npm install postcss @csstools/postcss-light-dark-function --save-dev
Use it as a PostCSS plugin:
const postcss = require('postcss');
const postcssLightDarkFunction = require('@csstools/postcss-light-dark-function');
postcss([
postcssLightDarkFunction(/* pluginOptions */)
]).process(YOUR_CSS /*, processOptions */);
PostCSS Light Dark Function runs in all Node environments, with special instructions for:
The preserve
option determines whether the original notation
is preserved. By default, it is preserved.
postcssLightDarkFunction({ preserve: false })
.dark {
color-scheme: dark;
}
.light {
color-scheme: light;
}
.theme {
color: light-dark(pink, magenta);
}
.prop {
--theme-color: light-dark(cyan, deepskyblue);
}
/* becomes */
.dark {
--csstools-color-scheme--light: ;
--csstools-color-scheme--dark: initial;
color-scheme: dark;
}
.light {
--csstools-color-scheme--light: initial;
--csstools-color-scheme--dark: ;
color-scheme: light;
}
.theme {
color: var(--csstools-color-scheme--light, pink) var(--csstools-color-scheme--dark, magenta);
}
.prop {
--theme-color: var(--csstools-color-scheme--light, cyan) var(--csstools-color-scheme--dark, deepskyblue);
& * {
--theme-color: var(--csstools-color-scheme--light, cyan) var(--csstools-color-scheme--dark, deepskyblue);
}
}
:root {
--csstools-color-scheme--light: initial;
--csstools-color-scheme--dark: ;
}
@media (prefers-color-scheme: dark) {
:root {
--csstools-color-scheme--light: ;
--csstools-color-scheme--dark: initial;
}
}
The enableProgressiveCustomProperties
option determines whether the original notation
is wrapped with @supports
when used in Custom Properties. By default, it is enabled.
[!NOTE] We only recommend disabling this when you set
preserve
tofalse
or if you bring your own fix for Custom Properties.
See what the plugin does in its README.
postcssLightDarkFunction({ enableProgressiveCustomProperties: false })
FAQs
Use the light-dark() color function in CSS
The npm package @csstools/postcss-light-dark-function receives a total of 1,167,902 weekly downloads. As such, @csstools/postcss-light-dark-function popularity was classified as popular.
We found that @csstools/postcss-light-dark-function demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 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
Django has updated its security policies to reject AI-generated vulnerability reports that include fabricated or unverifiable content.
Security News
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.