SCSS, BEM naming, and design tokens.
regionClass with a *.region.module.scss - Token-only paint on a Box or FlexBox host that the props do not coverfind-pattern skill - When no prop or part existssx prop or sxStylesstyled-componentsstyle={{}}className on a @prepared911/ui part@layer chroma.* in a product stylesheetregionClass for token-only host paint the props do not cover, such as a host :hoverclassName is deprecated outside the design system; pnpm lint:classname rejects it on a published part@layer chroma.*; consumer stylelint rejects every chroma layer, chroma.overrides includedbem() is not an export of @prepared911/uiMyComponent.tsx → MyComponent.scss (PascalCase)filter-bar.tsx → filter-bar.scss (kebab-case)styles.scssbem() and prefixClass() are not exports of @prepared911/ui. Layout and paint go through Box and FlexBox props. className is deprecated outside the design system, and pnpm lint:classname rejects it on a published part.
For token-only paint the props do not cover, pass regionClass on Box or FlexBox a class from a colocated *.region.module.scss file. The module styles only its host class, optionally with :hover or :focus-visible, and sets colors, borders and opacity; layout stays in props. It declares no @layer chroma.*.
regionClass takes styles.card directly, not a conditional. A region module cannot select descendants, data-* attributes or :has(), so paint that follows product state, such as an active card, comes from a shipped part's state prop, or is requested through the find-pattern skill.
Always use design tokens instead of hardcoded values:
.block and .block__element. Never .block__element__subelement.
regionClass with a *.region.module.scss when:
:hover or :focus-visible on that paintfind-pattern skill when: