Changelog
All notable changes to SpiraCSS packages are documented here.
0.4.3-beta
@spiracss/stylelint-plugin
Added
spiracss/property-placement: addmarginSideTagsoption (default:true) so tag-selector rules also followmarginSide.
Changed
spiracss/property-placement: refinemarginSideTagstag detection to count only tags in the selector chain (exclude tags only inside pseudo arguments such as:is(main)).spiracss/property-placement: add regression tests for tag/class mixed selectors,marginSide: 'bottom'with tag selectors, and non-tag unverified selector skip behavior.
@spiracss/html-cli
- Align package version with the monorepo release.
VS Code Extensions
spiracss-comment-links
- Align extension version with the monorepo release.
spiracss-html-to-scss
- Update
@spiracss/html-clidependency to^0.4.3. - Align extension version with the monorepo release.
Documentation
- Updated
spiracss/property-placementdocs (en/ja) formarginSideTagsbehavior and selector coverage notes. - Updated AI agent guide to v0.4.3-beta.
- Updated header/quickstart version badges to v0.4.3-beta.
0.4.2-beta
@spiracss/stylelint-plugin
Fixed
spiracss/class-structure: report repeated definitions of the same root Block asduplicateRootBlockwhenrootSingle: true.spiracss/class-structure: suppress duplicaterootSelectorNeedNestingwarnings whenduplicateRootBlockis already reported for the same selector.spiracss/class-structure: add explicitAuto-fixguidance for root-related diagnostics (multipleRootBlocks,duplicateRootBlock,rootSelectorMissingBlock,rootSelectorNeedNesting).
@spiracss/html-cli
- Align package version with the monorepo release.
VS Code Extensions
spiracss-comment-links
- Align extension version with the monorepo release.
spiracss-html-to-scss
- Update
@spiracss/html-clidependency to^0.4.2. - Align extension version with the monorepo release.
Documentation
- Added
duplicateRootBlock/rootSelectorNeedNestingsections to class-structure docs (en/ja). - Updated AI agent guide to v0.4.2-beta.
- Updated header/quickstart version badges to v0.4.2-beta.
0.4.1-beta
@spiracss/stylelint-plugin
Fixed
spiracss/class-structure: withrootSingle: true, top-level selectors made only ofexternal.classes/external.prefixescan no longer bypass root Block inclusion checks.spiracss/class-structure: reportduplicateRootBlockwhen the same root Block is defined multiple times in one file, and clarify nested rewrite guidance forrootSelectorNeedNesting.
@spiracss/html-cli
- Align package version with the monorepo release.
VS Code Extensions
spiracss-comment-links
- Align extension version with the monorepo release.
spiracss-html-to-scss
- Update
@spiracss/html-clidependency to^0.4.1. - Align extension version with the monorepo release.
Documentation
- Updated AI agent guide to v0.4.1-beta.
- Updated header/quickstart version badges to v0.4.1-beta.
0.4.0-beta
@spiracss/stylelint-plugin
Breaking Changes
- Stylelint v17 required: Dropped Stylelint v16 support. Users on v16 should pin
@spiracss/stylelint-plugin@0.3.x. - ESM only: Dropped CommonJS build. The package now ships ESM only.
- Node.js >= 20.19.0: Minimum Node.js version raised to match Stylelint 17.
moduleResolution: TypeScriptmoduleResolutionmust beBundler,Node16, orNodeNext(Stylelint 17 usesexportsfor type declarations).createRules()accepts config object only:createRules(path)no longer accepts a file path string. Importspiracss.config.jsand pass the config object directly, or usecreateRulesAsync(path)for path-based loading.
Changed
- Simplified
helpers.ts: removed CJS compatibility code (~80 lines),loadConfigFromPathAsyncnow uses nativeimport()directly. - Removed CJS build scripts and
tsconfig.build.cjs.json. - Build scripts converted from
.cjsto.mjs.
@spiracss/html-cli
- Align package version with the monorepo release.
VS Code Extensions
spiracss-comment-links
- Align extension version with the monorepo release.
spiracss-html-to-scss
- Update
@spiracss/html-clidependency to^0.4.0. - Align extension version with the monorepo release.
Documentation
- Updated all docs to remove CJS examples and add ESM-only configuration.
- Added v0.3 AI agent documentation for Stylelint v16 users.
- Updated AI agent guide to v0.4.0-beta.
0.3.4-beta
@spiracss/stylelint-plugin
Fixed
- Allow
@at-rootinside interaction sections for external-only root selectors (external classes only).
Documentation
- Document external-only root exceptions for
@at-root.
0.3.3-beta
@spiracss/stylelint-plugin
Fixed
- When using
createRules(), fall back toaliasRoots.componentsforcomponentsDirsifstylelint.base.paths.componentsis not set, avoidingnonComponentLinkfalse positives.
Documentation
- Update config docs and AI agent guide to document the
componentsDirsfallback.
0.3.2-beta
@spiracss/stylelint-plugin
Changed
- Treat CSS Modules
:global/:localas transparent across rules (the inner selector is linted). - Improve selector handling for
:globalwrappers (including rightmost:global(...)targets and selector lists). - Root filename checks (
rootFile) accept*.module.scssand supportchildFileCasefor files underchildDir.
@spiracss/html-cli
Added
- Improve JSX class/className extraction (string/template literals, member access).
- Add
jsxClassBindings.memberAccessAllowlistto restrict member access extraction (empty array disables it).
Changed
- Default
generator.layoutMixinsis now empty ([]) (no mixins are injected unless configured).
VS Code Extensions
spiracss-html-to-scss
- Update
@spiracss/html-clidependency to^0.3.2.
spiracss-comment-links
- Align extension version with the monorepo release.
Documentation
- Update AI agent guide and config docs for v0.3.2 (
rootFile/@relfileCase, CSS Modules notes).
0.3.1-beta
@spiracss/stylelint-plugin
Added
stylelint.rel.fileCase/stylelint.rel.childFileCaseoptions.- Accepts
*.module.scssfor child link comments (CSS Modules). stylelint.class.rootCasedefaultsstylelint.rel.fileCasewhen usingcreateRules().
Changed
- Child link checks now use
childFileCaseforchildDirtargets andfileCasefor other targets.
@spiracss/html-cli
Added
- Support
childFileCasewhen generating child SCSS filenames and@relcomments.
VS Code Extensions
spiracss-html-to-scss
- Support
childFileCasefor child SCSS generation (aligned with HTML CLI). - Update
@spiracss/html-clidependency to^0.3.1.
spiracss-comment-links
- Align extension version with the monorepo release.
Documentation
- Update
rel-commentsoption docs (fileCase/childFileCase/*.module.scss). - Update AI agent guide compatibility.
0.3.0-beta
@spiracss/stylelint-plugin
Breaking Changes
- Stylelint config restructured:
stylelint.classStructurereplaced bystylelint.base/stylelint.class, plus new per-rule sections (stylelint.placement,stylelint.pageLayer,stylelint.interactionProps,stylelint.keyframes,stylelint.pseudo,stylelint.rel). - Section renames:
interactionProperties→interactionProps,keyframesNaming→keyframes,pseudoNesting→pseudo,relComments→rel. - Comment/cache keys renamed:
stylelint.sectionCommentPatterns→stylelint.base.comments,stylelint.cacheSizes→stylelint.base.cache,sharedCommentPattern/interactionCommentPattern→comments.shared/comments.interaction. - External allowlist moved:
allowExternalClasses/allowExternalPrefixes→external.classes/external.prefixes. - New rules enabled by default:
spiracss/property-placement,spiracss/page-layer.
Added
- New rule:
spiracss/page-layer— Validates page-layer SCSS (component link comments required for child Blocks) - New rule:
spiracss/property-placement— Validates property placement (container/item/internal) based on selector role stylelint.pseudo.enabledoption
Changed
- Improved selector parsing and validation logic
- Error messages updated for clarity
- Better support for
selectorPolicy(data/class mode)
@spiracss/html-cli
Breaking Changes
- Config schema aligned with the new stylelint config: naming/external settings now read from
stylelint.base/stylelint.class(oldstylelint.classStructurekeys removed). - External allowlist renamed to
external.classes/external.prefixes.
Changed
- HTML lint and SCSS generation now use the new
externaloption shape. - Config warnings now report the naming source.
VS Code Extensions
spiracss-comment-links
- Documentation links updated to the official site.
spiracss-html-to-scss
- Config schema aligned with the new stylelint config (same breaking changes as HTML CLI).
- External allowlist renamed to
external.classes/external.prefixes.
Documentation
- Documentation updated on the official site (spiracss.jp)
- New rule documentation:
spiracss/page-layer,spiracss/property-placement - Wording update: “AI” → “AI agents” for consistency
- Rule docs updated to reflect new error messages and examples
0.2.2-beta
@spiracss/stylelint-plugin
Added
keyframes.enabledoption to disable thespiracss/keyframes-namingrule entirely
Documentation
- Add SpiraCSS Design Principles link to README
- Add Japanese documentation links to Docs section
@spiracss/html-cli
Documentation
- Add SpiraCSS Design Principles link to README
- Add Japanese documentation links to Docs section
- Improve description wording for clarity
VS Code Extensions
spiracss-comment-links
- Add SpiraCSS Design Principles link to README
- Add Japanese documentation links to Docs section
spiracss-html-to-scss
- Add SpiraCSS Design Principles link to README
- Add Japanese documentation links to Docs section
0.2.1-beta
First beta release of all SpiraCSS packages.
0.1.x (Alpha)
Experimental releases during initial development.