You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds transition-behavior to the stylelint property order so it sorts correctly within the transition-* group
Adds the full set of CSS system color keywords (ButtonFace, CanvasText, GrayText, etc.) as allowed values in stylelint so forced-colors overrides don't trip the design token enforcement rule
01_component-css.md: Documents section banner format, expands the :host exception with code examples covering UA resets, entry/exit transitions, and positioning surfaces; adds inherit guidance for sub-elements that track a variant value; clarifies native pseudo-class preference over attribute selectors for states
02_custom-properties.md: Adds explicit rules for private property placement (:host does not encapsulate --_swc-*), exposure criteria (expose only when the component itself overrides, with nested component relationship exception), size variant pattern (single property overridden per size selector), state-specific custom property pattern for native browser states on internal elements, and full property name convention
03_component-css-pr-checklist.md: Adds a Custom properties section covering all five new rules as checkable items
05_anti-patterns.md: Updates anti-pattern # 6 with the nested component relationship exception; adds new anti-pattern # 10 covering size-specific custom properties
AI migration skill and rule updates (.ai/):
migration-phase-awareness.md: Adds "Migration plan checklist" as an explicit phase-completion step and surfaces it in the Migration Checkpoint format
migration-styling SKILL.md: Adds Step 5 to write @cssprop JSDoc tags on the SWC class for every exposed property after writing CSS
migration-documentation SKILL.md: Adds a @cssprop verification step to Phase 7 cross-check
consumer-migration-guide SKILL.md and prompt: Scopes guide content to what actually shipped in the source, not migration plan categories (Additive/Deferred reflect intent, not final state)
code-conformance.md: Makes the CSS PR checklist the first and explicit verification step rather than a passive reference
Motivation and context
Custom property exposure decisions were underdocumented, leading to inconsistent implementations across components — in particular: private properties declared on :host (which exposes them), size-specific custom properties that bloat the API surface, and missing @cssprop tags that break Storybook API docs. The PR feedback on Button that prompted these additions also identified that state-specific custom properties (:hover, :focus-visible, :active) on internal elements are correct and necessary because static-color compound overrides require them.
5t3ph
added
Component:Documentation
Issues or PRs involving changes to docs or docs website. Component prefix is for Jira integration.
2nd gen
These issues or PRs map to our 2nd generation work to modernizing infrastructure.
AI tooling
labels
May 28, 2026
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
If the changes are expected, update the current_golden_images_cache hash in the circleci config to accept the new images. Instructions are included in that file.
If the changes are unexpected, you can investigate the cause of the differences and update the code accordingly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2nd genThese issues or PRs map to our 2nd generation work to modernizing infrastructure.AI toolingComponent:DocumentationIssues or PRs involving changes to docs or docs website. Component prefix is for Jira integration.Status:Ready for mergePR has 2 approvals, all tests pass, and is ready to merge
3 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Three areas of work combined on this branch:
CSS stylelint and linting updates:
transition-behaviorto the stylelint property order so it sorts correctly within thetransition-*groupButtonFace,CanvasText,GrayText, etc.) as allowed values in stylelint so forced-colors overrides don't trip the design token enforcement ruleCSS style guide additions (
CONTRIBUTOR-DOCS/02_style-guide/01_css/):01_component-css.md: Documents section banner format, expands the:hostexception with code examples covering UA resets, entry/exit transitions, and positioning surfaces; addsinheritguidance for sub-elements that track a variant value; clarifies native pseudo-class preference over attribute selectors for states02_custom-properties.md: Adds explicit rules for private property placement (:hostdoes not encapsulate--_swc-*), exposure criteria (expose only when the component itself overrides, with nested component relationship exception), size variant pattern (single property overridden per size selector), state-specific custom property pattern for native browser states on internal elements, and full property name convention03_component-css-pr-checklist.md: Adds a Custom properties section covering all five new rules as checkable items05_anti-patterns.md: Updates anti-pattern # 6 with the nested component relationship exception; adds new anti-pattern # 10 covering size-specific custom propertiesAI migration skill and rule updates (
.ai/):migration-phase-awareness.md: Adds "Migration plan checklist" as an explicit phase-completion step and surfaces it in the Migration Checkpoint formatmigration-stylingSKILL.md: Adds Step 5 to write@csspropJSDoc tags on the SWC class for every exposed property after writing CSSmigration-documentationSKILL.md: Adds a@csspropverification step to Phase 7 cross-checkconsumer-migration-guideSKILL.md and prompt: Scopes guide content to what actually shipped in the source, not migration plan categories (Additive/Deferred reflect intent, not final state)code-conformance.md: Makes the CSS PR checklist the first and explicit verification step rather than a passive referenceMotivation and context
Custom property exposure decisions were underdocumented, leading to inconsistent implementations across components — in particular: private properties declared on
:host(which exposes them), size-specific custom properties that bloat the API surface, and missing@cssproptags that break Storybook API docs. The PR feedback on Button that prompted these additions also identified that state-specific custom properties (:hover,:focus-visible,:active) on internal elements are correct and necessary because static-color compound overrides require them.