v0.0.28
Headline Changes
This is a large release with several major improvements:
- All substitution functions, such as
var(),calc()andenv()are now fully parsed as "slotted" values, this means a value such asfont-weight: var(--foo)is no-longer resolved as an unknown value, but instead as a fully typed substitution. This slotted design means that usingcalc()for substitutions that cannot be calculated (such as a keyword) is a parse error and still resolved to an unknown value. - In addition to
var()/calc()/env()this release also supports parsing ofif()functions in value positions. - Support for Container & Style queries has been improved, so that more variants of these syntaxes properly parse.
- Identifier scanning is now SIMD accelerated, meaning parsing CSS is a lot faster. How fast depends on which SIMD instructions your particular CPU supports.
- As usual, this release comes with support for a bunch of new properties.
- This also includes parsing support for legacy vendor prefixes, such as
-webkit-text-stroke, and the:-moz-meter-*pseudo classes.
What's Changed
- css_lexer/csskit: Implement LineIndex, precomputing line offsets by @keithamus in #1264
- csskit_derives: Add peek(skip) attribute by @keithamus in #1266
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1267
- chore(deps): update dependency @types/node to v24.13.2 by @renovate[bot] in #1269
- chore(deps): update dependencies (patch) by @renovate[bot] in #1268
- chore(deps): update dependency apexcharts to v5.14.0 by @renovate[bot] in #1271
- chore(deps): update dependency @types/vscode to v1.125.0 by @renovate[bot] in #1270
- css_parse/csskit_derives: Add semantic_eq(skip) to derive(SemanticEq) by @keithamus in #1272
- chore(deps): update dependency typescript to v7 by @renovate[bot] in #1273
- css_ast: Implement various shape functions for clip-path, etc by @keithamus in #1275
- css_ast: Use blocks for Container & Style at rules by @keithamus in #1276
- css_ast: Add more -moz-meter-* pseudo elements/classes by @keithamus in #1277
- css_ast: Refactor and improve
@supportsparsing by @keithamus in #1278 - css_ast: Implement fill & stroke by @keithamus in #1279
- css_ast: Implement webkit-text-stroek by @keithamus in #1280
- css_ast Implement grid functions, track, line, etc by @keithamus in #1281
- csskit_derives: Ensure atom checks properly peek by @keithamus in #1282
- csskit_spec_generator: Ensure property atoms includes the extra properties by @keithamus in #1283
- css_ast/css_parse: Implement ToNormalisedValue trait by @keithamus in #1284
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1285
- chore(deps): update dependency apexcharts to v5.15.2 by @renovate[bot] in #1287
- chore(deps): update dependency npm to v11.17.0 by @renovate[bot] in #1290
- chore(deps): update dependencies (patch) - autoclosed by @renovate[bot] in #1286
- chore(deps): update dependency apexcharts to v5.16.0 by @renovate[bot] in #1289
- chore(deps): update actions/setup-node action to v7 by @renovate[bot] in #1291
- fuzz: new parser findings 2026-07-13 by @keithamus in #1288
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1294
- csskit_derives: Allow multiple fields to delegate metadata by @keithamus in #1295
- css_parse: Drop CursorSource trait by @keithamus in #1296
- css_parse: Drop PreludeList, DeclarationRuleList by @keithamus in #1297
- css_parse: Reimplement computed value declaration peeking/parsing in DeclarationValue by @keithamus in #1298
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1299
- chore(deps): update dependencies (patch) by @renovate[bot] in #1300
- css_parse: Refactor BumpBox into generic Arena allocating Box. by @keithamus in #1304
- chore(deps): update dependency oxlint to v1.69.0 by @renovate[bot] in #1303
- chore(deps): update dependency lightningcss-cli to v1.33.0 by @renovate[bot] in #1302
- chore(deps): update dependency npm to v11.18.0 by @renovate[bot] in #1301
- css_lexer: Use a boxed slice in LineIndex, dropping Bumpalo's Vec. by @keithamus in #1305
- css_parse: Implement an Arena allocated Vec. by @keithamus in #1306
- css_lexer: Implement fearless_simd paths for scanning by @keithamus in #1307
- css_ast: Build out substitution function architecture by @keithamus in #1308
- css_ast: Use Value/CalcableValue in most manual types by @keithamus in #1309
- Release v0.0.28 by @keithamus in #1265
- css_ast: Add value slots for more types by @keithamus in #1310
Full Changelog: v0.0.27...v0.0.28