Releases: terrazzoapp/terrazzo
@terrazzo/token-tools@2.0.0-rc.0
@terrazzo/token-tools
2.0.0
Minor Changes
-
#530
370ed7bThanks @drwpow! -⚠️ Breaking change; DTCG 2nd Editors draft format will throw errors by default. This means converting all colors and dimensions to the new object format.Though this is a breaking change in default behavior, you can opt back into the old behavior by adjusting your config’s lint settings. See https://terrazzo.app/docs/linting/.
List of changes:
- color:
channelsis invalid;componentsis required (“channels” was never part of the spec; this just deprecates an in-progress draft that was briefly supported) - dimension: object notation (
{ value: 16, unit: 'px' }) required. - dimension:
0is no longer automatically expanded to{ value: 0, unit: 'px' }. - duration: object notation (
{ value: 100, unit: 'ms' }) required. - dimension:
{ $value: 0 }no longer allowed. - typography:
fontFamily,fontSize,fontWeight,lineHeight, andletterSpacingare all required at a minimum (additional properties are still allowed).
- color:
-
#530
370ed7bThanks @drwpow! - Soft deprecate core/required-typography-properties in favor of core/valid-typography -
#530
370ed7bThanks @drwpow! -⚠️ Minor breaking change: the transform() API now returns the Momoa node as the 1st parameter. The 2nd parameter is now an object with more context. Lastly, it requires returning a momoa node, rather than raw JSON.+ import * as momoa from "@humanwhocodes/momoa"; transform: { - color(json, path, node) { + color(node, { path, filename }) { + const json = momoa.evaluate(node); - return json; + return momoa.parse(json); }
This should result in a little less work overall. For example, instead of writing
if (typeof json === 'object' && !Array.isArray(json))that could be shortened toif (node.type === 'Object'), among many other such advantages. You can callevaluate()manually if you’re more used to working with the raw JSON instead. Similarly, you can callparse()if you’re working with -
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: lint on plugins no longer runs on individual files, rather, the full set once merged.If your lint plugin is not using the
srccontext value, no changes are needed. If it is, you’ll need to instead read from thesourcesarray, and look up sources with a token’ssource.locfilename manually. This change was because lint rules now run on all files in one pass, essentially. -
#530
370ed7bThanks @drwpow! -⚠️ [Plugin API] Minor breaking change: token.originalValue may be undefined for tokens created with $ref. This shouldn’t affect any tokens or plugins not using $refs. But going forward this value will be missing if the token was created dynamically via $ref. -
#530
370ed7bThanks @drwpow! - Minor breaking change: build() and buildEnd() plugin hooks are now executed in parallel. The other hooks are still executed sequentially. -
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: the following token types have more strict requirements about all properties being present:- Border
- Transition
- Typography
These behaviors may be opted out individually by adjusting the new lint rules (see documentation).
-
⚠️ Breaking change: Replace Culori with Color.js for color parsing, a more performant and CSS spec-compliant color science library. This means some color utilities will have different output.
Patch Changes
-
#530
370ed7bThanks @drwpow! - Fix bug where border tokens’ partial aliases would sometimes refer to themselves -
#530
370ed7bThanks @drwpow! - Fix bug of lint warning of rules turned off being unused -
#530
370ed7bThanks @drwpow! - Validation moved to lint rules, which means token validation can be individually configured, and optionally extended. -
#530
370ed7bThanks @drwpow! - Add first class support for JSON $refs, both remote and local.Under-the-hood this transforms DTCG aliase to JSON $refs, so they’re interchangeable.
-
#530
370ed7bThanks @drwpow! - Bugfix: fix strokeStyle partialAliasOf -
#530
370ed7bThanks @drwpow! - Add missing $deprecated property to group types -
#568
67c75beThanks @drwpow! - Fix border tokens not cascading correctly across modes -
#589
8f32d44Thanks @michaelurban! - feat: add typography shorthand, improve Sass plugin -
Thanks @drwpow! - Improve extended typography property CSS generation
0.10.3
Patch Changes
-
#533
e1a612fThanks @pvignau! - Auto-install CSS plugin with Sass during init -
Updated dependencies [
6141d4f]:- @terrazzo/parser@0.10.3
0.10.2
Patch Changes
0.10.1
Patch Changes
- #510
4493731Thanks @drwpow! - Reduce decimal places in color output.- [plugin-css]
⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass incolorDepth: 'unlimited'
- [plugin-css]
0.10.0
Minor Changes
-
#507
0060100Thanks @drwpow! -⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4 -
#507
0060100Thanks @drwpow! -⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to0 - 100, rather than0 - 1:{ "colorSpace": "hsl", - "components": [270, 0.5, 0.4] + "components": [270, 50, 40] }All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
Patch Changes
0.9.1
Patch Changes
@terrazzo/plugin-vanilla-extract@2.0.0-rc.0
@terrazzo/plugin-vanilla-extract
2.0.0
Minor Changes
-
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: lint on plugins no longer runs on individual files, rather, the full set once merged.If your lint plugin is not using the
srccontext value, no changes are needed. If it is, you’ll need to instead read from thesourcesarray, and look up sources with a token’ssource.locfilename manually. This change was because lint rules now run on all files in one pass, essentially. -
#530
370ed7bThanks @drwpow! -⚠️ [Plugin API] Minor breaking change: token.originalValue may be undefined for tokens created with $ref. This shouldn’t affect any tokens or plugins not using $refs. But going forward this value will be missing if the token was created dynamically via $ref.
Patch Changes
-
#530
370ed7bThanks @drwpow! - Validation moved to lint rules, which means token validation can be individually configured, and optionally extended. -
#553
e63a627Thanks @Sidnioulz! - Add support for the Token Listing format -
#568
67c75beThanks @drwpow! - Fix border tokens not cascading correctly across modes
0.2.2
Patch Changes
-
#550
936789eThanks @nlemoine! - Add support for color-scheme property -
Updated dependencies [
936789e]:- @terrazzo/plugin-css@0.10.4
0.2.1
Patch Changes
-
#510
4493731Thanks @drwpow! - Reduce decimal places in color output.- [plugin-css]
⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass incolorDepth: 'unlimited'
- [plugin-css]
-
Updated dependencies [
4493731]:- @terrazzo/plugin-css@0.10.1
- @terrazzo/cli@0.10.1
0.2.0
Minor Changes
-
#507
0060100Thanks @drwpow! -⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4 -
#507
0060100Thanks @drwpow! -⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to0 - 100, rather than0 - 1:{ "colorSpace": "hsl", - "components": [270, 0.5, 0.4] + "components": [270, 50, 40] }All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
Patch Changes
-
#507
0060100Thanks @drwpow! - Fix a98-rgb colorSpace, accidentally referring to it as "a98" -
Updated dependencies [
0060100,0060100,0060100]:- @terrazzo/cli@0.10.0
- @terrazzo/plugin-css@0.10.0
0.1.1
Patch Changes
-
#502
c9792bdThanks @drwpow! - Fix bug in parsing LAB colors -
#502
c9792bdThanks @drwpow! - Add support for lab65 colors (not technically part of CSS Module 4 spec, but a nice convenience) -
Updated dependencies [
c9792bd,c9792bd]:- @terrazzo/cli@0.9.1
- @terrazzo/plugin-css@0.9.1
0.1.0
Minor Changes
- Updated dependencies [
9b80fd4]:- @terrazzo/cli@0.9.0
- @terrazzo/plugin-css@0.9.0
0.0.2
Patch Changes
0.0.1
Initial release
@terrazzo/plugin-tailwind@2.0.0-rc.0
@terrazzo/plugin-tailwind
2.0.0
Minor Changes
-
Fully supports DTCG 2025.10 and resolvers.
-
⚠️ Breaking change: plugin-tailwind now uses Custom variants which allow for closer 1:1 translation from tokens.- This results in a config change from
modeVariations→customVariants.
- This results in a config change from
-
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: lint on plugins no longer runs on individual files, rather, the full set once merged.If your lint plugin is not using the
srccontext value, no changes are needed. If it is, you’ll need to instead read from thesourcesarray, and look up sources with a token’ssource.locfilename manually. This change was because lint rules now run on all files in one pass, essentially. -
#530
370ed7bThanks @drwpow! -⚠️ [Plugin API] Minor breaking change: token.originalValue may be undefined for tokens created with $ref. This shouldn’t affect any tokens or plugins not using $refs. But going forward this value will be missing if the token was created dynamically via $ref. -
#646
fd9de2bThanks @9rotama! - feat: add template option to plugin-tailwind
Patch Changes
-
#530
370ed7bThanks @drwpow! - Validation moved to lint rules, which means token validation can be individually configured, and optionally extended. -
#568
67c75beThanks @drwpow! - Fix border tokens not cascading correctly across modes
0.3.3
Patch Changes
-
#550
936789eThanks @nlemoine! - Add support for color-scheme property -
Updated dependencies [
936789e]:- @terrazzo/plugin-css@0.10.4
0.3.2
Patch Changes
- #513
7bb2b26Thanks @camerondubas! - fix tailwind import
0.3.1
Patch Changes
-
#510
4493731Thanks @drwpow! - Reduce decimal places in color output.- [plugin-css]
⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass incolorDepth: 'unlimited'
- [plugin-css]
-
Updated dependencies [
4493731]:- @terrazzo/token-tools@0.10.1
- @terrazzo/plugin-css@0.10.1
- @terrazzo/cli@0.10.1
0.3.0
Minor Changes
-
#507
0060100Thanks @drwpow! -⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4 -
#507
0060100Thanks @drwpow! -⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to0 - 100, rather than0 - 1:{ "colorSpace": "hsl", - "components": [270, 0.5, 0.4] + "components": [270, 50, 40] }All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
Patch Changes
-
#507
0060100Thanks @drwpow! - Fix a98-rgb colorSpace, accidentally referring to it as "a98" -
Updated dependencies [
0060100,0060100,0060100]:- @terrazzo/token-tools@0.10.0
- @terrazzo/cli@0.10.0
- @terrazzo/plugin-css@0.10.0
0.2.1
Patch Changes
-
#502
c9792bdThanks @drwpow! - Fix bug in parsing LAB colors -
#502
c9792bdThanks @drwpow! - Add support for lab65 colors (not technically part of CSS Module 4 spec, but a nice convenience) -
Updated dependencies [
c9792bd,c9792bd]:- @terrazzo/token-tools@0.9.1
- @terrazzo/cli@0.9.1
- @terrazzo/plugin-css@0.9.1
0.2.0
Minor Changes
- #497
9b80fd4Thanks @bschlenk! - - potential 5x speedup for @terrazzo/plugin-css- removed isTokenMatch from @terrazzo/token-tools
Patch Changes
- Updated dependencies [
9b80fd4]:- @terrazzo/cli@0.9.0
- @terrazzo/plugin-css@0.9.0
- @terrazzo/token-tools@0.9.0
0.1.0
Minor Changes
Patch Changes
- Updated dependencies [
63f91e6]:- @terrazzo/token-tools@0.8.0
- @terrazzo/plugin-css@0.8.0
- @terrazzo/cli@0.8.0
0.0.4
Patch Changes
-
#485
84335daThanks @drwpow! - Add transform API to allow dynamic parsing / transformation of tokens on load -
Updated dependencies [
84335da]:- @terrazzo/cli@0.7.4
- @terrazzo/plugin-css@0.7.4
- @terrazzo/token-tools@0.7.4
0.0.3
Patch Changes
- Updated dependencies [
abc14c4]:- @terrazzo/cli@0.7.3
- @terrazzo/plugin-css@0.7.3
- @terrazzo/token-tools@0.7.3
0.0.2
Patch Changes
- #477
0e24810Thanks @dzonatan! - [plugin-css] addbaseSelectoroption to css plugin to allow changing the root selector
0.0.1
Patch Changes
@terrazzo/plugin-sass@2.0.0-rc.0
@terrazzo/plugin-sass
2.0.0
Minor Changes
-
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: lint on plugins no longer runs on individual files, rather, the full set once merged.If your lint plugin is not using the
srccontext value, no changes are needed. If it is, you’ll need to instead read from thesourcesarray, and look up sources with a token’ssource.locfilename manually. This change was because lint rules now run on all files in one pass, essentially. -
#530
370ed7bThanks @drwpow! -⚠️ [Plugin API] Minor breaking change: token.originalValue may be undefined for tokens created with $ref. This shouldn’t affect any tokens or plugins not using $refs. But going forward this value will be missing if the token was created dynamically via $ref. -
#589
8f32d44Thanks @michaelurban! - feat: add typography shorthand, improve Sass plugin
Patch Changes
-
#530
370ed7bThanks @drwpow! - Validation moved to lint rules, which means token validation can be individually configured, and optionally extended. -
#553
e63a627Thanks @Sidnioulz! - Add support for the Token Listing format -
#568
67c75beThanks @drwpow! - Fix border tokens not cascading correctly across modes
0.10.4
Patch Changes
-
#550
936789eThanks @nlemoine! - Add support for color-scheme property -
Updated dependencies [
936789e]:- @terrazzo/plugin-css@0.10.4
0.10.3
Patch Changes
-
#533
e1a612fThanks @pvignau! - Auto-install CSS plugin with Sass during init -
Updated dependencies [
6141d4f]:- @terrazzo/parser@0.10.3
0.10.1
Patch Changes
-
#510
4493731Thanks @drwpow! - Reduce decimal places in color output.- [plugin-css]
⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass incolorDepth: 'unlimited'
- [plugin-css]
-
Updated dependencies [
4493731]:- @terrazzo/token-tools@0.10.1
- @terrazzo/plugin-css@0.10.1
- @terrazzo/cli@0.10.1
0.10.0
Minor Changes
-
#507
0060100Thanks @drwpow! -⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4 -
#507
0060100Thanks @drwpow! -⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to0 - 100, rather than0 - 1:{ "colorSpace": "hsl", - "components": [270, 0.5, 0.4] + "components": [270, 50, 40] }All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
Patch Changes
-
#507
0060100Thanks @drwpow! - Fix a98-rgb colorSpace, accidentally referring to it as "a98" -
Updated dependencies [
0060100,0060100,0060100]:- @terrazzo/token-tools@0.10.0
- @terrazzo/cli@0.10.0
- @terrazzo/plugin-css@0.10.0
0.9.1
Patch Changes
-
#502
c9792bdThanks @drwpow! - Fix bug in parsing LAB colors -
#502
c9792bdThanks @drwpow! - Add support for lab65 colors (not technically part of CSS Module 4 spec, but a nice convenience) -
Updated dependencies [
c9792bd,c9792bd]:- @terrazzo/token-tools@0.9.1
- @terrazzo/cli@0.9.1
- @terrazzo/plugin-css@0.9.1
0.9.0
Minor Changes
- #497
9b80fd4Thanks @bschlenk! - - potential 5x speedup for @terrazzo/plugin-css- removed isTokenMatch from @terrazzo/token-tools
Patch Changes
- Updated dependencies [
9b80fd4]:- @terrazzo/cli@0.9.0
- @terrazzo/plugin-css@0.9.0
- @terrazzo/token-tools@0.9.0
0.8.1
Patch Changes
- Updated dependencies [
5edf1fd]:- @terrazzo/cli@0.8.1
- @terrazzo/token-tools@0.8.1
- @terrazzo/plugin-css@0.8.1
0.8.0
Minor Changes
Patch Changes
- Updated dependencies [
63f91e6]:- @terrazzo/token-tools@0.8.0
- @terrazzo/plugin-css@0.8.0
- @terrazzo/cli@0.8.0
0.7.4
Patch Changes
- Updated dependencies [
84335da]:- @terrazzo/cli@0.7.4
- @terrazzo/plugin-css@0.7.4
- @terrazzo/token-tools@0.7.4
0.7.3
Patch Changes
-
Updated dependencies [
abc14c4]:- @terrazzo/cli@0.7.3
- @terrazzo/plugin-css@0.7.3
- @terrazzo/token-tools@0.7.3
0.7.2
Patch Changes
- #477
0e24810Thanks @dzonatan! - [plugin-css] addbaseSelectoroption to css plugin to allow changing the root selector
0.7.1
Patch Changes
-
#468
2c28957Thanks @drwpow! - When downsampling colors for sRGB gamut, preserve the originally-authored colorspace -
Updated dependencies [
2c28957]:- @terrazzo/token-tools@0.7.1
- @terrazzo/cli@0.7.1
- @terrazzo/plugin-css@0.7.1
0.7.0
Minor Changes
@terrazzo/plugin-js@2.0.0-rc.0
@terrazzo/plugin-js
2.0.0
Minor Changes
-
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: lint on plugins no longer runs on individual files, rather, the full set once merged.If your lint plugin is not using the
srccontext value, no changes are needed. If it is, you’ll need to instead read from thesourcesarray, and look up sources with a token’ssource.locfilename manually. This change was because lint rules now run on all files in one pass, essentially. -
#530
370ed7bThanks @drwpow! -⚠️ [Plugin API] Minor breaking change: token.originalValue may be undefined for tokens created with $ref. This shouldn’t affect any tokens or plugins not using $refs. But going forward this value will be missing if the token was created dynamically via $ref.
Patch Changes
- #530
370ed7bThanks @drwpow! - Validation moved to lint rules, which means token validation can be individually configured, and optionally extended. - #553
e63a627Thanks @Sidnioulz! - Add support for the Token Listing format - #568
67c75beThanks @drwpow! - Fix border tokens not cascading correctly across modes
0.10.3
Patch Changes
-
#533
e1a612fThanks @pvignau! - Auto-install CSS plugin with Sass during init -
Updated dependencies [
6141d4f]:- @terrazzo/parser@0.10.3
0.10.1
Patch Changes
-
#510
4493731Thanks @drwpow! - Reduce decimal places in color output.- [plugin-css]
⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass incolorDepth: 'unlimited'
- [plugin-css]
-
Updated dependencies [
4493731]:- @terrazzo/token-tools@0.10.1
- @terrazzo/cli@0.10.1
0.10.0
Minor Changes
-
#507
0060100Thanks @drwpow! -⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4 -
#507
0060100Thanks @drwpow! -⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to0 - 100, rather than0 - 1:{ "colorSpace": "hsl", - "components": [270, 0.5, 0.4] + "components": [270, 50, 40] }All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
Patch Changes
-
#507
0060100Thanks @drwpow! - Fix a98-rgb colorSpace, accidentally referring to it as "a98" -
Updated dependencies [
0060100,0060100,0060100]:- @terrazzo/token-tools@0.10.0
- @terrazzo/cli@0.10.0
0.9.1
Patch Changes
-
#502
c9792bdThanks @drwpow! - Fix bug in parsing LAB colors -
#502
c9792bdThanks @drwpow! - Add support for lab65 colors (not technically part of CSS Module 4 spec, but a nice convenience) -
Updated dependencies [
c9792bd,c9792bd]:- @terrazzo/token-tools@0.9.1
- @terrazzo/cli@0.9.1
0.9.0
Minor Changes
- #497
9b80fd4Thanks @bschlenk! - - potential 5x speedup for @terrazzo/plugin-css- removed isTokenMatch from @terrazzo/token-tools
Patch Changes
- Updated dependencies [
9b80fd4]:- @terrazzo/cli@0.9.0
- @terrazzo/token-tools@0.9.0
0.8.1
Patch Changes
- Updated dependencies [
5edf1fd]:- @terrazzo/cli@0.8.1
- @terrazzo/token-tools@0.8.1
0.8.0
Minor Changes
Patch Changes
- Updated dependencies [
63f91e6]:- @terrazzo/token-tools@0.8.0
- @terrazzo/cli@0.8.0
0.7.3
Patch Changes
-
#485
84335daThanks @drwpow! - Add transform API to allow dynamic parsing / transformation of tokens on load -
Updated dependencies [
84335da]:- @terrazzo/cli@0.7.4
- @terrazzo/token-tools@0.7.4
0.7.2
Patch Changes
-
Updated dependencies [
abc14c4]:- @terrazzo/cli@0.7.3
- @terrazzo/token-tools@0.7.3
0.7.1
Patch Changes
-
#468
2c28957Thanks @drwpow! - When downsampling colors for sRGB gamut, preserve the originally-authored colorspace -
Updated dependencies [
2c28957]:- @terrazzo/token-tools@0.7.1
- @terrazzo/cli@0.7.1
0.7.0
Minor Changes
- #454
44ff082Thanks @drwpow! -⚠️ Breaking change: the new color token object format uses "components" instead of "channels". Please update your tokens accordingly.
Patch Changes
- Updated dependencies [
44ff082]:- @terrazzo/token-tools@0.7.0
- @terrazzo/cli@0.7.0
0.6.0
Minor Changes
-
#425
9a98ab0Thanks @drwpow! - feat:⚠️ Breaking change: aliasing to specific modes (#character) is deprecated. It was an experimental feature in Cobalt 1.0 with unpredictable behavior. In some upcoming spec changes it will be incompatible with advanced usecases. -
#425
9a98ab0Thanks @drwpow! - fix: Improvements to mode aliasing and mode overrides.typographytokens only have to partially-declare overrides for modes, while keeping their core set. While this has been supported, behavior was buggy and sometimes was inconsistent.
@terrazzo/plugin-css@2.0.0-rc.0
@terrazzo/plugin-css
2.0.0
Minor Changes
-
The
baseSelector,baseScheme, andmodeSelectorsoptions are marked@deprecatedfor remove in 3.0. The newpermutationsAPI provides all functionality and then some, and should be migrated to as soon as possible. -
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: lint on plugins no longer runs on individual files, rather, the full set once merged.If your lint plugin is not using the
srccontext value, no changes are needed. If it is, you’ll need to instead read from thesourcesarray, and look up sources with a token’ssource.locfilename manually. This change was because lint rules now run on all files in one pass, essentially. -
#530
370ed7bThanks @drwpow! -⚠️ [Plugin API] Minor breaking change: token.originalValue may be undefined for tokens created with $ref. This shouldn’t affect any tokens or plugins not using $refs. But going forward this value will be missing if the token was created dynamically via $ref. -
#589
8f32d44Thanks @michaelurban! - feat: add typography shorthand, improve Sass plugin -
⚠️ Minor breaking change: CSS output is improved via switching to Color.js instead of Culori. CSS sizes are smaller, and many rounding errors are fixed. The color output should be exactly identical and should differ in format only, but it still is a different output.
Patch Changes
-
#530
370ed7bThanks @drwpow! - Validation moved to lint rules, which means token validation can be individually configured, and optionally extended. -
#553
e63a627Thanks @Sidnioulz! - Add support for the Token Listing format -
#568
67c75beThanks @drwpow! - Fix border tokens not cascading correctly across modes -
#606
1fc1d99Thanks @yuheiy! - Allow partial utility CSS groups configuration -
#632
21c61d3Thanks @aduth! - Fixtransformoption TypeScript type to allowundefinedornullreturn values -
#636 Thanks @geebru! - Add missing CSS logical property directions for utility class generation
-
Thanks @drwpow! - Improve extended typography property CSS generation
-
Correctness: don’t cache transforms from a previous plugin-css run, which could yield correct or unexpected output.
0.10.4
Patch Changes
0.10.3
Patch Changes
-
#533
e1a612fThanks @pvignau! - Auto-install CSS plugin with Sass during init -
Updated dependencies [
6141d4f]:- @terrazzo/parser@0.10.3
0.10.2
Patch Changes
0.10.1
Patch Changes
-
#510
4493731Thanks @drwpow! - Reduce decimal places in color output.- [plugin-css]
⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass incolorDepth: 'unlimited'
- [plugin-css]
-
Updated dependencies [
4493731]:- @terrazzo/token-tools@0.10.1
- @terrazzo/cli@0.10.1
0.10.0
Minor Changes
-
#507
0060100Thanks @drwpow! -⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4 -
#507
0060100Thanks @drwpow! -⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to0 - 100, rather than0 - 1:{ "colorSpace": "hsl", - "components": [270, 0.5, 0.4] + "components": [270, 50, 40] }All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
Patch Changes
-
#507
0060100Thanks @drwpow! - Fix a98-rgb colorSpace, accidentally referring to it as "a98" -
Updated dependencies [
0060100,0060100,0060100]:- @terrazzo/token-tools@0.10.0
- @terrazzo/cli@0.10.0
0.9.1
Patch Changes
-
#502
c9792bdThanks @drwpow! - Fix bug in parsing LAB colors -
#502
c9792bdThanks @drwpow! - Add support for lab65 colors (not technically part of CSS Module 4 spec, but a nice convenience) -
Updated dependencies [
c9792bd,c9792bd]:- @terrazzo/token-tools@0.9.1
- @terrazzo/cli@0.9.1
0.9.0
Minor Changes
- #497
9b80fd4Thanks @bschlenk! - - potential 5x speedup for @terrazzo/plugin-css- removed isTokenMatch from @terrazzo/token-tools
Patch Changes
- Updated dependencies [
9b80fd4]:- @terrazzo/cli@0.9.0
- @terrazzo/token-tools@0.9.0
0.8.1
Patch Changes
- Updated dependencies [
5edf1fd]:- @terrazzo/cli@0.8.1
- @terrazzo/token-tools@0.8.1
0.8.0
Minor Changes
Patch Changes
- Updated dependencies [
63f91e6]:- @terrazzo/token-tools@0.8.0
- @terrazzo/cli@0.8.0
0.7.4
Patch Changes
-
#485
84335daThanks @drwpow! - Add transform API to allow dynamic parsing / transformation of tokens on load -
Updated dependencies [
84335da]:- @terrazzo/cli@0.7.4
- @terrazzo/token-tools@0.7.4
0.7.3
Patch Changes
@terrazzo/plugin-css-in-js@2.0.0-rc.0
@terrazzo/plugin-css-in-js
@terrazzo/parser@2.0.0-rc.0
@terrazzo/parser
2.0.0
The 2.0.0 release is full of new features:
- Full support for the DTCG v2025.10 spec, including resolvers
- New and improved native Figma import
@terrazzo/plugin-jswas reimagined as a resolver API to build your own token machine (server-side)@terrazzo/plugin-css-in-jswas added as the missing solution for type-safe JS to use in any CSS-in-JS library- And of course dozens of bugfixes and quality of life improvements
Minor Changes
-
#530
370ed7bThanks @drwpow! -⚠️ Breaking change; DTCG 2nd Editors draft format will throw errors by default. This means converting all colors and dimensions to the new object format.Though this is a breaking change in default behavior, you can opt back into the old behavior by adjusting your config’s lint settings. See https://terrazzo.app/docs/linting/.
List of changes:
- color:
channelsis invalid;componentsis required (“channels” was never part of the spec; this just deprecates an in-progress draft that was briefly supported) - dimension: object notation (
{ value: 16, unit: 'px' }) required. - dimension:
0is no longer automatically expanded to{ value: 0, unit: 'px' }. - duration: object notation (
{ value: 100, unit: 'ms' }) required. - dimension:
{ $value: 0 }no longer allowed. - typography:
fontFamily,fontSize,fontWeight,lineHeight, andletterSpacingare all required at a minimum (additional properties are still allowed).
- color:
-
#530
370ed7bThanks @drwpow! - Soft deprecate core/required-typography-properties in favor of core/valid-typography -
#530
370ed7bThanks @drwpow! -⚠️ Minor breaking change: the transform() API now returns the Momoa node as the 1st parameter. The 2nd parameter is now an object with more context. Lastly, it requires returning a momoa node, rather than raw JSON.+ import * as momoa from "@humanwhocodes/momoa"; transform: { - color(json, path, node) { + color(node, { path, filename }) { + const json = momoa.evaluate(node); - return json; + return momoa.parse(json); }
This should result in a little less work overall. For example, instead of writing
if (typeof json === 'object' && !Array.isArray(json))that could be shortened toif (node.type === 'Object'), among many other such advantages. You can callevaluate()manually if you’re more used to working with the raw JSON instead. Similarly, you can callparse()if you’re working with -
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: lint on plugins no longer runs on individual files, rather, the full set once merged.If your lint plugin is not using the
srccontext value, no changes are needed. If it is, you’ll need to instead read from thesourcesarray, and look up sources with a token’ssource.locfilename manually. This change was because lint rules now run on all files in one pass, essentially. -
#530
370ed7bThanks @drwpow! -⚠️ [Plugin API] Minor breaking change: token.originalValue may be undefined for tokens created with $ref. This shouldn’t affect any tokens or plugins not using $refs. But going forward this value will be missing if the token was created dynamically via $ref. -
#530
370ed7bThanks @drwpow! - Minor breaking change: build() and buildEnd() plugin hooks are now executed in parallel. The other hooks are still executed sequentially. -
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: the following token types have more strict requirements about all properties being present:- Border
- Transition
- Typography
These behaviors may be opted out individually by adjusting the new lint rules (see documentation).
-
#589
8f32d44Thanks @michaelurban! - feat: add typography shorthand, improve Sass plugin -
Replace Culori with Color.js for color parsing, a more performant and CSS spec-compliant color science library.
Patch Changes
-
#530
370ed7bThanks @drwpow! - Fix bug where border tokens’ partial aliases would sometimes refer to themselves -
#530
370ed7bThanks @drwpow! - Fix bug of lint warning of rules turned off being unused -
#530
370ed7bThanks @drwpow! - Validation moved to lint rules, which means token validation can be individually configured, and optionally extended. -
#530
370ed7bThanks @drwpow! - Add first class support for JSON $refs, both remote and local.Under-the-hood this transforms DTCG aliase to JSON $refs, so they’re interchangeable.
-
#530
370ed7bThanks @drwpow! - Bugfix: fix strokeStyle partialAliasOf -
#530
370ed7bThanks @drwpow! - Add missing $deprecated property to group types -
#553
e63a627Thanks @Sidnioulz! - Add support for the Token Listing format- #56867c75beThanks @drwpow! - Fix border tokens not cascading correctly across modes -
Thanks @drwpow! - Improve extended typography property CSS generation
-
Bugfix: An error is now thrown if
--config [path]points to a bad location.
0.10.4
Patch Changes
0.10.3
Patch Changes
- #532
6141d4fThanks @Sidnioulz! - Support the $deprecated prop being inherited from a token's group
0.10.2
Patch Changes
0.10.1
Patch Changes
-
#510
4493731Thanks @drwpow! - Reduce decimal places in color output.- [plugin-css]
⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass incolorDepth: 'unlimited'
- [plugin-css]
-
Updated dependencies [
4493731]:- @terrazzo/token-tools@0.10.1
0.10.0
Minor Changes
@terrazzo/cli@2.0.0-rc.0
@terrazzo/cli
2.0.0
The 2.0.0 release is full of new features:
- Full support for the DTCG v2025.10 spec, including resolvers
- New and improved native Figma import
@terrazzo/plugin-jswas reimagined as a resolver API to build your own token machine (server-side)@terrazzo/plugin-css-in-jswas added as the missing solution for type-safe JS to use in any CSS-in-JS library- And of course dozens of bugfixes and quality of life improvements
Minor Changes
-
#530
370ed7bThanks @drwpow! -⚠️ Breaking change; DTCG 2nd Editors draft format will throw errors by default. This means converting all colors and dimensions to the new object format.Though this is a breaking change in default behavior, you can opt back into the old behavior by adjusting your config’s lint settings. See https://terrazzo.app/docs/linting/.
List of changes:
- color:
channelsis invalid;componentsis required (“channels” was never part of the spec; this just deprecates an in-progress draft that was briefly supported) - dimension: object notation (
{ value: 16, unit: 'px' }) required. - dimension:
0is no longer automatically expanded to{ value: 0, unit: 'px' }. - duration: object notation (
{ value: 100, unit: 'ms' }) required. - dimension:
{ $value: 0 }no longer allowed. - typography:
fontFamily,fontSize,fontWeight,lineHeight, andletterSpacingare all required at a minimum (additional properties are still allowed).
- color:
-
#530
370ed7bThanks @drwpow! - Soft deprecate core/required-typography-properties in favor of core/valid-typography -
#530
370ed7bThanks @drwpow! -⚠️ Minor breaking change: the transform() API now returns the Momoa node as the 1st parameter. The 2nd parameter is now an object with more context. Lastly, it requires returning a momoa node, rather than raw JSON.+ import * as momoa from "@humanwhocodes/momoa"; transform: { - color(json, path, node) { + color(node, { path, filename }) { + const json = momoa.evaluate(node); - return json; + return momoa.parse(json); }
This should result in a little less work overall. For example, instead of writing
if (typeof json === 'object' && !Array.isArray(json))that could be shortened toif (node.type === 'Object'), among many other such advantages. You can callevaluate()manually if you’re more used to working with the raw JSON instead. Similarly, you can callparse()if you’re working with -
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: lint on plugins no longer runs on individual files, rather, the full set once merged.If your lint plugin is not using the
srccontext value, no changes are needed. If it is, you’ll need to instead read from thesourcesarray, and look up sources with a token’ssource.locfilename manually. This change was because lint rules now run on all files in one pass, essentially. -
#530
370ed7bThanks @drwpow! -⚠️ [Plugin API] Minor breaking change: token.originalValue may be undefined for tokens created with $ref. This shouldn’t affect any tokens or plugins not using $refs. But going forward this value will be missing if the token was created dynamically via $ref. -
#530
370ed7bThanks @drwpow! - Minor breaking change: build() and buildEnd() plugin hooks are now executed in parallel. The other hooks are still executed sequentially. -
#530
370ed7bThanks @drwpow! -⚠️ Breaking change: the following token types have more strict requirements about all properties being present:- Border
- Transition
- Typography
These behaviors may be opted out individually by adjusting the new lint rules (see documentation).
-
#589
8f32d44Thanks @michaelurban! - feat: add typography shorthand, improve Sass plugin
Patch Changes
-
#530
370ed7bThanks @drwpow! - Fix bug where border tokens’ partial aliases would sometimes refer to themselves -
#530
370ed7bThanks @drwpow! - Fix bug of lint warning of rules turned off being unused -
#530
370ed7bThanks @drwpow! - Validation moved to lint rules, which means token validation can be individually configured, and optionally extended. -
#530
370ed7bThanks @drwpow! - Add first class support for JSON $refs, both remote and local.Under-the-hood this transforms DTCG aliases to JSON $refs, so they’re interchangeable.
-
#530
370ed7bThanks @drwpow! - Bugfix: fix strokeStyle partialAliasOf -
#530
370ed7bThanks @drwpow! - Add missing $deprecated property to group types -
#568
67c75beThanks @drwpow! - Fix border tokens not cascading correctly across modes -
Bugfix: An error is now thrown if
--config [path]points to a bad location. -
Config: TypeScript files and plugins are now fully supported!
terrazzo.config.tsis now the default.
0.10.3
Patch Changes
-
#533
e1a612fThanks @pvignau! - Auto-install CSS plugin with Sass during init -
Updated dependencies [
6141d4f]:- @terrazzo/parser@0.10.3
0.10.2
Patch Changes
0.10.1
Patch Changes
-
#510
4493731Thanks @drwpow! - Reduce decimal places in color output.- [plugin-css]
⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass incolorDepth: 'unlimited'
- [plugin-css]
-
Updated dependencies [
4493731]:- @terrazzo/token-tools@0.10.1
- @terrazzo/parser@0.10.1
0.10.0
Minor Changes
-
#507
0060100Thanks @drwpow! -⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4 -
#507
0060100Thanks @drwpow! -⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to0 - 100, rather than0 - 1:{ "colorSpace": "hsl", - "components": [270, 0.5, 0.4] + "components": [270, 50, 40] }All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
Patch Changes
- [#507](https://githu...
@terrazzo/react-color-picker@0.2.2
Patch Changes
- Minor WebGL fixes & perf optimizations