Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CSS preprocessors #91

Merged
merged 1 commit into from
May 23, 2023
Merged

Update CSS preprocessors #91

merged 1 commit into from
May 23, 2023

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 23, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
autoprefixer 10.4.7 -> 10.4.14 age adoption passing confidence
cssnano 5.1.12 -> 5.1.15 age adoption passing confidence
postcss (source) 8.2.13 -> 8.4.23 age adoption passing confidence

Release Notes

postcss/autoprefixer

v10.4.14

Compare Source

  • Improved startup time and reduced JS bundle size (by Kārlis Gaņģis).

v10.4.13

Compare Source

  • Fixed missed prefixes on vendor prefixes in name of CSS Custom Property.

v10.4.12

Compare Source

  • Fixed support of unit-less zero angle in backgrounds (by 一丝).

v10.4.11

Compare Source

  • Fixed text-decoration prefixes by moving to MDN data (by Romain Menke).

v10.4.10

Compare Source

  • Fixed unicode-bidi prefixes by moving to MDN data.

v10.4.9

Compare Source

  • Fixed css-unicode-bidi issue from latest Can I Use.

v10.4.8

Compare Source

  • Do not print color-adjust warning if print-color-adjust also is in rule.
cssnano/cssnano

v5.1.15: v5.1.15

Compare Source

Bug Fixes

  • fix(postcsss-reduce-initial): fix mask-repeat conversion
  • fix(postcss-colormin): don't minify colors in src declarations
  • fix(postcss-merge-rules): do not merge conflicting flex and border properties

v5.1.14: v5.1.14

Compare Source

Bug Fixes

  • fix: update autoprefixer and browserslist
  • fix(postcss-reduce-initial): improve initial properties data

v5.1.13: v5.1.13

Compare Source

Bug Fixes

postcss/postcss

v8.4.23

Compare Source

  • Fixed warnings in TypeDoc.

v8.4.22

Compare Source

  • Fixed TypeScript support with node16 (by Remco Haszing).

v8.4.21

Compare Source

  • Fixed Input#error types (by Aleks Hudochenkov).

v8.4.20

Compare Source

  • Fixed source map generation for childless at-rules like @layer.

v8.4.19

Compare Source

  • Fixed whitespace preserving after AST transformations (by Romain Menke).

v8.4.18

Compare Source

  • Fixed an error on absolute: true with empty sourceContent (by Rene Haas).

v8.4.17

Compare Source

  • Fixed Node.before() unexpected behavior (by Romain Menke).
  • Added TOC to docs (by Mikhail Dedov).

v8.4.16

Compare Source

  • Fixed Root AST migration.

v8.4.15

Compare Source

  • Fixed AST normalization after using custom parser with old PostCSS AST.

v8.4.14

Compare Source

  • Print “old plugin API” warning only if plugin was used (by @​zardoy).

v8.4.13

Compare Source

  • Fixed append() error after using .parent (by Jordan Pittman).

v8.4.12

Compare Source

  • Fixed package.funding to have same value between all PostCSS packages.

v8.4.11

Compare Source

  • Fixed Declaration#raws.value type.

v8.4.10

Compare Source

  • Fixed package.funding URL format.

v8.4.9

Compare Source

  • Fixed package.funding (by Álvaro Mondéjar).

v8.4.8

Compare Source

  • Fixed end position in empty Custom Properties.

v8.4.7

Compare Source

  • Fixed Node#warn() type (by Masafumi Koba).
  • Fixed comment removal in values after ,.

v8.4.6

Compare Source

  • Prevented comment removing when it change meaning of CSS.
  • Fixed parsing space in last semicolon-less CSS Custom Properties.
  • Fixed comment cleaning in CSS Custom Properties with space.
  • Fixed throwing an error on .root access for plugin-less case.

v8.4.5

Compare Source

  • Fixed raws types to make object extendable (by James Garbutt).
  • Moved from Yarn 1 to pnpm.

v8.4.4

Compare Source

  • Fixed absolute path in source map on zero plugins mode.

v8.4.3

Compare Source

  • Fixed this.css.replace is not a function error.

v8.4.2

Compare Source

  • Fixed warnings in TypeDoc.

v8.4.1

Compare Source

  • Fixed whitespace preserving after AST transformations (by Romain Menke).

v8.4.0: 8.4 “President Camio”

Compare Source

President Camio seal

PostCSS 8.4 brought ranges for warnings and errors, smaller node_modules size, lazy parsing to avoid PostCSS does nothing warning, and TypeScript fixes.

Thanks to Sponsors

This release was possible thanks to our community.

Sponsored by Tailwind CSS Sponsored by ThemeIsle

If your company wants to support the sustainability of front-end infrastructure or wants to give some love to PostCSS, you can join our supporters by:

Rages for Errors and Warnings

@​adalinesimonian, the author of amazing Stylelint extension for VS Code, added ranges to errors and warnings.

result.warn(msg, { index })           // One character warning at index
result.warn(msg, { endIndex })        // Starts at node start, ends at endIndex
result.warn(msg, { index, endIndex }) // Starts at index, ends at endIndex
result.warn(msg, { start })           // Starts at start, ends at node end
result.warn(msg, { end })             // Starts at node start, ends at end
result.warn(msg, { start, end })      // Starts at start, ends at end
result.warn(msg, { word })            // Starts at word location, ends at word index + length

It will improve DX in the IDE extension.

Lazy Parsing

Previously, we found that many tools run PostCSS even if the developer didn’t pass any PostCSS plugins. Parsing is the most expensive step in CSS processing. It led to a waste of resources without any reason.

We tried to resolve the problem by adding a PostCSS does nothing warning. But it didn’t force tool authors to be more careful with user’s resources.

If PostCSS sees that tool call it without passing plugins (or changing parser/stringifier), PostCSS will not parse CSS (until toll will call Result#root). In 8.4, @​bogdan0083 (with the help of @​WilhelmYakunin) tries to solve the problem in another way. It allows us to save resources and remove the PostCSS does nothing warning.

// No plugins, we do not parse CSS
let result = await postcss().process(css, { from  })
result.css  // Is the same string passed to process()
result.map  // Special 1-to-1 source map
result.root // CSS will parsed only here

Install Size Reduction

With ≈60M weekly downloads, PostCSS has responsibility for the world’s resource spending.

Together with @​7rulnik we reduced source-map-js size. It is transitive dependency of PostCSS.

In 8.4, we moved to a fixed version of source-map-js, which reduced the postcss size in your node_modules from ≈1 MB to 0.3 MB. With the huge popularity of PostCSS, it will free a lot of resources on our CIs.

PostCSS install size reduction

Migration from Jest to uvu

@​kimoofey refactored all tests from the popular Jest framework to small and fast uvu.

It will not affect end-users. However, it reduced our node_modules size by 33 MB and made tests twice faster (yarn install & yarn unit: 24 → 13 seconds).

TypeScript Fixes

  • Added Processor types.
  • Added Stringifier types (by @​43081j).
  • Fixed types Root and Document in result values (by @​43081j).
  • Fixed Node#walkRules() types (by @​hudochenkov).

Other Changes

v8.3.11

Compare Source

  • Remove debugging code.

v8.3.10

Compare Source

  • Fixed Maximum call stack issue of some source maps (by Yeting Li).

v8.3.9

Compare Source

  • Replaced nanocolors to picocolors.
  • Reduced package size.

v8.3.8

Compare Source

  • Update nanocolors.

v8.3.7

Compare Source

  • Replaced colorette to nanocolors.
  • Added bug field to package.json (by Christian Oliff).
  • Improved docs (by Andrew Bruce and Paul Shryock).

v8.3.6

Compare Source

  • Fixed column in missed semicolon error (by @​Gusted).

v8.3.5

Compare Source

  • Fixed broken AST detection.

v8.3.4

Compare Source

  • Fixed broken AST detection.

v8.3.3

Compare Source

  • Fixed broken AST on postcss dependency duplication in custom parsers.

v8.3.2

Compare Source

  • Update changelog.

v8.3.1

Compare Source

  • Remove debugging code.

v8.3.0: 8.3 “Duke Murmur”

Compare Source

Duke Murmur seal

PostCSS 8.3 improved source map parsing performance, added Node#assign() shortcut, and experimental Document node to AST.

Thanks to Sponsors

This release was possible thanks to our community.

Sponsored by Tailwind CSS Sponsored by ThemeIsle

If your company wants to support the sustainability of front-end infrastructure or wants to give some love to PostCSS, you can join our supporters by:

Source Map Performance

Because PostCSS needs synchronous API, we can’t move from the old `source-map 0.6 to 0.7 (many other open-source projects too).

@​7rulnik forked source-map 0.6 to source-map-js and back-ported performance improvements from 0.7. In 8.3 we switched from source-map to this source-map-js fork.

You map see 4x performance improvements in parsing map from processing step before PostCSS (for instance, Sass).

Document Nodes

Thanks to @​gucong3000, PostCSS already parse CSS from HTML and JS files (CSS-in-JS templates and objects).

But his plugin need big updates. @​hudochenkov from stylelint team decided to create new parsers for styles inside CSS-in-JS, HTML, and Markdown.

He suggested adding new Document node type to PostCSS AST to keep multiple Root nodes inside and JS/HTML/Markdown code blocks between these style blocks.

const document = htmlParser(
  '<html><style>a{color:black}</style><style>b{z-index:2}</style>'
)
document.type          //=> 'document'
document.nodes.length  //=> 2
document.nodes[0].type //=> 'root'

This is an experimental feature. Some aspects of this node could change within minor or patch version releases.

Node#assign() Shortcut

The creator of famous postcss-preset-env and many other PostCSS tools, @​jonathantneal suggested a nice shortcut to change multiple properties in the node:

decl.assign({ prop: 'word-wrap', value: 'break-word' })

v8.2.15

Compare Source

v8.2.14

Compare Source

  • Removed source-map from client-side bundle (by Barak Igal).

Configuration

📅 Schedule: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot merged commit 024e5c4 into master May 23, 2023
@renovate renovate bot deleted the renovate/css-preprocessors branch May 23, 2023 05:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants