Skip to content

chromashift: Increase precision of display-p3 to sRGB conversion#897

Merged
keithamus merged 1 commit intomainfrom
chromashift-increase-precision-of-display-p3-to-srgb-conversion
Feb 18, 2026
Merged

chromashift: Increase precision of display-p3 to sRGB conversion#897
keithamus merged 1 commit intomainfrom
chromashift-increase-precision-of-display-p3-to-srgb-conversion

Conversation

@keithamus
Copy link
Copy Markdown
Member

Given the most likely reason for using chromashift to convert display-p3 will be
converting to sRGB, using indirect conversions via XYZ can result in floating
point precision loss, which means some colors like display-p3 0.5 0.5 0.5
convert to #807f80 instead of #808080. This kind of precision loss is likely
visually imperceivable but it's annoying and it certainly doesn't minify well.

This change adds new direct impls for DisplayP3 to LinearRgb using the provided
matrices in CSS Color 4. It also ensures any conversion (e.g. via the generic
Color type) goes through this LinearRgb conversion, thus retaining precision for
this specific operation.

Let this commit stand as yet another exhibit of why I generally despise floating
point numbers.

Given the most likely reason for using chromashift to convert display-p3 will be
converting to sRGB, using indirect conversions via XYZ can result in floating
point precision loss, which means some colors like `display-p3 0.5 0.5 0.5`
convert to #807f80 instead of #808080. This kind of precision loss is likely
visually imperceivable but it's _annoying_ and it certainly doesn't minify well.

This change adds new direct impls for DisplayP3 to LinearRgb using the provided
matrices in CSS Color 4. It also ensures any conversion (e.g. via the generic
Color type) goes through this LinearRgb conversion, thus retaining precision for
this specific operation.

Let this commit stand as yet another exhibit of why I generally despise floating
point numbers.
@keithamus keithamus enabled auto-merge (squash) February 18, 2026 17:07
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All CI jobs have passed. Approving.

@keithamus keithamus merged commit 2169a27 into main Feb 18, 2026
17 checks passed
@keithamus keithamus deleted the chromashift-increase-precision-of-display-p3-to-srgb-conversion branch February 18, 2026 17:14
github-actions bot pushed a commit that referenced this pull request Feb 18, 2026
## [0.0.18] - 2026-02-18

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))

[forcebuild]
@keithamus keithamus mentioned this pull request Feb 18, 2026
github-actions bot pushed a commit that referenced this pull request Feb 18, 2026
## [0.0.18] - 2026-02-18

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
github-actions bot pushed a commit that referenced this pull request Feb 18, 2026
## [0.0.18] - 2026-02-18

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Feb 18, 2026
## [0.0.18] - 2026-02-18

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
## [0.0.18] - 2026-02-23

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
## [0.0.18] - 2026-02-23

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
## [0.0.18] - 2026-02-23

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
## [0.0.18] - 2026-02-23

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))
github-actions bot pushed a commit that referenced this pull request Feb 26, 2026
## [0.0.18] - 2026-02-26

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Feb 26, 2026
## [0.0.18] - 2026-02-26

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))
github-actions bot pushed a commit that referenced this pull request Feb 26, 2026
## [0.0.18] - 2026-02-26

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Feb 26, 2026
## [0.0.18] - 2026-02-26

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))
github-actions bot pushed a commit that referenced this pull request Feb 27, 2026
## [0.0.18] - 2026-02-27

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))
- css_lexer: Rewrite to use Bytes, memchr (#907) ([#907](#907))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Feb 27, 2026
## [0.0.18] - 2026-02-27

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))
- css_lexer: Rewrite to use Bytes, memchr (#907) ([#907](#907))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))
github-actions bot pushed a commit that referenced this pull request Mar 1, 2026
## [0.0.18] - 2026-03-01

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))
- css_lexer: Rewrite to use Bytes, memchr (#907) ([#907](#907))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))
- css_parse: flush trailing semicolons in CursorCompactWriteSink on drop (#908) ([#908](#908))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Mar 1, 2026
## [0.0.18] - 2026-03-01

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))
- css_lexer: Rewrite to use Bytes, memchr (#907) ([#907](#907))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))
- css_parse: flush trailing semicolons in CursorCompactWriteSink on drop (#908) ([#908](#908))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))
github-actions bot pushed a commit that referenced this pull request Mar 1, 2026
## [0.0.18] - 2026-03-01

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))
- css_ast: Remove StringOrUrl type (#909) ([#909](#909))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))
- css_lexer: Rewrite to use Bytes, memchr (#907) ([#907](#907))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))
- css_parse: flush trailing semicolons in CursorCompactWriteSink on drop (#908) ([#908](#908))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Mar 1, 2026
## [0.0.18] - 2026-03-01

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))
- css_ast: Remove StringOrUrl type (#909) ([#909](#909))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))
- css_lexer: Rewrite to use Bytes, memchr (#907) ([#907](#907))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))
- css_parse: flush trailing semicolons in CursorCompactWriteSink on drop (#908) ([#908](#908))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))
github-actions bot pushed a commit that referenced this pull request Mar 1, 2026
## [0.0.18] - 2026-03-01

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))
- css_ast: Remove StringOrUrl type (#909) ([#909](#909))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))
- css_lexer: Rewrite to use Bytes, memchr (#907) ([#907](#907))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))
- css_parse: flush trailing semicolons in CursorCompactWriteSink on drop (#908) ([#908](#908))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))
- csskit_transform: reduce Urls to Strings where possible (#910) ([#910](#910))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))

[forcebuild]
github-actions bot pushed a commit that referenced this pull request Mar 1, 2026
## [0.0.18] - 2026-03-01

### Other Changes
- Chore(deps): update rust crate toml to v1 (#875) ([#875](#875))
- Update css-tokenizer-tests (#887) ([#887](#887))
- Chore(deps): update dependencies (patch) (#900) ([#900](#900))

### Chromashift
- chromashift: Update to support wide-gamut color spaces, out of gamut colors (#877) ([#877](#877))
- chromashift: Implement css-color-4 raytrace gamut mapping (#879) ([#879](#879))
- chromashift: Increase precision of display-p3 to sRGB conversion (#897) ([#897](#897))

### Css_ast
- css_ast: Implement gap rule list (#878) ([#878](#878))
- Regenerate css_ast/src/values from csswg drafts (#881) ([#881](#881))
- css_ast: Implement ColorMix (#889) ([#889](#889))
- css_ast: Boxup more types (#890) ([#890](#890))
- Implement ColorFunctionColor::to_chromashift() and extract shortest_color helper (#898) ([#898](#898))
- Regenerate css_ast/src/values from csswg drafts (#899) ([#899](#899))
- css_ast: Remove StringOrUrl type (#909) ([#909](#909))

### Css_lexer
- css_lexer: Introduce UnicodeRange token kind. (#891) ([#891](#891))
- css_lexer: Add "Bad" tokens. (#892) ([#892](#892))
- css_lexer: Re-encode escapes in strings if they're invalid for unescaping (#894) ([#894](#894))
- css_lexer: Re-encode escapes in idents if they're invalid for unescaping (#896) ([#896](#896))
- css_lexer: Rewrite to use Bytes, memchr (#907) ([#907](#907))

### Css_parse
- css_parse: Add BumpBox type and blanket trait impls for Box types (#888) ([#888](#888))
- css_parse: flush trailing semicolons in CursorCompactWriteSink on drop (#908) ([#908](#908))

### Csskit
- chore(deps): update dependencies (patch) (#882) ([#882](#882))

### Csskit_transform
- csskit_transform: introduce css-minify-tests (#886) ([#886](#886))
- csskit_transform: snapshot css-minify-tests failures instead of asserting count (#893) ([#893](#893))
- csskit_transform: reduce Urls to Strings where possible (#910) ([#910](#910))

### Csskit_vscode
- chore(deps): update dependencies (minor) (#884) ([#884](#884))
- chore(deps): update dependencies to v1.49.0 (minor) (#901) ([#901](#901))
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.

1 participant