PostCSS: trasformazione modulare del CSS con JavaScript

PostCSS (settembre 2013) di Andrey Sitnik: tool JavaScript per trasformare CSS con plugin. Autoprefixer, CSS Modules, CSS Nano, nuove sintassi CSS. Architettura modulare alternativa ai preprocessor monolitici.

Open SourceWeb PostCSSAndrey SitnikAutoprefixerCSSOpen SourceWebFrontend

Una filosofia diversa

Mentre Sass e Less sono preprocessor monolitici che aggiungono sintassi estesa al CSS, PostCSS propone un approccio diverso: un parser JavaScript che produce un AST del CSS, sul quale plugin modulari possono applicare trasformazioni arbitrarie. Il CSS rimane CSS standard; i plugin aggiungono o rimuovono feature secondo necessità.

Il rilascio

PostCSS 1.0 è pubblicato nel settembre 2013 da Andrey Sitnik, sviluppatore russo di Evil Martians. Licenza MIT. Scritto in JavaScript (poi TypeScript).

const postcss = require('postcss');
const autoprefixer = require('autoprefixer');
postcss([autoprefixer]).process(css).then(r => r.css);

Plugin principali

  • Autoprefixer — aggiunge vendor prefix (-webkit-, -moz-) automaticamente basandosi su browserslist e dati caniuse.com
  • cssnano — minificatore CSS
  • PostCSS Preset Env — permette sintassi CSS moderna con polyfill
  • PostCSS Nested — nesting tipo Sass
  • PostCSS Mixins, Variables, Functions — feature preprocessor-like opzionali
  • CSS Modules — scope locale delle classi (hash del nome)
  • Tailwind CSS — plugin PostCSS nell’implementazione originale
  • PurgeCSS — rimuove CSS inutilizzato

Integrazione

PostCSS è integrato di default in:

  • Vite (via postcss.config.js)
  • Next.js
  • Create React App
  • Parcel
  • Webpack (via postcss-loader)
  • Nuxt.js

Autoprefixer: il killer feature

Autoprefixer è la ragione principale di adozione massa: gestisce i vendor prefix senza che lo sviluppatore debba ricordare quali browser li richiedono. Legge .browserslistrc (es. "last 2 versions, >1%") e genera solo i prefix necessari. Ha reso obsoleti tool come Compass @include mixins per gradienti.

Nel contesto italiano

PostCSS è invisibile ma ubiquo: ogni progetto frontend moderno italiano (React, Vue, Svelte, Astro) ha Autoprefixer e forse cssnano nella pipeline via PostCSS. Tailwind CSS nella versione 3 richiedeva PostCSS; la versione 4 (2024-2025) ha suo proprio engine in Rust.


Riferimenti: PostCSS 1.0 (settembre 2013). Andrey Sitnik, Evil Martians. Licenza MIT. Plugin Autoprefixer, cssnano, CSS Modules, Tailwind (v1-v3). Integrato in Vite, Next.js, Parcel.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi