用途:这是一份将 Angular 组件架构与 BEM(Block Element Modifier)CSS 命名规范结合的方法论指南,用于编写可复用组件、促进前端代码共享。适用于为 Angular 组件编写 CSS/SCSS/SASS、在模板中命名类名、审查组件样式一致性、依据样式复杂度决定是否拆分组件、为新项目搭建 CSS 架构,以及将既有样式重构为 BEM。
核心原则:1 个组件对应 1 个 BEM 块,块名与组件选择器一致;最多两级嵌套,只允许 Block 与 Block__Element,禁止 Block__Element__SubElement;需要第三级时抽取子组件;选择器保持扁平,不使用后代、子代或标签限定选择器;元素名语义化,描述“是什么”而非“如何/在哪”;变体用 --modifier 表示,且始终与基础类同时使用。
规则按优先级分为:块等于组件选择器(CRITICAL)、最多两级嵌套(CRITICAL)、拆分子组件(CRITICAL)、元素命名约定(HIGH)、修饰符模式(HIGH)、禁止级联选择器(HIGH)。
用法:逐条阅读规则文件 rules/bem-block-selector.md、rules/bem-max-nesting.md、rules/bem-split-components.md、rules/bem-element-naming.md、rules/bem-modifier-patterns.md、rules/bem-no-cascading.md。每个规则文件包含原因说明、错误示例、正确示例(CSS、SCSS、SASS)、Angular 组件集成模式、汇总表与参考。完整合并文档见 AGENTS.md。
速查:.block 为组件根(与选择器一致),.block__element 为组件子部分,.block--modifier 为整块变体,.block__element--modifier 为单个元素变体。正确如 .user-card、.user-card__avatar、.user-card--featured、.user-card__name--highlighted;错误如 .user-card__header__title(三级)、.user-card .user-card__avatar(后代选择器)、div.user-card(标签限定)。
限制:资料未提供具体安装命令、依赖、平台支持、收费或价格信息,暂未提供。