postcss/autoprefixer
53.6
Adequate · 1 October 2026
7.1k
lines of production code
JavaScript
primary language
2
measurements over time
What this system is
Autoprefixer is a PostCSS plugin that automatically adds vendor prefixes to CSS properties based on current browser compatibility data. It processes stylesheets to ensure support for legacy browsers by applying specific hacks for features like Flexbox, Grid, and modern CSS values. The system operates via a CLI or build tool integration, relying on the caniuse-lite library to determine which prefixes are necessary for the target browser set.
Features
Add Autoprefixer CLI binary
A new executable script \bin/autoprefixer\ is introduced, allowing users to run Autoprefixer from the command line. It supports the \--info\ flag to display target browsers and used prefixes, \--version\ to show the current version number, and \--help\ for usage instructions.
bin · high confidence
Expanded CSS property and value hacks for Flexbox, Grid, and legacy browser support
The \lib/hacks\ directory now includes dedicated modules for a wide range of CSS properties, significantly broadening autoprefixer coverage. Flexbox support is extended with hacks for \align-content\, \align-items\, \align-self\, \flex-basis\, \flex-direction\, \flex-flow\, \flex-grow\, \flex-shrink\, \flex-wrap\, and \order\, handling legacy 2009 and 2012 spec variations. Grid layout support is substantially added with handlers for \grid-area\, \grid-column\, \grid-row\, \grid-template\, \grid-template-areas\, and related alignment and span properties, specifically targeting IE's \-ms-\ prefix requirements. Additional hacks cover \background-clip\, \background-size\, \border-image\, \border-radius\, \break-props\, \cross-fade\, \display-grid\, \filter\, \fullscreen\, \gradient\, \image-rendering\, \image-set\, \intrinsic\ sizing values, \mask-border\, \mask-composite\, \overscroll-behavior\, and pseudo-elements like \::file-selector-button\ and \:autofill\.
lib/hacks · high confidence
Behavioural changes
Autoprefixer is now a PostCSS plugin
The project has been renamed from Rework Vendors to Autoprefixer and migrated from the Rework framework to PostCSS. This change updates the entry point to use the PostCSS API, allowing users to integrate the tool with modern build systems like Webpack, Gulp, and CLI workflows using PostCSS. The license has also been updated from LGPL to MIT.
(repo-wide) · high confidence
Migrate browser prefix data source to caniuse-lite
The internal data files for browser support and properties (browsers.js, props.js) have been removed and replaced with a new prefixes.js module that dynamically fetches prefixing rules from the caniuse-lite library. This change shifts the source of truth for CSS feature support from static, manually maintained JSON files to an external, up-to-date dependency, ensuring that prefixing decisions for properties like border-radius, animations, and gradients are driven by current browser compatibility statistics.
data · high confidence
Rewritten core engine with PostCSS 8 support and new prefixing architecture
The library has been rewritten in JavaScript to support PostCSS 8, introducing a new modular architecture with dedicated classes for handling at-rules, declarations, selectors, and values. This update brings improved performance through caching and reduced array allocations, adds support for modern CSS features like Grid Layout (with auto-placement and subgrid warnings), text-decoration-skip-ink, overscroll-behavior, and backdrop-filter, and deprecates the old \browsers\ option in favor of \overrideBrowserslist\. The \info()\ function now provides detailed output about selected browsers and required prefixes, and the plugin now uses \OnceExit\ for cleaner lifecycle management.
lib · high confidence
Test coverage
Added test cases for browserslist configuration and CSS output; Expanded test coverage for CSS Grid, Flexbox, and modern CSS features; Migrate test suite from CoffeeScript/Mocha to JavaScript/uvu; Removed outdated CSS prefix test output.
Dependencies
Autoprefixer v10.6.1 release with pnpm lockfile and updated dependencies
This release updates the project to version 10.6.1 and introduces a new pnpm lockfile (pnpm-lock.yaml) to manage dependencies. The package.json has been updated to reflect the new dependency tree, including runtime dependencies like browserslist (^4.28.9), caniuse-lite (^1.0.30001810), fraction.js (^5.3.4), picocolors (^1.1.1), and postcss-value-parser (^4.2.0). Development dependencies have also been updated to use oxlint (^1.83.0) for linting, uvu (^0.5.6) for testing, c8 (^12.0.0) for coverage, and postcss (^8.5.28). The funding information has been expanded to include OpenCollective, Tidelift, and GitHub Sponsors.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 58 → 54 (-3.9)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 49 → 49 (-0.2)
- Architecture 78 → 80 (+2.3)
- Maturity 60 → 60 (+0.2)
- Readiness 63 → 47 (-15.8)
- Security 80 → 86 (+5.6)
Resolved (1)
- Hotspot: lib/hacks/grid-utils.js (lib/hacks/grid-utils.js)
New (8)
- High CVE: [GHSA redacted] (pnpm-lock.yaml)
- No direct assertions: checks mixed-case selectors repeatedly without matching quoted text (test/selector.test.js)
- No direct assertions: prefixes every matching selector regardless of case (test/autoprefixer.test.js)
- No direct assertions: prefixes mixed-case pseudo-classes without changing selector case (test/autoprefixer.test.js)
- No direct assertions: prefixes uppercase pseudo-elements (test/autoprefixer.test.js)
- Outdated (npm): caniuse-lite
- info.default (cognitive 38) (lib/info.js)
- info.default (cyclomatic 28) (lib/info.js)
Changes since last survey
- 1 commits — 0 feature/other, 1 fixes
By area
- lib/selector.js — 1 commit
Notable commits
- fix: Fix case-insensitive pseudo-selector prefixing (#1558)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
postcss/autoprefixer was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit c6d89bcfe0ada63ca704f6c72a55997d48957324 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.