Releases: csskit/csskit
Release list
Canary
This release is automatically built and generated on every commit to main that passes tests.
And is currently published to npm:
npm i csskit@canaryv0.0.30
Headline Changes
The biggest change with this release is the NAPI API. This provides direct bindings for Node.JS:
import {
StyleRule, StyleSheet, Color, MediaRule
} from "csskit";
const sheet = StyleSheet.parse("a { color: red }");
sheet instanceof StyleSheet; // true
for (const rule of sheet.querySelectorAll("style-rule")) {
rule instanceof StyleRule; // true
console.log(rule.constructor.name, rule.text);
// -> StyleRule a { color: red }
}
Color.parse("#ff0000");
MediaRule.parse("@media print { a { color: red } }");In addition to this:
- Improves support for
@layer,@scope. - Add more
-webkit-and-moz-pseudo elements and classes. - Speed and memory efficiency improvements.
- Improvements npm package size.
- Bugfixes in minification.
- Minifier now removes empty rules and
@charsetrules, when possible.
What's Changed
- chore(deps): update dawidd6/action-download-artifact action to v23 by @renovate[bot] in #1406
- chore(deps): update dependency cargo:git-cliff to v2.13.1 by @renovate[bot] in #1409
- chore(deps): update dependency mocha to v11.8.0 by @renovate[bot] in #1410
- chore(deps): update dependencies (patch) by @renovate[bot] in #1407
- chore(deps): update dependency oxlint to v1.76.0 by @renovate[bot] in #1411
- chore(deps): update jdx/mise-action action to v4.2.5 by @renovate[bot] in #1417
- chore(deps): update dependency oxlint to v1.78.0 by @renovate[bot] in #1413
- chore(deps): update dependency postcss-preset-env to v11.4.0 by @renovate[bot] in #1414
- css_ast: Allow symbolic-counter-style in content syntax by @keithamus in #1419
- css_ast: Boxup rare nodes to reduce allocation size by @keithamus in #1421
- css_lexer/css_parse: Ensure parsed whitespace survives minification by @keithamus in #1420
- css_ast: Clean up & improve NodeWithMetadata derives, add value_kinds by @keithamus in #1422
- coverage: update css-minify-tests by @keithamus in #1423
- csskit_transform: skip subtrees which don't match metadata by @keithamus in #1424
- chore(deps): update dawidd6/action-download-artifact action to v24 by @renovate[bot] in #1425
- derive_atom_set: Don't case fold on punctuation. by @keithamus in #1426
- csskit_transform: implement ReduceCharsetRule by @keithamus in #1427
- css_ast: Add missing webkit pseudo elements by @keithamus in #1428
- css_ast: Implement InitialLetterAlignStyleValue by @keithamus in #1429
- csskit_arena: Reuse reservations across arenas by @keithamus in #1430
- csskit_arena: Clean up and consolidate allocation modes by @keithamus in #1431
- derive_atom_set: Expand readme with more detail by @keithamus in #1432
- csskit_arena: Add a detailed readme by @keithamus in #1433
- css_ast: Allow prelude-less
@layerby @keithamus in #1434 - css_ast/css_parse/csskit_derives: Derive empty block, prelude, nested metadata kinds by @keithamus in #1435
- css_ast/csskit_derives: Add Effective/Inert NodeKind flags by @keithamus in #1436
- chore(deps): update Rust deps & format caro files by @keithamus in #1437
- csskit_transform: implement RemoveInertNodes by @keithamus in #1438
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1439
- css_parse: Expose diagnostic details by @keithamus in #1440
- source_tools: Extract out Cursor/Span/LineIndex etc into source_tools crate by @keithamus in #1441
- css_ast: Support dynamically Visiting & Parsing by @keithamus in #1442
- csskit_ast: Use ErasedNode in selector matching, add NodeKey for identity by @keithamus in #1443
- fuzz: Minify corpus by @keithamus in #1444
- csskit_napi: Add native Node.js bindings by @keithamus in #1445
- Release v0.0.30 by @keithamus in #1415
- CI: Improve Test & Release builds, use native ARM runners by @keithamus in #1446
- node: Stop doubling wasm builds! by @keithamus in #1447
- build: optimise for size, not speed by @keithamus in #1448
- build: lto=thin by @keithamus in #1449
- build: build & copy napi dependencies per-architecture by @keithamus in #1451
Full Changelog: v0.0.29...v0.0.30
v0.0.29
Headline Changes
This is a large release with several major improvements:
- A huge amount of TODO nodes are now parsable, such as
@scope,@font-faceand@color-profilerules,calc-size(),mask-layer(),ray()functions, and properties likeanimation,rotate, andoffset. We're now at the point where most specified CSS can be parsed. - Continued refinement for performance and memory, making more use of the new
csskit_arenaarena allocator crate.
What's Changed
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1311
- chore(deps): update dependency oxlint to v1.73.0 by @renovate[bot] in #1318
- chore(deps): update dependencies (patch) by @renovate[bot] in #1312
- chore(deps): update dependency @vscode/test-electron to v3.1.0 by @renovate[bot] in #1313
- chore(deps): update dependency oxlint to v1.75.0 by @renovate[bot] in #1320
- chore(deps): update dependency prettier to v3.9.6 by @renovate[bot] in #1321
- chore(deps): update dependency npm to v12 by @renovate[bot] in #1274
- css_parse/css_ast: Use a #[node] tag to simplify csskit_source_finder, size tests by @keithamus in #1323
- chore(deps): update dependency rust to v1.97.1 by @renovate[bot] in #1322
- css_parse: Implement an Arena allocated String by @keithamus in #1324
- css_parse/csskit/csskit_transform: Use css_parse::String where possible by @keithamus in #1325
- css_parse: Re-export
Arenaas Bumpalo, renamebumptoallocby @keithamus in #1326 - csskit_arena: Introduce csskit_arena by @keithamus in #1327
- Upgrade nodejs 26.5.1 by @keithamus in #1328
- Fix clippy errors by @keithamus in #1329
- csskit-wasm: Fix wasm-opt errors by @keithamus in #1330
- csskit_spec_generator: Move out of crates/ into tools/ by @keithamus in #1331
- Don't build release-debug on collect-benchmarks scripts by @keithamus in #1332
- Default debug builds to line-tables-only by @keithamus in #1333
- css_ast: repr(C) all nodes, introduce stable-type-layout. by @keithamus in #1334
- chore(deps): update dependency cargo:cargo-insta to v1.46.3 by @renovate[bot] in #1338
- chore(deps): update dependencies (patch) by @renovate[bot] in #1335
- fuzz: Use css_parse sepcified allocator by @keithamus in #1339
- css_parse/css_ast/csskit_wasm: Make csskit_arena default allocator by @keithamus in #1340
- csskit_lsp: Don't create new Arenas for each LineIndex by @keithamus in #1341
- css_ast: Implement ray() function by @keithamus in #1342
- css_ast: Implement palette-mix() function by @keithamus in #1343
- css_ast: Implement calc-size() function by @keithamus in #1344
- css_ast: Implement Autospace by @keithamus in #1345
- css_ast: Implement TextEdge by @keithamus in #1346
- css_ast: Implement ContentLevel by @keithamus in #1347
- csskit_arena/css_parse/css_lexer/css_ast: Implement chunk based allocations, drop bumpalo by @keithamus in #1348
- css_ast: Implement [Auto]Line(Width|Style|Color)(List|OrRepeat) by @keithamus in #1349
- css_ast: Implement SingleAnimation by @keithamus in #1350
- css_ast: Implement CSS 4 images functions by @keithamus in #1351
- css_ast: Implement fade() function by @keithamus in #1352
- css_ast: Implement mask-layer() by @keithamus in #1353
- css_ast: Implement TimelineRangeCenterSubject by @keithamus in #1354
- css_ast: Implement remaining todo media features by @keithamus in #1355
- css_ast: Implement @scope rule by @keithamus in #1356
- css_ast: Implement @color-profile rule by @keithamus in #1357
- css_ast: Implement IntegerOrInfinite, uncomment RangeStyleValue by @keithamus in #1358
- css_ast: Implement @font-feature-values by @keithamus in #1359
- css_ast: Implement @font-palette-values by @keithamus in #1360
- css_ast: Implement Syntax by @keithamus in #1361
- css_ast: Implement tree counting functions, NumericValue by @keithamus in #1362
- csskit_source_finder/css_value_definition_parser: Autogeenerate list of sized types by @keithamus in #1363
- css_parse: Clean up imports with preludes by @keithamus in #1365
- csskit: Clean up imports with preludes by @keithamus in #1366
- css_ast: Drop Todo, clean up imports by @keithamus in #1364
- csskit_ast: Unflag stable_type_layout from test. by @keithamus in #1367
- csskit_spec_generator: Pass workspace_root to generate_property_atoms by @keithamus in #1368
- Regenerate css_ast/src/values & css_feature_data from csswg drafts by @keithamus in #1369
- css_ast: Generate Value<> slots for all keywords by @keithamus in #1370
- css_ast: Fix errors in MathML tags by @keithamus in #1371
- css_ast: Add new pseudo classes from various specs by @keithamus in #1372
- css_ast/csskit_ast: Optimise NodeId code by @keithamus in #1373
- css_ast: Fix panic in unexpected_pseudo_class diagnostic by @keithamus in #1374
- csskit_arena: Add with_initial_capacity by @keithamus in #1375
- css_ast: Delete dead macro code by @keithamus in #1376
- css_parse/css_ast: Ensure ComponentValue(s) are visitable nodes by @keithamus in #1377
- css_ast: Implement RotateStyleValue by @keithamus in #1378
- css_ast: Implement nav-* style values by @keithamus in #1379
- css_ast: Implement voice-pitch/voice-range, with semitones, fixing frequency by @keithamus in #1380
- css_ast: Implement remaining background properties by @keithamus in #1381
- css_ast: Implement offset style value by @keithamus in #1382
- csskit_spec_generator: Read & emit commit sha when generating individual specs by @keithamus in #1383
- css_ast: IMplement font-variant-alternates style value by @keithamus in #1384
- css_ast: Implement mask-border style value by @keithamus in #1385
- css_ast: Implement border-image style value by @keithamus in #1386
- csskit_proc_macro: Don't eagerly optimise alternates by @keithamus in #1387
- css_ast: Implement FontVariantStyleValue by @keithamus in #1388
- chore(deps): update dependency cargo:git-cliff to v2.11.0 by @renovate[bot] in #1392
- chore(deps): update dependency cargo:cargo-insta to v1.48.0 - autoclosed by @renovate[bot] in #1391
- chore(deps): update dependencies (patch) by @renovate[bot] in #1389
- css_ast: Add revert-rule keyword by @keithamus in #1393
- css_ast: Add missing pseudo elements from various specs by @keithamus in #1394
- fuzz: increase nightly fuzz time by @keithamus in #1395
- css_ast: Implement -webkit-animation style value by @keithamus in #1396
- css_ast: ...actually implement -webkit-animation by @keithamus in #1397
- css_ast: Group -webkit-animation properties by @keithamus in #1398
- css_ast: Implement font shorthand by @keithamus in #1399
- csskit_source_finder: Ignore types inside test modules by @keithamus in #1400
- css_ast: Implement @font-face style values by @keithamus in #1403
- chore(deps): update dependency postcss-import to v17 by @renovate[bot] in #1404
- Release v0.0.2...
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
v0.0.27
Headline Changes
This is a small release, mostly improving parsing robustness.
What's Changed
- css_ast/css_parse: Improve peeking robustness. by @keithamus in #1238
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1242
- chore(deps): update dependencies to v1.68.0 by @renovate[bot] in #1247
- chore(deps): update dependencies (patch) by @renovate[bot] in #1243
- chore(deps): update actions/cache action to v6 by @renovate[bot] in #1249
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1254
- fix(deps): update dependencies (patch) by @renovate[bot] in #1255
- chore(deps): update actions/cache action to v6.1.0 by @renovate[bot] in #1256
- fuzz: new parser findings 2026-06-19 by @keithamus in #1232
- fix(deps): update dependency @mdit/plugin-alert to v1 by @renovate[bot] in #1258
- fuzz: minimize corpus, and do so on nightly fuzz build by @keithamus in #1257
- CI: Ensure benches build by @keithamus in #1259
- fuzz: new parser findings 2026-07-01 by @keithamus in #1260
- css_ast: Refactor assert_specificity to use closure pattern by @keithamus in #1261
- css_ast: derive(ToSpan) on WebkitFunctionalPseudoClass by @keithamus in #1262
- chore(deps): update rust crate itertools to 0.15.0 by @renovate[bot] in #1246
- Implement "VisitFlow" by @keithamus in #1263
- Release v0.0.27 by @keithamus in #1239
Full Changelog: v0.0.26...v0.0.27
v0.0.26
What's Changed
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1221
- chore(deps): update dependencies (patch) by @renovate[bot] in #1222
- chore(deps): update dependencies to v1.48.0 by @renovate[bot] in #1227
- chore(deps): update dependencies to v1.20.0 by @renovate[bot] in #1226
- chore(deps): update dependencies to v0.35.1 by @renovate[bot] in #1223
- fuzz(css_parse): Mark more erroneous tokens in blocks as trivia. by @keithamus in #1225
- fuzz(css_lex): avoid buffer overflows with SmallStr buffer by @keithamus in #1220
- fuzz(css_parse): consume
Badtokens as trivia in blocks. by @keithamus in #1228 - chore(deps): update actions/checkout action to v7 by @renovate[bot] in #1230
- website: clean up CSS by @keithamus in #1233
- csskit_wasm/csskit(node): Provide csskit library functions in csskit package by @keithamus in #1234
- csskit(node): manage wasm-opt with mise by @keithamus in #1235
- csskit(node): Move build script to Mise by @keithamus in #1237
- Release v0.0.26 by @keithamus in #1224
Full Changelog: v0.0.25...v0.0.26
v0.0.25
Headline Changes
This release is largely about stability. In order to ensure the parser is as robust as possible, we've been running it against HTTP Archive, and introducing a Fuzz testing. This testing has discovered a variety of inputs that crashed csskit, including:
/*x*//*x*//*x*//*x*//*x*//*x*//*x*//*x*//*x*//*x*//*x*/a={-->}(this one was particularly bad as csskit would run forever, consuming all system memory!)l\0000x\u0000\u0000~\u0000\u0000\u0000\u0000\u0000
While it's quite unlikely for developers to write CSS that looks like this, making sure csskit doesn't crash (or eat all ram!) in these cases makes it much more reliable and trustworthy.
In addition, this release adds support for the new overflow-wrap (the new name for the non-standard word-wrap) property (word-wrap has been kept as the non-standard alias), as well as the new spatial-navigation* properties.
What's Changed
- css_parse: Ensure buffer is refilled if skipping past a whole buffer by @keithamus in #1180
- csskit: improve json output for subcommands by @keithamus in #1182
- css_ast: Avoid hanging on
={-->}input. by @keithamus in #1183 - chore(deps): update dependencies (patch) by @renovate[bot] in #1185
- Update cargo deps by @keithamus in #1189
- push allocator-api2 back to 2.21 due to bumpalo by @keithamus in #1191
- css_parse: Impl ToSpan for Comparison by @keithamus in #1190
- chore(deps): update dependency @vscode/test-electron to v3 by @renovate[bot] in #1192
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1184
- Impl Display for Comparison by @keithamus in #1193
- css_parse: Improve assert_parse! macros to use a block/closure by @keithamus in #1194
- css_ast: Use assert_parse! closure macro variant in tests. by @keithamus in #1196
- cssast/csskit_derives: Add new FeatureMetadata system by @keithamus in #1197
- csskit_derives: Ensure generics expect Peek when using it. by @keithamus in #1198
- csskit_source_finder: Don't find visitable nodes that just visit children by @keithamus in #1199
- csskit_derives/css_ast: make derive(IntoCursor) work with generics by @keithamus in #1200
- css_ast: Implement a NonEmpty generic by @keithamus in #1202
- fuzz: Try setting up a fuzzing suite by @keithamus in #1201
- Clean up all workflows by @keithamus in #1203
- Add missing Checkout steps to some builds by @keithamus in #1204
- mise: Update wasm-bindgen by @keithamus in #1205
- fuzz: Update PR template by @keithamus in #1207
- CI: ensure fuzz tests run when corpus changes by @keithamus in #1208
- fix(deps): update dependency esbuild to v0.28.1 [security] by @renovate[bot] in #1210
- CI: Ensure check-fuzz fetches orogin/main by @keithamus in #1209
- CI: Ensure check-fuzz fetches base sha by @keithamus in #1211
- CI: Ensure check-fuzz fetches base sha... try 3 by @keithamus in #1212
- fuzz: early return atom functions when given non-atom tokens by @keithamus in #1206
- fuzz: Commit minimized files, output them in PR message by @keithamus in #1214
- fuzz(css_lexer): ensure REPLACEMENT_CHARACTER is appended in small idents by @keithamus in #1213
- fuzz: Ensure only minimized outputs are added to PR by @keithamus in #1216
- CI: Improve output of Check Results step by @keithamus in #1217
- fuzz: Ensure oom/leaks are also PRd by @keithamus in #1218
- Release v0.0.25 by @keithamus in #1181
Full Changelog: v0.0.24...v0.0.25
v0.0.24
Headline Changes
csskit subcommands (colors, find, specificity, check) now all have a consistent --format json option.
Many many more properties now properly parse including older vendor prefixed properties such as -ms-filter.
Improvements to colour minification, including properly minifying color-mix().
What's Changed
- website: Little redesign by @keithamus in #1138
- Release csskit vscode extension v1.0.8 by @keithamus in #1107
- website: lucide icons instead of emoji by @keithamus in #1140
- website: add 404 page by @keithamus in #1141
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1142
- chore(deps): update dependencies (patch) by @renovate[bot] in #1143
- chore(deps): update dependency apexcharts to v5.13.0 by @renovate[bot] in #1144
- chore(deps): update dependency npm to v11.15.0 by @renovate[bot] in #1145
- Release csskit vscode extension v1.0.9 by @keithamus in #1147
- chore(deps): update dependency oxlint to v1.65.0 by @renovate[bot] in #1146
- chore(deps): update dependency postcss-preset-env to v11.3.0 by @renovate[bot] in #1149
- chore(deps): update dependency oxlint to v1.66.0 by @renovate[bot] in #1148
- Update css-minify-tests by @keithamus in #1150
- coverage: update snapshot data by @keithamus in #1153
- css_ast: resolve
nonechannels to 0 by @keithamus in #1154 - chore(deps): update rust crate dashmap to v6.2.1 by @renovate[bot] in #1151
- chore(deps): update rust crate insta to v1.47.2 by @renovate[bot] in #1152
- chore(deps): update dependencies (patch) by @renovate[bot] in #1156
- chore(deps): update dependency oxlint to v1.67.0 by @renovate[bot] in #1159
- chore(deps): update dependency npm to v11.16.0 by @renovate[bot] in #1157
- chore(deps): update dependency rust to v1.96.0 by @renovate[bot] in #1160
- coverage: update css-minify-tests by @keithamus in #1161
- chromashift/css_ast: Completely rewrite color mixing, support
nonechannels & N-colors by @keithamus in #1162 - csskit_proc_macro: Generate name suffixes for colliding properties by @keithamus in #1163
- css_ast: Rewrite and by @keithamus in #1164
- fix(deps): update dependency vscode-languageclient to v10 by @renovate[bot] in #1165
- coverage: refactor csskit-acceptance script to allow arbitrary command syntax by @keithamus in #1167
- coverage: add more csskit-acceptance snapshot tests by @keithamus in #1168
- coverage: try and be consistent with trailing newlines by @keithamus in #1170
- css_ast: Implement transform-origin parsing by @keithamus in #1169
- css_ast: Implement rect() function by @keithamus in #1171
- css_ast: implement extra values for pointer-events by @keithamus in #1172
- css_ast: implement -ms-word-break by @keithamus in #1173
- css_ast: Implement -ms-box-sizing by @keithamus in #1174
- css_ast: Implement vendor-prefixed -*-filter style values by @keithamus in #1175
- css_ast: Implement color-scheme by @keithamus in #1176
- css_ast: Implement -ms-interpolation-mode by @keithamus in #1177
- css_ast: allow comma less rect functions by @keithamus in #1178
- csskit: refactor unify CLI extraction commands with Extract trait + shared OutputFormat by @keithamus in #1179
- Release v0.0.24 by @keithamus in #1139
Full Changelog: v0.0.23...v0.0.24
v0.0.23
Headline Changes
This change largely works on adding more proper AST nodes for parsing values such as light-dark(), relative colour syntax (color(from...)), text-overflow, background, content, touch-action, as well as SVG properties. There are also minor improvements to minification.
It also adds csskit specificty, a sub-command that can parse a stylesheet and provide a list of rules with their associated specificity, which can help isolate specificity issues in ss sheets.
What's Changed
- fix(css_parse): preserve whitespace around +/- in calc() by @rlorenzo in #1114
- coverage: drop bootstrap/foundation .min files by @keithamus in #1117
- css_parse: refactor CursorCompactWriteSink, preserve comments between idents by @keithamus in #1118
- css_ast: Implement relative color syntax by @keithamus in #1119
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1120
- csskit_spec_generator/css_ast: Generate properties from SVG, PointerEvents specs by @keithamus in #1121
- css_ast: Implement ContentStyleValue by @keithamus in #1122
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1123
- chore(deps): update dependencies (patch) by @renovate[bot] in #1124
- chore(deps): update dependency apexcharts to v5.12.0 by @renovate[bot] in #1126
- chore(deps): update dependency oxlint to v1.64.0 by @renovate[bot] in #1127
- chore(deps): update dependency @types/vscode to v1.120.0 by @renovate[bot] in #1125
- css_ast: add pinch-zoom to touch-action by @keithamus in #1128
- css_ast/csskit: Finish off ToSpecificity, add
csskit specificitycommand by @keithamus in #1129 - css_ast: Box all Gradient types by @keithamus in #1130
- css_ast: Implement Background property by @keithamus in #1131
- css_ast: Implement SpreadShadow, improve Shadow by @keithamus in #1132
- coverage: update css-minify-tests by @keithamus in #1133
- css_ast: Implement text-overflow by @keithamus in #1134
- css_ast: Implement more legacy/vendor display values by @keithamus in #1135
- css_ast: Implement light-dark for color values by @keithamus in #1136
- csskit_spec_generator: Replace non-breaking spaces with whitespace by @keithamus in #1137
- Release v0.0.23 by @keithamus in #1116
Full Changelog: v0.0.22...v0.0.23
v0.0.22
Headline Changes
This release supports parsing for many more properties, including many vendor prefixed properties while also improving minification for colours and improving overall performance.
What's Changed
- packages: remove accidentally comitted bin by @keithamus in #1079
- vscode: Add Open VSX release step by @keithamus in #1081
- vscode: bump version by @keithamus in #1082
- Release csskit vscode extension v1.0.7 by @keithamus in #1083
- css_ast: implement corner-*, whites-pace, text-emphasis(-style), voice-volume by @keithamus in #1084
- csskit_proc_macro: Auto generate name for Combinator of Alternatives by @keithamus in #1085
- css_ast: Implement FontVariant* properties and sub-types by @keithamus in #1086
- css_value_definition_parser: Optimize Auto Number/Percentage or LengthPercentage/Number cases by @keithamus in #1087
- css_parse: Add Either<Left, Right> by @keithamus in #1088
- csskit_proc_macro: use Either<> type for 2-type Alternatives by @keithamus in #1089
- css_ast: implement BorderColor, BorderImageSlice, BorderImageWidth by @keithamus in #1090
- css_ast: Implement lots more properties by @keithamus in #1091
- chromashift/csskit_transform: Round fractional colour channels to perceptually safe values by @keithamus in #1092
- css_ast: Uncomment BorderShape, OffsetPath, ShapeInside, ShapeOutside by @keithamus in #1093
- css_parse/css_ast: Use PEEK_KINDSET alot more consistently by @keithamus in #1094
- css_lexer: Add Span.overlaps by @keithamus in #1095
- css_ast: Implement a bunch of vendor prefixed style values by @keithamus in #1096
- css_ast: Add vendor prefix display values by @keithamus in #1097
- css_value_definition_parser: Ensure dash prefixed idents are properly emitted by @keithamus in #1099
- css_ast: Implement z-index by @keithamus in #1098
- csskit_proc_macro: Ensure dash prefixed idents are properly emitted by @keithamus in #1100
- css_ast: Add vendor prefixed value keywords by @keithamus in #1101
- Regenerate css_ast/src/values from csswg drafts by @keithamus in #1102
- chore(deps): update dependencies (patch) by @renovate[bot] in #1103
- chore(deps): update dependency apexcharts to v5.11.0 by @renovate[bot] in #1104
- chore(deps): update dependency npm to v11.14.1 by @renovate[bot] in #1105
- chore(deps): update dependency oxlint to v1.63.0 by @renovate[bot] in #1106
- chore(deps): update rust crate indexmap to v2.13.1 by @renovate[bot] in #1108
- chore(deps): update rust crate indexmap to v2.14.0 by @renovate[bot] in #1109
- css_ast: Uncomment clip/clip-path/mask/mask-image/mask-mode/mask-border-slice by @keithamus in #1110
- css_ast: Unlock more properties by stubbing types by @keithamus in #1111
- csskit: Improve messaging for check commands with missing sheets by @rlorenzo in #1113
- Release v0.0.22 by @keithamus in #1080
New Contributors
Full Changelog: v0.0.21...v0.0.22