0.5.1 • Published 2 years ago

postcss-parcel-css v0.5.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

postcss-parcel-css

This package is deprecated, please use postcss-lightningcss instead.

This PostCSS plugin uses @parcel/css to compile and minify your CSS.

@parcel/css is more than a minifier as it can replace quite a few PostCSS plugins such as autoprefixer. You can find the complete list of features in the package's documentation and the list of plugins it's able to replace below.

Install

yarn add -D postcss-parcel-css

Usage

const postcss = require("postcss");
const postcssParcelCss = require("postcss-parcel-css");

postcss([postcssParcelCss(/* pluginOptions */)]).process(
  YOUR_CSS /*, processOptions */
);

Options

const postcssParcelCss = require("postcss-parcel-css");

postcssParcelCss({
  // Use a browserslist query that will inform which browsers are supported
  // Will add or remove vendor prefixes that are needed or not anymore
  browsers: ">= .25%",
  // Will pass all options to @parcel/css
  // Check out their documentation for details:
  // https://www.npmjs.com/package/@parcel/css#user-content-documentation
  parcelCssOptions: {
    // Enable minification (default: true)
    minify: true,

    // Enable source maps (default: true)
    sourceMap: true,

    // Compile as cssModules (default: undefined)
    cssModules: false,

    // For which browsers to compile (default: undefined)
    // Can be omitted if you set the `browsers` option
    targets: {
      safari: (13 << 16) | (2 << 8), // represents Safari 13.2.0
    },

    // Individually enable various drafts
    drafts: {
      // Enable css nesting (default: undefined)
      nesting: false,
    },
  },
});

The detailed list of parcelCssOptions can be found here

About source maps

Source maps will pass through @parcel/css. But many mappings will be lost in translation; @parcel/css creates only a source map for selectors. Mappings for properties cannot be re-created after this transformation.

PostCSS plugins that you can remove if you have @parcel/css

The rows marked as "Depends on browser config" will convert your CSS only if:

  1. You set the browsers or parcelCssOptions.targets options
  2. one of the target browsers doesn't support the feature
PostCSS Plugin@parcel/css option
autoprefixerDepends on browser config
postcss-clampDepends on browser config
postcss-color-hex-alphaDepends on browser config
postcss-color-hslDepends on browser config
postcss-color-rgbDepends on browser config
postcss-color-functionDepends on browser config
postcss-color-rebeccapurpleDepends on browser config
postcss-custom-mediaparcelCssOptions.drafts.customMedia
postcss-double-position-gradientsDepends on browser config
postcss-hwb-functionDepends on browser config
postcss-lab-functionDepends on browser config
postcss-logicalDepends on browser config (1)
postcss-media-minmaxDepends on browser config
postcss-multi-value-displayDepends on browser config
postcss-nestingparcelCssOptions.drafts.nesting
postcss-normalize-display-valuesDepends on browser config
postcss-oklab-functionDepends on browser config
postcss-overflow-shorthandDepends on browser config
postcss-placeDepends on browser config
postcss-progressive-custom-propertiesDepends on browser config (2)
  1. @parcel/css doesn't support the logical shorthand keyword as its syntax is likely to change
  2. Progressive custom properties works only if the properties don't contain properties themselves:
  • lab(29.2345% 39.3825 20.0664) has a proper fallback
  • oklch(40% 0.234 0.39 / var(--opacity-50)) will not have a fallback

License

MIT