OSS TanbouSign in with GitHub

select standard CSS transforms from CSSDB and browser targets and compose them into a PostCSS pipeline

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
1,057
Primary language
CSS
License
MIT-0
Repository last updated
Oct 5, 2026
On this page

Overview

CSSTools PostCSS Plugins contains plugins, plugin packs, parsers, utilities, and CLI tools for emerging CSS features. Its postcss-preset-env pack uses CSSDB and Browserslist to choose needed transformations and includes Autoprefixer for target-aware vendor prefixes.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Provide many PostCSS plugins for standards-track CSS features

The monorepo covers custom media, nesting, modern colors, logical properties, and other specification-driven features with focused transforms.

Sources: [1]

Use postcss-preset-env to select plugins from browser targets

CSSDB support data and Browserslist determine which transforms are necessary, allowing unneeded fallbacks to be skipped as browser targets change.

Sources: [3][4]

Share the same browser policy with bundled Autoprefixer

postcss-preset-env includes Autoprefixer and applies vendor prefixes from the same Browserslist target set.

Sources: [3][4]

Best fit

Fits builds that author modern CSS and generate compatible output for explicit browser targets

It reduces manual plugin curation when teams want compatibility to follow a shared browser policy and standards maturity.

Sources: [3]

Before adoption

Not every new CSS behavior can be fully polyfilled with CSS alone

The documentation notes that some features require a companion client library, so transformed output may need feature-specific runtime support.

Sources: [3]

The monorepo root version is not the user-facing package version

The private root package is 1.0.0, while postcss-preset-env is 11.6.0 and requires Node >=20.19.0 plus PostCSS ^8.4.

Sources: [2][4][5]

Official sources

  1. [1]CSSTools PostCSS Plugins README(2026-10-05)
  2. [2]CSSTools monorepo package metadata(2026-10-05)
  3. [3]postcss-preset-env README(2026-10-05)
  4. [4]postcss-preset-env 11.6.0 package metadata(2026-10-05)
  5. [5]postcss-preset-env changelog(2026-10-05)
  6. [6]CSSTools MIT-0 license(2026-10-05)
Supplemental curator note

This repository is a monorepo of independently versioned plugins and packages. The representative postcss-preset-env package is 11.6.0 and requires Node.js >=20.19.0 with PostCSS ^8.4. The private root version 1.0.0 should not be treated as the product version.

Try it in 3 steps

  1. 1

    Install postcss-preset-env 11.6.0 with PostCSS

    On Node.js 20.19.0 or later, pin the representative plugin pack together with PostCSS.

    demo=$(mktemp -d "${TMPDIR:-/tmp}/csstools-preset-env.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact postcss@8.5.29 postcss-preset-env@11.6.0
  2. 2

    Create modern CSS and a transform script

    Use custom media and nesting as a compact example of standards-track CSS processed through the preset.

    printf "%s\n" '@custom-media --narrow (width <= 50rem);' '.card { color: rebeccapurple; @media (--narrow) { color: blue; } }' > input.css && printf "%s\n" "import fs from 'node:fs';" "import postcss from 'postcss';" "import postcssPresetEnv from 'postcss-preset-env';" "const css = fs.readFileSync('input.css', 'utf8');" "const result = await postcss([postcssPresetEnv({ stage: 0 })]).process(css, { from: 'input.css', to: 'output.css' });" "fs.writeFileSync('output.css', result.css);" > demo.mjs
  3. 3

    Run the transform and verify compatible output

    Confirm the custom media definition is transformed into a conventional media query.

    node demo.mjs && grep -q "max-width: 50rem" output.css && ! grep -q "@custom-media" output.css
Check the official README

Growth

Growth trends · Last 30 days

1,057 Stars

Trend data is still being collected.

Built with

Categories and tags

Categories

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • css
  • postcss
Stars
1,057
Forks
83
Watchers
9
Open issues
9
Owner type
Organization
Primary language
CSS
License
MIT-0
Repository last updated
Oct 5, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?