Thanks to visit codestin.com
Credit goes to github.com

Skip to content

css_lexer: Re-encode escapes in idents if they're invalid for unescaping#896

Merged
keithamus merged 1 commit intomainfrom
invalid-idents
Feb 18, 2026
Merged

css_lexer: Re-encode escapes in idents if they're invalid for unescaping#896
keithamus merged 1 commit intomainfrom
invalid-idents

Conversation

@keithamus
Copy link
Member

Just like #894, css-minify-tests also highlighted that compacting idents could
sometimes result in producing invalid compacted tokens; due to aggressively
unescaping characters which are required to be escaped.

This change implements checks that to see if it's safe to write the unescaped
character at a particular ident position (the ident start section is different
to the ident end position). If the unescaped variant is unsafe, it re-encodes it
as a compact representation of the escape sequence, to ensure that idents remain
idents and don't accidentally get transformed into invalid tokens.

@keithamus keithamus enabled auto-merge (squash) February 18, 2026 10:03
@keithamus keithamus disabled auto-merge February 18, 2026 10:06
Copy link

@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.

Copy link

@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.

Just like #894, css-minify-tests also highlighted that compacting idents could
sometimes result in producing invalid compacted tokens; due to aggressively
unescaping characters which are required to be escaped.

This change implements checks that to see if it's safe to write the unescaped
character at a particular ident position (the ident start section is different
to the ident end position). If the unescaped variant is unsafe, it re-encodes it
as a compact representation of the escape sequence, to ensure that idents remain
idents and don't accidentally get transformed into invalid tokens.
Copy link

@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 enabled auto-merge (squash) February 18, 2026 10:14
Copy link

@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 87f87b8 into main Feb 18, 2026
17 checks passed
@keithamus keithamus deleted the invalid-idents branch February 18, 2026 10:22
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))

### 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))

### 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))

### 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))

### 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