Skip to content

Conversation

@srobinson
Copy link
Member

  • Replace css-tree with @eslint/css-tree v3.6.6
  • Add var() detection to skip validation for CSS custom properties
  • Update all imports across 8 files
  • Fix TypeScript types for walk() callbacks
  • Remove @types/css-tree dependency

Resolves issue where properties containing var() would report validation
errors even though expansion was successful. CSS variables are runtime
values that cannot be validated at parse time.

- Replace css-tree with @eslint/css-tree v3.6.6
- Add var() detection to skip validation for CSS custom properties
- Update all imports across 8 files
- Fix TypeScript types for walk() callbacks
- Remove @types/css-tree dependency

Resolves issue where properties containing var() would report validation
errors even though expansion was successful. CSS variables are runtime
values that cannot be validated at parse time.
Copilot AI review requested due to automatic review settings November 11, 2025 12:06
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR migrates from the original css-tree library to @eslint/css-tree v3.6.6 to add support for CSS custom properties using var(). The migration addresses a validation issue where properties containing var() would incorrectly report errors even though expansion was successful, since CSS variables are runtime values that cannot be validated at parse time.

Key changes:

  • Migrated from css-tree peer dependency to @eslint/css-tree v3.6.6 as a regular dependency
  • Added containsVar() helper function to detect and skip validation for declarations with CSS variables
  • Fixed TypeScript types for walk() callbacks by changing parameter type from csstree.Value to csstree.CssNode with type guards

Reviewed Changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
package.json Changed from peerDependency css-tree to regular dependency @eslint/css-tree, removed @types/css-tree
pnpm-lock.yaml Updated package resolutions and dependencies, mdn-data bumped from 2.12.2 to 2.23.0
src/core/validate.ts Added containsVar() function and logic to skip validation for declarations containing CSS variables
src/internal/layer-parser-utils.ts Updated import and fixed walk callback types
src/internal/is-value-node.ts Updated type import
src/handlers/transition/transition-layers.ts Updated import and fixed walk callback types
src/handlers/mask/mask-layers.ts Updated import and fixed walk callback types
src/handlers/grid/expand.ts Updated import and fixed walk callback types
src/handlers/background/background-layers.ts Updated import and fixed walk callback types
src/handlers/animation/animation-layers.ts Updated import and fixed walk callback types
docs.llm/llm_src.txt Documentation file reflecting source code changes
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)

src/core/validate.ts:5

  • The documentation comment still references 'css-tree library' but should be updated to '@eslint/css-tree' to reflect the migration.
 * This function parses CSS using the css-tree library and validates each CSS property

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


/**
* Checks if a CSS value node contains var() function.
* CSS variables cannot be validated by css-tree as they are runtime values.
Copy link

Copilot AI Nov 11, 2025

Choose a reason for hiding this comment

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

The documentation comment references 'css-tree' but should be updated to '@eslint/css-tree' for consistency with the migration.

Suggested change
* CSS variables cannot be validated by css-tree as they are runtime values.
* CSS variables cannot be validated by @eslint/css-tree as they are runtime values.

Copilot uses AI. Check for mistakes.
- Update bundle size: ~68KB (ESM), ~73KB (CJS) minified + brotli
- Remove css-tree from installation (now bundled dependency)
- Update test count: 973 tests
- Update acknowledgments to @eslint/css-tree
- Add accurate performance metrics
- Keep @eslint/css-tree link to upstream repo
- Add b_values link for CSS value expansion/validation work
@srobinson srobinson closed this Nov 11, 2025
@srobinson srobinson deleted the develop branch November 11, 2025 12:17
@srobinson srobinson restored the develop branch November 11, 2025 12:18
@srobinson srobinson deleted the develop branch November 11, 2025 12:19
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.

2 participants