--- description: 微信小程序 WXSS 编写规范 globs: **/*.wxss alwaysApply: false --- # WXSS 编写规范 ## 基本语法规范 - 使用 2 个空格进行缩进 - 选择器和属性名使用小写字母 - 属性值后必须加分号 - 颜色值使用小写字母,优先使用简写形式 - 0 值不需要单位,如 `margin: 0` 而非 `margin: 0px` ## 选择器规范 - 类名使用 kebab-case 格式,如 `.user-info` - 避免使用 ID 选择器,优先使用类选择器 - 避免过深的选择器嵌套(不超过 3 层) - 使用有意义的类名,体现元素的功能而非样式 ## 布局规范 - 优先使用 Flexbox 进行布局 - 使用 `rpx` 单位进行响应式设计 - 合理使用 `box-sizing: border-box` - 避免使用绝对定位,除非必要 ## 尺寸单位 - 字体大小使用 `rpx`,参考设计稿 750px 宽度 - 边距和内边距使用 `rpx` - 边框宽度使用 `px`(通常为 1px) - 百分比用于相对布局 ## 颜色和主题 - 使用 TDesign 提供的 CSS 变量 - 自定义颜色应定义为 CSS 变量 - 避免硬编码颜色值 - 支持深色模式时使用主题变量 ## 字体规范 - 使用系统默认字体栈 - 字体大小遵循设计规范,常用尺寸:24rpx、28rpx、32rpx、36rpx - 行高设置为字体大小的 1.4-1.6 倍 - 合理使用字重,避免过度使用粗体 ## 组件样式 - 组件样式应当封装完整,避免依赖外部样式 - 使用 `externalClasses` 允许外部定制样式 - 避免样式污染,使用适当的选择器作用域 - 组件内部样式使用相对单位 ## 动画和过渡 - 使用 CSS 过渡而非 JavaScript 动画 - 动画时长控制在 200-300ms - 使用 `ease-out` 缓动函数 - 避免同时动画过多属性 ## 响应式设计 - 使用 `rpx` 实现基本的响应式 - 考虑不同屏幕尺寸的适配 - 使用媒体查询处理特殊情况 - 测试在不同设备上的显示效果 ## 性能优化 - 避免使用复杂的选择器 - 减少重绘和重排的样式属性 - 合理使用 `transform` 和 `opacity` 进行动画 - 避免使用 `!important` ## 代码组织 - 样式按功能模块组织 - 使用注释分隔不同的样式区块 - 公共样式提取到全局样式文件 - 保持样式文件的简洁和可读性 ## TDesign 集成 - 优先使用 TDesign 提供的样式类 - 通过 CSS 变量定制主题 - 遵循 TDesign 的设计规范 - 避免覆盖组件库的核心样式