# Changes to PostCSS Custom Properties ### 13.3.2 _September 24, 2023_ - Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) - Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) - Updated [`@csstools/cascade-layer-name-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser) to [`1.0.5`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser/CHANGELOG.md#105) (patch) ### 13.3.1 _September 18, 2023_ - Improve performance ### 13.3.0 _July 24, 2023_ - Added: support for `:where(html)` and `:where(:root)` selectors - Fixed: cascade layers support - Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) - Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) - Updated [`@csstools/cascade-layer-name-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser) to [`1.0.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser/CHANGELOG.md#104) (patch) ### 13.2.1 _July 3, 2023_ - Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) - Updated [`@csstools/cascade-layer-name-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser) to [`1.0.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser/CHANGELOG.md#103) (patch) ### 13.2.0 _June 1, 2023_ - Do not generate fallback values when the rule is wrapped in `@supports (top: var(--f))`. ### 13.1.5 _April 10, 2023_ - Updated `@csstools/css-tokenizer` to `2.1.1` (patch) - Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) - Updated `@csstools/cascade-layer-name-parser` to `1.0.2` (patch) ### 13.1.4 _February 21, 2023_ - Fixed: exception on chained variable declarations. ### 13.1.3 _February 8, 2023_ - Fixed: exception on missing variables. ### 13.1.2 _February 7, 2023_ - Do not apply fallback values when these contain unresolvable custom properties. ### 13.1.1 _January 28, 2023_ - Improve `types` declaration in `package.json` ### 13.1.0 _January 24, 2023_ - Added: Support for Cascade Layers. - Improve plugin performance (port of fixes in `v12.1.11`) ### 13.0.0 _November 14, 2022_ - Updated: Support for Node v14+ (major). - Removed : `importFrom` feature (breaking). - Removed : `exportTo` feature (breaking). - Added support for local custom property declarations. ```css .example { --a-value: 20px; margin: var(--a-value); } /* becomes */ .example { --a-value: 20px; margin: 20px; margin: var(--a-value); } ``` ### 12.1.11 _December 1, 2022_ - Improve plugin performance ### 12.1.10 _October 20, 2022_ - Fix how `preserve: false` interacts with logic around duplicate code (see `12.1.9`). ```css :root { --my-order: 1; } .foo { order: 1; order: var(--my-order); } /* With `preserve: false` : */ .foo { order: 1; } ``` ### 12.1.9 _September 14, 2022_ - Prevent duplicate code generation. ```diff .foo { order: 1; order: var(--my-order, 1); } /* becomes */ .foo { order: 1; - order: 1; order: var(--my-order, 1); } ``` ### 12.1.8 _June 10, 2022_ - Remove some unneeded regular expressions. ### 12.1.7 _April 8, 2022_ - Fix racing condition that could happen when using other async PostCSS plugins ([#331](https://github.com/csstools/postcss-plugins/issues/331)) ### 12.1.6 _April 5, 2022_ - Fix `var()` fallback value downgrades with value lists. ### 12.1.5 _March 19, 2022_ - Add deprecation notice for `importFrom` and `exportTo` [see the discussion](https://github.com/csstools/postcss-plugins/discussions/192) ### 12.1.4 _January 31, 2022_ - Fix `.mjs` in `importFrom` when using `export default` - Fix `.mjs` in `importFrom` on Windows ### 12.1.3 _January 17, 2022_ - Reset plugin state after each process. It is now safe to use the plugin multiple times for different processes or when watching. ### 12.1.2 _January 12, 2022_ - Fix TypeScript transpilation. - Avoid throwing errors on unexpected option objects. ### 12.1.1 _January 12, 2022_ - Fix Node 12/14 compatibility ### 12.1.0 _January 12, 2022_ - Add `overrideImportFromWithRoot` option - Allow `.mjs` in `importFrom` - Converted to TypeScript - Correct typings for plugin options - Fix unicode support in custom property names ### 12.0.4 _January 7, 2022_ - Fixed an issue that was causing synchronous mode to not being able to pick and transform properties that were added as part of the PostCSS flow. ([#132](https://github.com/csstools/postcss-plugins/issues/132)) ### 12.0.2 _January 2, 2022_ - Removed Sourcemaps from package tarball. - Moved CLI to CLI Package. See [announcement](https://github.com/csstools/postcss-plugins/discussions/121). ### 12.0.1 _December 16, 2021_ - Changed: now uses `postcss-value-parser` for parsing. - Updated: documentation ### 12.0.0 _September 17, 2021_ - Updated: Support for PostCS 8+ (major). - Updated: Support for Node 12+ (major). ### 11.0.0 _January 12, 2021_ - Added: Support for PostCSS v8. ### 10.0.0 _September 18, 2020_ - Fixed: `url-regex` vulnerability ([#228](https://github.com/postcss/postcss-custom-properties/pull/228)) - Breaking Change: Node v10+ now required ### 9.2.0 _September 18, 2020_ - Added: Export variables to SCSS file ([#212](https://github.com/postcss/postcss-custom-properties/pull/212)) - Added: Support for ".pcss" file resolution in `importFrom` ([#211](https://github.com/postcss/postcss-custom-properties/pull/211)) - Fixed: Allow combined selectors ([#199](https://github.com/postcss/postcss-custom-properties/pull/199)) - Fixed: Bug with spaces and commas in value ([#222](https://github.com/postcss/postcss-custom-properties/pull/222)) - Fixed: `importFrom` priority ([#222](https://github.com/postcss/postcss-custom-properties/pull/222)) ### 9.1.1 _February 20, 2020_ - Fixed: Preserve spaces in multi-part values ([#203](https://github.com/postcss/postcss-custom-properties/pull/203)) ### 9.1.0 _July 15, 2019_ - Added: Support for preserving trailing comments within a declaration. ### 9.0.2 _July 15, 2019_ - Updated: `postcss-values-parser` to 3.0.5 (patch) ### 9.0.1 _June 20, 2019_ - Updated: `postcss-values-parser` to 3.0.4 (major) - Updated: Node 8+ compatibility (major) > This release is identical to v9.0.0, only `npm publish` failed to publish v9.0.0 and threw the following error: > ``` > You cannot publish over the previously published versions: 9.0.0. > ``` > I did not want this issue to distract me, and so I thoughtfully and impatiently published v9.0.0 as v9.0.1. ### 8.0.11 _June 20, 2019_ - Added: Synchronous transforms when async is unnecessary (thank @eteeselink) - Fixed: Unexpected mutations to imported Custom Properties (thank @EECOLOR) - Fixed: Transforms throwing over unknown Custom Properties ### 8.0.10 _April 1, 2019_ - Added: Support for ignoring lines and or blocks using `postcss-custom-properties` comments. - Updated: `postcss` to 7.0.14 (patch) - Updated: `postcss-values-parser` to 2.0.1 (patch) ### 8.0.9 _November 5, 2018_ - Fixed: Issue with duplicate custom property usage within a declaration ### 8.0.8 _October 2, 2018_ - Fixed: Issue with nested fallbacks ### 8.0.7 _October 2, 2018_ - Fixed: Issue with parsing custom properties that are not strings - Updated: `postcss` to 7.0.5 (patch) ### 8.0.6 _September 21, 2018_ - Fixed: Issue with regular `:root` and `html` properties not getting polyfilled - Updated: `postcss` to 7.0.3 (patch) ### 8.0.5 _September 21, 2018_ - Fixed: Issue with multiple `importFrom` not getting combined ### 8.0.4 _September 18, 2018_ - Fixed: Do not break on an empty `importFrom` object ### 8.0.3 _September 18, 2018_ - Updated: PostCSS Values Parser 2 ### 8.0.2 _September 17, 2018_ - Fixed: Spacing is preserved before replaced variables. ### 8.0.1 _September 17, 2018_ - Fixed: Workaround issue in `postcss-values-parser` incorrectly cloning nodes. ### 8.0.0 _September 16, 2018_ - Added: New `exportTo` function to specify where to export custom properties to. - Added: New `importFrom` option to specify where to import custom properties from. - Added: Support for variables written within `html` - Added: Support for PostCSS v7. - Added: Support for Node v6+. - Removed: `strict` option, as using the fallback value isn’t necessarily more valid. - Removed: `preserve: "computed"` option, as there seems to be little use in preserving custom property declarations while removing all usages of them. - Removed: `warnings` and `noValueNotifications` options, as this should be the job of a linter tool. - Removed: `variables` option, which is now replaced by `importFrom` - Removed: `appendVariables` option, which is now replaced by `exportTo` - Fixed: Custom Properties in `:root` are not also transformed. - Fixed: Declarations that do not change are not duplicated during preserve. ### 7.0.0 _February 16, 2018_ - Changed: `preserve` option defaults as `true` to reflect the browser climate - Changed: `warnings` option defaults to `false` to reflect the browser climate ### 6.3.1 _February 16, 2018_ - Reverted: `preserve` and `warnings` option to be added in major release ### 6.3.0 _February 15, 2018_ - Fixed: `var()` captures strictly `var()` functions and not `xvar()`, etc - Fixed: `var()` better captures whitespace within the function - Fixed: comments within declarations using `var()` are now preserved - Changed: `preserve` option defaults as `true` to reflect the browser climate - Changed: `warnings` option defaults to `false` to reflect the browser climate - Updated documentation ### 6.2.0 _October 6, 2017_ - Added: `noValueNotifications` option (#71) - Fixed: Typo in `prefixedVariables` variable name (#77) ### 6.1.0 _June 28, 2017_ - Added: Let "warnings" option silence all warnings ([#67](https://github.com/postcss/postcss-custom-properties/pull/67)) - Dependencies update (postcss, balanced-match) ### 6.0.1 _May 15, 2017_ - Fixed: incorrect export ([#69](https://github.com/postcss/postcss-custom-properties/issues/69)) ### 6.0.0 _May 12, 2017_ - Added: compatibility with postcss v6.x ### 5.0.2 _February 1, 2017_ - Minor dependency update ([#57](https://github.com/postcss/postcss-custom-properties/pull/57)) ### 5.0.1 _April 22, 2016_ - Fixed: trailing space after custom property name causes duplicate empty property ([#43](https://github.com/postcss/postcss-custom-properties/pull/43)) ### 5.0.0 _August 25, 2015_ - Removed: compatibility with postcss v4.x - Added: compatibility with postcss v5.x ### 4.2.0 _July 21, 2015_ - Added: `warnings` option allows you to disable warnings. ([cssnext#186](https://github.com/cssnext/cssnext/issues/186)) ### 4.1.0 _July 14, 2015_ - Added: plugin now returns itself in order to expose a `setVariables` function that allow you to programmatically change the variables. ([#35](https://github.com/postcss/postcss-custom-properties/pull/35)) ### 4.0.0 _June 17, 2015_ - Changed: messages and exceptions are now sent using postcss message API. ### 3.3.0 _April 8, 2015_ - Added: `preserve` now support `"computed"` so only preserve resolved custom properties (see new option below) - Added: `appendVariables` allows you (when `preserve` is truthy) to append your variables as custom properties - Added: `strict: false` allows your to avoid too many fallbacks added in your CSS. ### 3.2.0 _03 31, 2015_ - Added: JS defined variables are now resolved too ([#22](https://github.com/postcss/postcss-custom-properties/issues/22)) ### 3.1.0 _03 16, 2015_ - Added: variables defined in JS are now automatically prefixed with `--` ([0691784](https://github.com/postcss/postcss-custom-properties/commit/0691784ed2218d7e6b16da8c4df03e2ca0c4798c)) ### 3.0.1 _February 6, 2015_ - Fixed: logs now have filename back ([#19](https://github.com/postcss/postcss-custom-properties/issues/19)) ### 3.0.0 _January 20, 2015_ - Changed: upgrade to postcss 4 ([#18](https://github.com/postcss/postcss-custom-properties/pull/18)) - Removed: some code that seems to be useless ([16ff3c2](https://github.com/postcss/postcss-custom-properties/commit/16ff3c22fe0563a1283411d7866791966fff4c58)) ### 2.1.1 _December 2, 2014_ - Fixed: issue when multiples undefined custom properties are referenced ([#16](https://github.com/postcss/postcss-custom-properties/issues/16)) ### 2.1.0 _November 25, 2014_ - Added: enhanced exceptions & messages ### 2.0.0 _November 12, 2014_ - Changed: upgrade to postcss 3 ### 1.0.2 _November 4, 2014_ - Fixed: more clear message for warning about custom prop used in non top-level :root ### 1.0.1 _November 3, 2014_ - Fixed: warning about custom prop used in non :root ### 1.0.0 _November 2, 2014_ - Added: warning when a custom prop is used in another place than :root - Added: handle !important ### 0.4.0 _September 30, 2014_ - Added: JS-defined properties override CSS-defined ### 0.3.1 _August 27, 2014_ - Added: nested custom properties usages are now correctly resolved - Changed: undefined var doesn't throw error anymore (just a console warning) & are kept as is in the output ### 0.3.0 _August 26, 2014_ - Changed: fallback now are always added by default ([see why](http://www.w3.org/TR/css-variables/#invalid-variables)) - Changed: `map` option renamed to `variables` ### 0.2.0 _August 22, 2014_ - Added: `map` option - Changed: GNU style error message ### 0.1.0 _August 1, 2014_ ✨ First release based on [rework-vars](https://github.com/reworkcss/rework-vars) v3.1.1