Skip to content

🎨 MMS-SCSS 样式库使用文档 (优化版)

📋 目录


🎯 设计理念

MMS-SCSS 是一个为 MMS-UI 项目定制的工具类样式库,旨在与 WindiCSS 协同工作,提供更丰富的业务特定样式。

协同工作原则

  • WindiCSS:处理基础工具类(p-*, m-*, text-*, bg-* 等)
  • MMS-SCSS:处理业务特定样式(flex-*, justify-*, items-* 等)

统一标准

  • 数值体系:4px 递增(0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64)
  • 色彩体系:与 WindiCSS 共享 primary、success、warning、danger
  • 断点体系:mobile(<640px), tablet(640-1023px), desktop(≥1024px)

📝 命名规范

MMS-SCSS 采用语义化命名,减少冗余前缀:

类型命名规范示例
布局类直接语义化命名.flex-row, .items-center
尺寸类w-/h- + 数值或百分比.w-50, .h-full
字体类font- + 大小或粗细.font-lg, .font-bold
间距类m/p + 方向 + 数值.m-16, .pt-8
颜色类text-/bg- + 颜色名.text-primary, .bg-success
动画类anim- + 效果名.anim-fade-in

🎯 布局系统

Flexbox 布局

html
<!-- 基本 Flex 布局 -->
<div class="flex-row">
  <div>Item 1</div>
  <div>Item 2</div>
</div>

<!-- 垂直布局 -->
<div class="flex-col">
  <div>Item 1</div>
  <div>Item 2</div>
</div>

<!-- Flex 换行 -->
<div class="flex-row flex-wrap">
  <!-- 子元素 -->
</div>
类名说明
.flex-row水平排列(默认)
.flex-col垂直排列
.flex-wrap允许换行
.flex-nowrap不换行

Flex 弹性比例

html
<div class="flex-row">
  <div class="flex-1">弹性区域</div>
  <div class="flex-2">弹性区域</div>
</div>
类名说明
.flex-0不弹性
.flex-1 ~ .flex-4弹性比例
.flex-auto自动弹性
.flex-none无弹性

对齐方式

html
<!-- 主轴对齐 -->
<div class="flex-row justify-center">
  <div>居中对齐</div>
</div>

<!-- 交叉轴对齐 -->
<div class="flex-row items-center">
  <div>垂直居中</div>
</div>

主轴对齐 (justify-*)

类名说明
.justify-start起始对齐
.justify-center居中对齐
.justify-end末尾对齐
.justify-between两端对齐
.justify-around平均分布

交叉轴对齐 (items-*)

类名说明
.items-start起始对齐
.items-center居中对齐
.items-end末尾对齐
.items-stretch拉伸对齐

常用布局模式

html
<!-- 完全居中容器 -->
<div class="center-container">
  <div>完全居中内容</div>
</div>

<!-- 垂直居中 -->
<div class="vertical-center">
  <div>垂直居中内容</div>
</div>

<!-- 水平居中 -->
<div class="horizontal-center">
  <div>水平居中内容</div>
</div>

<!-- 两端对齐 -->
<div class="space-between">
  <div>左侧内容</div>
  <div>右侧内容</div>
</div>

<!-- 等间距分布 -->
<div class="space-around">
  <div>项目1</div>
  <div>项目2</div>
  <div>项目3</div>
</div>
类名说明
.center-container完全居中容器
.vertical-center垂直居中
.horizontal-center水平居中
.space-between两端对齐
.space-around等间距分布

定位系统

html
<!-- 浮动 -->
<div class="float-left">左浮动</div>
<div class="float-right">右浮动</div>

<!-- 定位 -->
<div class="relative">
  <div class="absolute top-0 left-0">绝对定位</div>
</div>

<!-- 居中定位 -->
<div class="relative">
  <div class="center-xy">绝对居中</div>
</div>
类名说明
.float-left左浮动
.float-right右浮动
.float-none清除浮动
.relative相对定位
.absolute绝对定位
.fixed固定定位
.center-xy绝对居中

溢出处理

html
<div class="overflow-hidden">隐藏溢出内容</div>
<div class="overflow-auto">自动滚动条</div>
类名说明
.overflow-auto自动显示滚动条
.overflow-hidden隐藏溢出内容
.overflow-visible可见溢出内容
.overflow-scroll始终显示滚动条

层级控制 (z-index)

html
<div class="z-10">层级10</div>
<div class="z-20">层级20</div>
类名说明
.z-0层级 0
.z-10层级 10
.z-20层级 20
.z-30层级 30
.z-40层级 40
.z-50层级 50
.z-auto自动层级

清除浮动

html
<div class="clearfix">
  <div class="float-left">浮动元素</div>
</div>
类名说明
.clearfix清除浮动

📏 尺寸系统

宽度 (Width)

html
<div class="w-50">50% 宽度</div>
<div class="w-full">100% 宽度</div>
<div class="w-auto">自动宽度</div>
类名说明
.w-10 ~ .w-10010%-100% 宽度 (10% 间隔)
.w-auto自动宽度
.w-full100% 宽度

高度 (Height)

html
<div class="h-full">100% 高度</div>
<div class="h-screen">视窗高度</div>
类名说明
.h-auto自动高度
.h-full100% 高度
.h-screen视窗高度

最大宽度/高度

html
<div class="max-w-md">最大宽度768px</div>
<div class="max-h-screen">最大高度视窗高度</div>
类名说明
.max-w-xs最大宽度 320px
.max-w-sm最大宽度 480px
.max-w-md最大宽度 768px
.max-w-lg最大宽度 1024px
.max-w-xl最大宽度 1280px
.max-w-full最大宽度 100%
.max-h-xs最大高度 320px
.max-h-sm最大高度 480px
.max-h-md最大高度 768px
.max-h-lg最大高度 1024px
.max-h-full最大高度 100%
.max-h-screen最大高度 视窗高度

最小宽度/高度

html
<div class="min-w-full">最小宽度100%</div>
<div class="min-h-screen">最小高度视窗高度</div>
类名说明
.min-w-xs最小宽度 320px
.min-w-sm最小宽度 480px
.min-w-md最小宽度 768px
.min-w-full最小宽度 100%
.min-h-xs最小高度 320px
.min-h-sm最小高度 480px
.min-h-md最小高度 768px
.min-h-full最小高度 100%
.min-h-screen最小高度 视窗高度

字体大小

html
<div class="text-16">16px 字体</div>
<div class="font-lg">大字体</div>
类名说明
.text-{size}数值字体 (10, 12, 14, 16, 18, 20, 24, 28, 32)
.font-xs10px
.font-sm12px
.font-base14px
.font-md16px
.font-lg18px
.font-xl20px
.font-2xl24px
.font-3xl30px

🔤 字体系统

字体粗细

html
<div class="font-bold">粗体文字</div>
<div class="font-light">细体文字</div>
类名说明
.font-thin100
.font-light300
.font-normal400
.font-medium500
.font-semibold600
.font-bold700
.font-extrabold800
.font-black900

文本转换

html
<div class="text-uppercase">大写文本</div>
<div class="text-lowercase">小写文本</div>
<div class="text-capitalize">首字母大写</div>
类名说明
.text-uppercase转换为大写
.text-lowercase转换为小写
.text-capitalize首字母大写

文本溢出省略

html
<div class="text-ellipsis">单行文本溢出省略</div>
<div class="text-ellipsis-2">多行文本溢出省略</div>
类名说明
.text-ellipsis单行省略
.text-ellipsis-2两行省略

📐 间距系统

采用 4px 递增体系:0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64

html
<!-- 外边距 -->
<div class="m-16">四周外边距 16px</div>
<div class="mt-8">上外边距 8px</div>

<!-- 内边距 -->
<div class="p-12">四周内边距 12px</div>
<div class="pt-4">上内边距 4px</div>

外边距 (Margin)

类名说明
.m-{size}四周外边距
.mt-{size}上外边距
.mr-{size}右外边距
.mb-{size}下外边距
.ml-{size}左外边距

内边距 (Padding)

类名说明
.p-{size}四周内边距
.pt-{size}上内边距
.pr-{size}右内边距
.pb-{size}下内边距
.pl-{size}左内边距

间距组合

html
<!-- 内边距组合 -->
<div class="p-xy-16">四周内边距16px</div>
<div class="ptb-16">上下内边距16px</div>
<div class="plr-16">左右内边距16px</div>

<!-- 外边距组合 -->
<div class="m-xy-16">四周外边距16px</div>
<div class="mtb-16">上下外边距16px</div>
<div class="mlr-16">左右外边距16px</div>
类名说明
.p-xy-{size}四周内边距
.ptb-{size}上下内边距
.plr-{size}左右内边距
.m-xy-{size}四周外边距
.mtb-{size}上下外边距
.mlr-{size}左右外边距

支持的尺寸值:0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64


🎨 颜色系统

文字颜色

html
<div class="text-primary">主色文字</div>
<div class="text-success">成功色文字</div>
类名说明
.text-primary#1e97f8
.text-success#2dac34
.text-warning#fe6701
.text-danger#f56c6c
.text-info#909399
.text-black#000000
.text-white#ffffff
.text-gray-dark#333333
.text-gray#666666
.text-gray-light#999999

背景颜色

html
<div class="bg-primary">主色背景</div>
<div class="bg-success">成功色背景</div>
类名说明
.bg-primary#1e97f8
.bg-success#2dac34
.bg-warning#fe6701
.bg-danger#f56c6c
.bg-white#ffffff
.bg-gray#f5f5f5
.bg-transparent透明背景

透明度

html
<div class="opacity-50">50% 透明度</div>
<div class="opacity-0">完全透明</div>
类名说明
.opacity-00% 透明度
.opacity-2525% 透明度
.opacity-5050% 透明度
.opacity-7575% 透明度
.opacity-100100% 透明度

✍️ 文本系统

html
<div class="text-center">居中文本</div>
<div class="text-ellipsis">文本溢出省略</div>
类名说明
.text-left左对齐
.text-center居中对齐
.text-right右对齐
.text-nowrap不换行
.text-break强制换行
.text-underline下划线
.text-line-through删除线
.text-no-decoration无装饰
.text-ellipsis单行省略
.text-ellipsis-2两行省略

🖼️ 边框与圆角

边框

html
<div class="border-1">带边框</div>
<div class="border-t">上边框</div>
类名说明
.border-0无边框
.border-11px 边框
.border-t上边框
.border-b下边框
.border-l左边框
.border-r右边框

圆角

html
<div class="rounded-lg">大圆角</div>
<div class="rounded-full">圆形</div>
类名说明
.rounded-none无圆角
.rounded-sm2px 圆角
.rounded4px 圆角
.rounded-md6px 圆角
.rounded-lg8px 圆角
.rounded-full圆形

shadowsystem

html
<div class="shadow-lg">大阴影</div>
<div class="shadow-none">无阴影</div>
类名说明
.shadow-none无阴影
.shadow-sm小阴影
.shadow默认阴影
.shadow-md中等阴影
.shadow-lg大阴影

👁️ 显示系统

html
<div class="hidden">隐藏</div>
<div class="flex">Flex 显示</div>
类名说明
.hidden隐藏
.block块级显示
.inline行内显示
.inline-block行内块显示
.flexFlex 显示

🔧 工具类

html
<div class="clearfix">清除浮动</div>
<div class="cursor-pointer">鼠标指针</div>
类名说明
.clearfix清除浮动
.overlay遮罩层
.cursor-pointer鼠标指针
.cursor-not-allowed禁止鼠标

🎬 动画系统

基础动画

html
<div class="fade-in">淡入动画</div>
<div class="slide-up">上滑动画</div>
类名说明
.fade-in淡入
.fade-out淡出
.slide-up上滑
.slide-down下滑
.slide-left左滑
.slide-right右滑
.zoom-in放大
.zoom-out缩小
.bounce弹跳
.shake抖动
.pulse脉冲
.spin旋转
.ping扩散

过渡效果

html
<div class="transition-all">全属性过渡</div>
类名说明
.transition-all全属性过渡

📱 响应式系统

断点系统

断点屏幕宽度说明
sm< 640px移动设备
md640px - 1023px平板设备
lg≥ 1024px桌面设备

响应式工具类

html
<!-- 移动端隐藏 -->
<div class="sm-hidden">移动端隐藏</div>

<!-- 平板显示 -->
<div class="md-block">平板显示</div>

<!-- 桌面端隐藏 -->
<div class="lg-hidden">桌面端隐藏</div>

Grid 网格系统

html
<div class="resp-grid resp-grid-3 resp-gap-4">
  <div>项目 1</div>
  <div>项目 2</div>
  <div>项目 3</div>
</div>
类名说明
.resp-grid网格容器
.resp-grid-1 ~ .resp-grid-61-6 列网格
.resp-gap-1 ~ .resp-gap-6网格间距

容器类

html
<div class="resp-container">自适应容器</div>
<div class="resp-container-sm">小容器</div>
<div class="resp-container-lg">大容器</div>
类名说明
.resp-container默认容器 (1200px)
.resp-container-sm小容器 (640px)
.resp-container-lg大容器 (1440px)

设备显示控制

html
<div class="resp-show-mobile">仅移动端显示</div>
<div class="resp-show-tablet">仅平板显示</div>
<div class="resp-show-desktop">仅桌面显示</div>
类名说明
.resp-show-mobile仅移动端显示
.resp-show-tablet仅平板显示
.resp-show-desktop仅桌面显示

🖱️ 交互效果

悬停效果

html
<div class="interact-hover-lift">悬停提升</div>
<div class="interact-hover-scale">悬停缩放</div>
类名说明
.interact-hover-lift悬停提升
.interact-hover-scale悬停缩放
.interact-hover-glow悬停发光
.interact-hover-darken悬停变暗
.interact-hover-brighten悬停变亮

按钮效果

html
<button class="interact-btn-primary">主色按钮</button>
类名说明
.interact-btn-primary主色按钮

卡片效果

html
<div class="interact-card-hover">悬停卡片</div>
类名说明
.interact-card-hover悬停卡片

⏳ 加载状态

html
<div class="loading-spinner"></div>
<div class="loading-dots"></div>
<div class="loading-skeleton"></div>
类名说明
.loading-spinner旋转加载
.loading-dots点状加载
.loading-skeleton骨架屏

🚦 状态指示

html
<div class="status-success">成功状态</div>
<div class="status-warning">警告状态</div>
<div class="status-error">错误状态</div>
<div class="status-info">信息状态</div>
类名说明
.status-success成功状态
.status-warning警告状态
.status-error错误状态
.status-info信息状态

🎨 组件样式系统

卡片样式

html
<div class="card">基础卡片</div>
<div class="card card-hover">悬停卡片</div>
类名说明
.card基础卡片
.card-hover悬停卡片

按钮样式

html
<button class="btn">基础按钮</button>
<button class="btn btn-sm">小型按钮</button>
<button class="btn btn-lg">大型按钮</button>
<button class="btn btn-block">块级按钮</button>
类名说明
.btn基础按钮
.btn-sm小型按钮
.btn-lg大型按钮
.btn-block块级按钮

表单元素

html
<input type="text" class="form-control" placeholder="输入框">
<label class="form-label">标签</label>
类名说明
.form-control表单控件
.form-label表单标签

图标样式

html
<i class="icon-sm">16px 图标</i>
<i class="icon-md">24px 图标</i>
<i class="icon-lg">32px 图标</i>
<i class="icon-xl">48px 图标</i>
类名说明
.icon-sm16px 图标
.icon-md24px 图标
.icon-lg32px 图标
.icon-xl48px 图标

🔄 交互状态

html
<div class="disabled">禁用状态</div>
<div class="selected">选中状态</div>
<div class="active">激活状态</div>
类名说明
.disabled禁用状态
.selected选中状态
.active激活状态

✨ 特效系统

html
<div class="effect-glass">毛玻璃效果</div>
<div class="effect-gradient-text">渐变文字</div>
<div class="effect-glow-border">发光边框</div>
<div class="effect-pulse-ring">脉冲环</div>
类名说明
.effect-glass毛玻璃效果
.effect-gradient-text渐变文字
.effect-glow-border发光边框
.effect-pulse-ring脉冲环

工具动画类

html
<div class="util-anim-ripple">波纹效果</div>
<div class="util-anim-typewriter">打字机效果</div>
类名说明
.util-anim-ripple波纹效果
.util-anim-typewriter打字机效果

🔗 与 WindiCSS 协同工作

协同机制

  1. WindiCSS 处理基础工具类(p-*, m-*, text-*, bg-* 等)
  2. MMS-SCSS 处理业务特定样式(flex-*, justify-*, items-* 等)
  3. 通过 WindiCSS 的 blocklist 避免命名冲突

WindiCSS 配置示例

js
// windi.config.ts
export default defineConfig({
  blocklist: [
    'lay-*',   // 布局类由 mms.scss 处理
    'sp-*',    // 间距类由 mms.scss 处理
    'font-*',  // 字体类由 mms.scss 处理
    'anim-*',  // 动画类由 mms.scss 处理
    'interact-*', // 交互类由 mms.scss 处理
    'resp-*',  // 响应式类由 mms.scss 处理
  ],
  shortcuts: {
    // 使用 windi- 前缀避免冲突
    'windi-flex-row': 'flex flex-row',
    'windi-flex-col': 'flex flex-col',
  }
})

💡 使用示例

基本布局示例

html
<!-- 水平居中布局 -->
<div class="flex-row items-center justify-center h-screen">
  <div class="bg-white rounded-lg shadow-lg p-8">
    <h1 class="font-2xl font-bold text-center mb-4">欢迎使用</h1>
    <p class="text-gray text-center">这是一个示例页面</p>
  </div>
</div>

响应式卡片布局

``html

卡片标题

卡片内容描述

卡片标题

卡片内容描述

卡片标题

卡片内容描述

```

表单示例

``html

```

加载状态示例

html
<!-- 旋转加载器 -->
<div class="flex-row items-center justify-center">
  <div class="loading-spinner mr-2"></div>
  <span>加载中...</span>
</div>

<!-- 骨架屏 -->
<div class="loading-skeleton h-20 rounded mb-4"></div>
<div class="loading-skeleton h-20 rounded mb-4"></div>
<div class="loading-skeleton h-20 rounded"></div>

📚 缩写别名

为了提高开发效率,MMS-SCSS 提供了常用的缩写别名:

缩写对应类说明
.f-row.flex-row水平排列
.f-col.flex-col垂直排列
.y-center.items-center垂直居中
.x-end.justify-end水平末尾对齐
html
<!-- 使用缩写 -->
<div class="f-row y-center x-end">
  <div>右对齐垂直居中内容</div>
</div>

🛠️ 优化建议

  1. 组合使用:合理组合多个类实现复杂布局
  2. 响应式设计:利用响应式类实现适配
  3. 性能优化:避免过度嵌套和冗余样式
  4. 语义化命名:使用语义化的类名提高可读性
  5. 一致性:保持项目中样式使用的一致性

📞 支持与反馈

如有问题或建议,请联系项目维护团队。


🎨 CSS变量定义

MMS-SCSS定义了一系列CSS变量,用于维护一致的设计系统:

变量名默认值说明
--mms-color-white#ffffff白色
--mms-bg-main-color#f8f8f8主背景色
--mms-bg-color#f5f5ff背景色
--mms-border-color-light#f1f2f3浅边框色
--mms-color-primary-lighter#ecf5ff主色浅色
--mms-color-success-lighter#f0f9eb成功色浅色
--mms-color-warning-lighter#fdf6ec警告色浅色
--mms-color-danger-lighter#fef0f0危险色浅色
--mms-color-dark-hover#0000001a深色悬停
--mms-color-menu-hoverrgba(0, 0, 0, 0.2)菜单悬停
--mms-color-user-hoverrgba(0, 0, 0, 0.04)用户悬停
--mms-color-seting-main#e9eef3设置主色
--mms-color-seting-aside#d3dce6设置侧边色
--mms-color-seting-header#b3c0d1设置头部色

🎬 动画关键帧

MMS-SCSS定义了丰富的动画关键帧,为元素提供各种动画效果:

关键帧名说明
fadeIn淡入效果
fadeOut淡出效果
slideUp上滑效果
slideDown下滑效果
slideLeft左滑效果
slideRight右滑效果
zoomIn放大效果
zoomOut缩小效果
bounce弹跳效果
shake摇晃效果
pulse脉冲效果
spin旋转效果
ping扩散效果
pulseRing脉冲环效果
skeleton骨架屏效果
dots点状加载效果
typewriter打字机效果
blink闪烁效果

🔄 工具类别名

为了提高开发效率,MMS-SCSS 提供了常用的缩写别名:

缩写对应类说明
.f-row.flex-row水平排列
.f-col.flex-col垂直排列
.y-center.items-center垂直居中
.x-end.justify-end水平末尾对齐
html
<!-- 使用缩写 -->
<div class="f-row y-center x-end">
  <div>右对齐垂直居中内容</div>
</div>

Released under the MIT License.