test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
# Changelog
All notable changes to this project will be documented in this file.
2025-04-19 20:41:17 +03:00
The format is based on [Keep a Changelog ](https://keepachangelog.com/en/1.0.0/ ), and this project adheres to
[Semantic Versioning ](https://semver.org/spec/v2.0.0.html ).
2025-11-22 12:13:26 +02:00
## [1.15.1] - 2025-11-22
- Fix [issue #7 ](https://github.com/antebudimir/eslint-plugin-vanilla-extract/issues/7 ) to prevent false positives for `sprinkles()` /`style()` /`recipe()` calls with non-empty object arguments while continuing to flag bare `({})` calls
- Add regression tests covering empty and non-empty call expressions in recipe base/variants to guard against future regressions
2025-11-13 21:26:44 +02:00
## [1.15.0] - 2025-11-14
- Add new rule `prefer-theme-tokens` that requires theme tokens instead of hard-coded values in vanilla-extract styles
- Detects hard-coded values across colors, spacing, font sizes, border radius/widths, shadows, z-index, opacity, font weights, and transitions
- Provides suggestions from configured theme contracts; optional auto-fix for unambiguous replacements
- Supports nested objects, media queries, selectors, and (optionally) template literals/helper calls
- Configurable via `themeContracts` , category toggles, `allowedValues` , `allowedProperties` , `autoFix` , `remBase` , `checkHelperFunctions` (see README for details)
2025-11-09 20:53:47 +02:00
## [1.14.0] - 2025-11-09
- Add new rule `prefer-logical-properties` that enforces logical CSS properties over physical directional properties
- Detects 140+ physical property mappings across margin, padding, border, inset, size, overflow, and scroll properties
- Supports value-based detection for `text-align` , `float` , `clear` , and `resize` properties
- Provides automatic fixes for all detected violations
- Preserves original formatting (camelCase/kebab-case and quote style)
- Configurable allowlist via `allow` option to skip specific properties
- Comprehensive test coverage
2025-11-04 08:42:47 +02:00
## [1.13.0] - 2025-11-04
- Add new rule `no-px-unit` that disallows `px` units in vanilla-extract styles with an allowlist option
- Provides fix suggestions for string literals and simple template literals (no expressions)
2025-10-22 06:06:33 +03:00
## [1.12.0] - 2025-10-22
- Add new rule `no-trailing-zero` that flags and fixes unnecessary trailing zeros in numeric values
- Handles various CSS units, negative numbers, and decimal values
- Preserves non-trailing zeros in numbers like 11.01rem and 2.05em
- Includes comprehensive test coverage for edge cases
2025-10-15 07:11:16 +03:00
## [1.11.1] - 2025-10-15
- Improve README structure and clarity
- Add "Important: Only Enable One Ordering Rule at a Time" section after configuration options
- Clarify that both `extends` and `plugins` approaches support rule customization
- Update "Recommended Configuration" section to list all 6 available rules (4 enabled by default, 2 alternatives)
- Add clear examples for switching between ordering rules
- Add warning about conflicting auto-fixes when multiple ordering rules are enabled simultaneously
- Clarify that users must explicitly disable the default ordering rule when switching to a different one
2025-06-26 01:51:36 +09:00
## [1.11.0] - 2025-06-25
- add reference tracking for wrapper functions in vanilla-extract style objects
- implement ReferenceTracker class for detecting vanilla-extract imports
- add createReferenceBasedNodeVisitors for automatic function detection
- support wrapper functions with parameter mapping enable all lint rules to work with custom wrapper functions
2025-04-19 20:41:17 +03:00
## [1.10.0] - 2025-04-19
- confirm compatibility with ESLint 8.57.0
- add support for ESLint v9 extends field in flat config
- maintain backward compatibility with existing usage patterns
- update [README.md ](README.md#usage ) with configuration examples for both ESLint 8 and ESLint 9
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
2025-04-16 09:43:06 +03:00
## [1.9.0] - 2025-04-16
- add new rule `no-unknown-unit` that disallows unknown or invalid CSS units in vanilla-extract style objects.
- Reports any usage of unrecognized units in property values
- Handles all vanilla-extract APIs, including style, recipe, fontFace, and keyframes
- Ignores valid units in special contexts (e.g., CSS functions, custom properties)
- Supports nested objects, media queries, and pseudo-selectors
2025-04-19 20:41:17 +03:00
- No autofix is provided because replacing or removing unknown units may result in unintended or invalid CSS; manual
developer review is required
2025-04-16 09:43:06 +03:00
2025-04-12 20:43:11 +03:00
## [1.8.0] - 2025-04-12
- add new rule `no-zero-unit` that enforces unitless zero values in vanilla-extract style objects
- Automatically removes unnecessary units from zero values (e.g., '0px' → '0')
- Handles both positive and negative zero values
- Preserves units where required (time properties, CSS functions)
- Works with all vanilla-extract APIs including style, recipe, fontFace, and keyframes
- Supports nested objects, media queries, and pseudo-selectors
2025-04-07 13:00:55 +03:00
## [1.7.0] - 2025-04-07
2025-04-19 20:41:17 +03:00
- add a recommended configuration preset that enables concentric-order and no-empty-style-blocks rules with error
severity.
2025-04-07 13:00:55 +03:00
- Fix plugin configuration structure to work properly
- Set concentric-order and no-empty-style-blocks as recommended rules
- Use error severity for recommended rules to enforce best practices
- Maintain backward compatibility with existing implementations
2025-04-06 11:37:34 +03:00
## [1.6.0] - 2025-04-06
- add new rule `no-empty-style-blocks` that detects and disallows empty style objects in vanilla-extract style functions
- Identifies empty objects in style, styleVariants, recipe, globalStyle and other API functions
- Handles nested empty selectors, media queries, and conditional styles
- Provides auto-fix capability to remove unnecessary empty blocks
- Special handling for recipe objects with empty base and variants
2025-03-12 07:13:26 +00:00
## [1.5.3] - 2025-03-12
2025-04-06 11:37:34 +03:00
- Add bug and feature request templates
2025-03-12 07:13:26 +00:00
2025-03-12 08:15:21 +02:00
## [1.5.2] - 2025-03-12
2025-04-06 11:37:34 +03:00
- Add CODEOWNERS file to enforce code review requirements
2025-03-12 08:15:21 +02:00
2025-03-12 06:46:14 +02:00
## [1.5.1] - 2025-03-12
2025-04-06 11:37:34 +03:00
- Update project dependencies to latest versions
2025-03-12 06:46:14 +02:00
2025-03-12 06:06:40 +02:00
## [1.5.0] - 2025-03-12
2025-04-06 11:37:34 +03:00
- Fix handling of missing groupOrder configuration
2025-03-12 06:06:40 +02:00
- Refactor negative conditions to positive ones with optional chaining
- Add comprehensive tests to achieve total coverage
2025-03-10 21:12:32 +02:00
## [1.4.7] - 2025-03-10
2025-04-06 11:37:34 +03:00
- Exclude test directories from published package
2025-03-10 21:12:32 +02:00
2025-03-10 20:04:45 +02:00
## [1.4.6] - 2025-03-10
2025-04-06 11:37:34 +03:00
- Add demo gif to README
2025-03-10 20:04:45 +02:00
2025-03-10 15:34:40 +02:00
## [1.4.5] - 2025-03-10
2025-04-06 11:37:34 +03:00
- Add GitHub Actions workflow for linting and testing
2025-03-10 15:34:40 +02:00
2025-03-10 10:09:05 +02:00
## [1.4.4] - 2025-03-10
2025-04-06 11:37:34 +03:00
- Improve GitHub Actions workflow for release creation
2025-03-10 10:09:05 +02:00
2025-03-10 09:28:51 +02:00
## [1.4.3] - 2025-03-10
2025-04-06 11:37:34 +03:00
- Add coverage for shared utility functions
2025-03-10 09:28:51 +02:00
## [1.4.2] - 2025-03-09
2025-04-06 11:37:34 +03:00
- Add GitHub Action to create releases from tags
2025-03-10 09:28:51 +02:00
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.4.1] - 2025-03-09
2025-04-06 11:37:34 +03:00
- Add comprehensive test suite for CSS ordering rules
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.4.0] - 2025-03-08
2025-04-06 11:37:34 +03:00
- Implement special ordering for fontFace APIs
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.3.1] - 2025-03-07
2025-04-06 11:37:34 +03:00
- Update milestones
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.3.0] - 2025-03-06
2025-04-06 11:37:34 +03:00
- Add script for versioning updates
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.2.0] - 2025-03-05
2025-04-06 11:37:34 +03:00
- Add support for linting keyframes and globalKeyframes
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.1.2] - 2025-03-05
2025-04-06 11:37:34 +03:00
- add .npmignore to exclude development files from npm package
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.1.1] - 2025-03-05
2025-04-06 11:37:34 +03:00
- Improve packaging and TypeScript configuration
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.1.0] - 2025-03-04
2025-04-06 11:37:34 +03:00
- Lower minimum Node.js version to 18.18.0
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.0.2] - 2025-03-04
2025-04-06 11:37:34 +03:00
- Add npm version badge and link to vanilla-extract
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.0.1] - 2025-03-04
2025-04-06 11:37:34 +03:00
- Add sample CSS file for linting demo during development
test ✅: add comprehensive test suite for CSS ordering rules
Add tests for all three CSS property ordering rules:
alphabetical-order,
concentric-order,
custom-order,
Tests cover all implemented vanilla-extract APIs, fontFace, globalFontFace, globalKeyframes, globalStyle, keyframes, style, and styleVariants.. Each test verifies both valid and invalid cases, along with proper auto-fixing functionality.
2025-03-09 18:12:00 +02:00
## [1.0.0] - 2025-03-04
2025-04-06 11:37:34 +03:00
- Initialize project with complete codebase