Skip to content

v0.0.28

Choose a tag to compare

@keithamus keithamus released this 25 Jul 15:15
· 187 commits to main since this release
81c9273

Headline Changes

This is a large release with several major improvements:

  • All substitution functions, such as var(), calc() and env() are now fully parsed as "slotted" values, this means a value such as font-weight: var(--foo) is no-longer resolved as an unknown value, but instead as a fully typed substitution. This slotted design means that using calc() 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 of if() 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 @supports parsing 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