{ "extends": ["stylelint-config-standard"], "ignoreFiles": ["dist/**", "public/hands-on/**", "submitted-skills/**"], "rules": { "custom-property-pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", "declaration-property-value-disallowed-list": { "/^transition/": ["/width/", "/height/", "/^top/", "/^left/", "/margin/"], "/^animation/": ["/width/", "/height/"] }, "media-feature-name-no-unknown": true, "no-descending-specificity": null, "selector-class-pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" }, "_comments": { "declaration-property-value-disallowed-list": "Animating layout properties forces reflow every frame and fails the 200ms INP budget. transform and opacity only — see .agents/rules/animation.md", "ignoreFiles": "hands-on/ is a lab fixture and submitted-skills/ is other people's work; neither is ours to restyle" } }