统一品牌
通过 --mci-* token 收束颜色、阴影、圆角、间距、骨架屏和动效。
吾码UI(Microi.UI / MCI-UI)面向 Vue 3 PC 网站、响应式网站、移动端 H5、uni-app 项目, 提供品牌 token、主题运行时、跨端基础组件、骨架屏、安全区、动效和 AI 生成规范。
通过 --mci-* token 收束颜色、阴影、圆角、间距、骨架屏和动效。
AI 不再临时写散装 CSS,而是默认使用 MCI-UI 组件与项目级 mci-* 封装。
同一套主题能力覆盖 PC 网站、企业站、产品站、移动端商城和 uni-app。
第三方库继续负责复杂能力,最终视觉由吾码UI统一承载。
Microi.UI 主要服务官网、企业站、产品站、文档站、移动端应用、会员中心、活动页、独立 Web 应用等非后台管理系统场景。 PC 后台管理系统仍然以 Element Plus 为主,但主题变量、骨架屏、动效密度和品牌识别也应该逐步向 --mci-* 对齐。
所有移动端和 PC 网站项目默认支持明暗模式、九套主色、圆角/扁平形态和动效偏好。白色与黄色主色必须使用 --mci-text-on-primary,避免文字对比度不足。
src/theme 是品牌 token 源头,src/web 服务 PC/响应式网站,src/uniapp 服务移动端项目。新增组件必须双端优先,颜色、圆角、阴影和安全区都走 --mci-* 变量。
import { createApp } from 'vue';
import MciUI, { initMciDesign } from '@microi/mci-ui/web';
import '@microi/mci-ui/theme';
initMciDesign({ theme: 'light', palette: 'red', shape: 'rounded', motion: 'full' });
createApp(App).use(MciUI).mount('#app');import { createSSRApp } from 'vue';
import App from './App.vue';
import MciUI, { initMciDesign } from '@/mci-ui/uniapp/index.js';
import '@/mci-ui/theme/index.css';
export function createApp() {
const app = createSSRApp(App);
initMciDesign({ theme: 'light', palette: 'red', shape: 'rounded' });
app.use(MciUI);
return { app };
}运行时会写入本地存储,并在支持 DOM 的环境中设置 data-theme、data-mci-palette、data-mci-shape、data-mci-motion。
import { initMciDesign, setMciTheme, setMciPalette, setMciShape, setMciMotion, toggleMciTheme } from '@microi/mci-ui/runtime';
initMciDesign({ theme: 'light', palette: 'red', shape: 'rounded', motion: 'full' });
setMciTheme('dark');
setMciPalette('blue');
setMciShape('flat');
setMciMotion('reduced');
toggleMciTheme();官网、文档站、企业站、移动端应用经常混用第三方 UI、Markdown、富文本和项目老 CSS。MCI-UI 通过命名空间、根容器、token 和主题层收口,尽量避免样式被其它组件覆盖。
.mci-page 或 data-mci-ui-root 包裹。mci- 前缀,不写泛化 button、.card、img。--mci-* 控制,不直接改库内部样式。下面是按吾码UI设计 token 绘制的组件截图式预览。真实项目中组件会使用同一套 --mci-* 变量、主题 runtime、圆角/扁平模式、骨架屏和安全区规则,因此不同业务系统会保持统一的 Microi 品牌质感。
页面 shell、安全区、入场动效、结构化背景。
移动端顶部导航,兼容沉浸式状态栏和返回操作。
品牌按钮,内置 hover、focus、pressed、sheen 等反馈。
柔和阴影、清晰边界、扫光层次。
通用内容卡片,适合信息承载、入口、统计和商品容器。
统一区块标题、副标题、eyebrow 和操作区。
列表、菜单、设置、服务入口的标准单元格。
分段标签,适合分类、状态、筛选和资产切换。
资产、收益、积分、数据看板的强视觉指标卡。
底部固定操作栏,内置底部安全区和按钮布局。
用户头像,图片失败时自动用昵称/首字兜底。
商品、权益、内容、服务项目都可复用的商业卡片。
支持 list、grid、banner、detail、metric 的骨架屏。
loading、empty、error 的统一动态数据状态。
文字内容保留舒适留白,图片保持满宽展示。
文章、协议、商品详情、公告详情的移动端富文本容器。
主题、palette、圆角/扁平、动效偏好的统一设置面板。
多行输入内容...
表单项,统一 label、必填、帮助、错误和输入框状态。
列表页筛选栏,适合搜索、状态过滤和批量动作。
余额、积分、资产、数据面板的通用资产卡。
标准订单卡服务项目 / 交易记录 / 审批事项
¥299订单、审批、工单、任务记录的业务列表卡片。
弹窗内容展示区
弹窗组件,支持遮罩、标题、内容区和底部操作。
上传容器,统一选择、提示、文件列表和交互反馈。
时间轴,适合状态流转、操作日志和活动记录。
步骤条,适合流程、订单、审批和新手引导。
用 MciPage 做页面 shell,区块统一交给 MciSection,首屏、网格、入场动效和结构化背景一套成型。
列表页必须有骨架屏、状态切换和稳定网格。接口未返回前不显示空态,商品/内容卡片保持统一比例。
资产指标用强视觉卡承载,底部操作栏必须兼容安全区,主次按钮层级明确,移动端点击有按压反馈。
筛选、订单卡、步骤条、时间轴应该作为一个业务组合出现,既能承载查询,也能表达状态流转。
无论是企业官网、移动端会员中心、服务平台、商品交易、资产数据、工单审批还是内容展示,都应该优先沉淀可复用的业务 UI 原子。
MciPage、MciSection、MciCard、主题 palette、页面入场动效。MciNavbar、MciCell、MciAvatar、MciThemePanel、安全区。MciTabs、MciProductCard、MciSkeleton、筛选与分页加载。MciMetricCard、MciAssetCard、MciDataState、状态标签。MciOrderCard、MciSteps、MciTimeline、头像信息行与状态流转。MciRichText、MciActionBar、图片满宽与文字留白。MciSkeleton banner、结构化背景、扫光动效、品牌按钮。| 场景 | 页面结构 | 推荐组件 |
|---|---|---|
| 企业官网 / 产品站 | Hero → 核心能力 → 信任证据 → CTA | MciPage、MciSection、MciCard、MciButton |
| 移动端会员中心 | 身份头 → 资产概览 → 常用入口 → 设置 | MciNavbar、MciAvatar、MciAssetCard、MciCell |
| 资产与数据看板 | 异常 → 指标 → 趋势 → 筛选 → 明细 | MciMetricCard、MciFilterBar、MciDataState、MciSkeleton |
| 订单 / 审批 / 工单 | 当前状态 → 主操作 → 阶段 → 时间线 | MciOrderCard、MciSteps、MciTimeline、MciModal |
Microi.UI 的移动端目标不是把后台页面缩小到手机里,而是让客户、员工、会员、师傅、运营人员打开后能立即感受到产品级体验。AI 在生成移动端或 H5/小程序/App 页面时,应默认把下面规则作为验收门槛,不需要用户额外提示。
MciBottomNav 或等价封装,必须包含真实图标、文字、激活态、角标和稳定点击区域。MciHeroPanel 或 .mci-mobile-hero,标题需适配 375px / 430px 宽度,按钮不能被浮层遮挡。移动端常用公共样式包括 .mci-mobile-hero、.mci-mobile-panel、.mci-mobile-bottom-nav、.mci-mobile-rich-card、.mci-mobile-meta-grid、.mci-mobile-option-grid、.mci-mobile-photo-grid、.mci-mobile-sheet、.mci-mobile-chart-card、.mci-mobile-kpi-strip 和 .mci-mobile-empty-result。当同一结构出现在两个以上页面时,应沉淀为 Mci* 组件或项目级 mci-* 封装。
“主流、高级、好看”并不是一种可以直接执行的设计要求。吾码UI把常见产品目标归纳为六种内置模式:每个页面选择一种主模式,最多叠加两种辅助能力,再用同一套 --mci-* token 和 Mci* 组件实现。这样既能形成明显差异,也不会把多个视觉方向堆成拼盘。
用单一观点、超大标题、章节节奏和克制 CTA 建立首屏记忆。
适合官网、产品发布、品牌介绍先完成登录、创建、支付、权限、设置和异常恢复,再进行视觉装饰。
适合 SaaS、商城、会员与业务系统通过编辑式留白、字号对比、不对称栅格建立清晰阅读顺序。
适合内容、创意、活动与作品展示用产品对象、空间层次或 Canvas/WebGL 辅助理解,并提供静态降级。
适合 3D、硬件、空间和互动产品用 0—1200ms 时间线依次呈现标题、说明和主操作,避免持续噪声。
适合发布页、活动页与重点功能入口先异常、再趋势、后明细;筛选回显、数值格式和状态必须一致。
适合运营、监控、经营和分析场景下面的案例完全使用吾码自有内容、--mci-* token、mci-* 类名和本地资源实现,不依赖外部图片、字体、组件库或网络请求。它用于展示六种模式之间的结构差异、明暗主题、响应式重排、筛选、表单校验、加载和成功反馈;业务项目应替换成自己的信息架构和合法素材,而不是逐像素复制案例。
视觉案例不能只有“默认状态”。登录、注册、订阅、支付、搜索、设置、创建和编辑等流程,至少应覆盖下面状态,并在同一容器中稳定切换,不能因为骨架屏、错误提示或分页出现而导致页面跳动。
整站、复杂应用或需要多人和 AI 持续维护的项目,应在项目根目录维护 MCI-DESIGN.md。它不是灵感说明,也不是另一份脱离源码的色板,而是人和 AI 都能执行、检查和持续演进的界面契约。
| 层次 | 保存什么 | 解决什么问题 |
|---|---|---|
| 机器可读层 | 颜色、字体、间距、圆角、层级、组件状态、token 引用和有意省略 | 准确复用、结构检查、差异审查、生成运行时变量 |
| 人类可读层 | 用户任务、情绪目标、具体视觉隐喻、信息层级、选择理由和明确禁区 | 在契约未覆盖的新场景中继续作出一致判断 |
精确值会因项目而变,设计理由决定取舍方向。只有 token 会让接手者不知道“为什么”,只有“高级、现代、极简”一类形容词又无法稳定实现。推荐先写“用户任务 → 主情绪 → 具体视觉隐喻 → 三条应当/禁止”,最后才选择颜色与组件。
例如,“安静的专业工作台”会自然导出中性色表面、细边框、紧凑卡片、宽松区块留白,也自然排除大面积炫光、彩虹渐变和所有操作同权;这比堆叠抽象形容词更可执行。
核心章节按顺序维护:产品与用户、视觉性格、颜色、字体、布局与间距、层级与形状、组件与状态、页面模式、动效与媒体、响应式与安全区、可访问性/性能/降级、应当与禁止。
contract:
version: 1
mode: data-workspace
intent: 安静、清晰、可快速扫描的专业工作台
tokens:
color:
canvas: var(--mci-bg-base)
surface: var(--mci-bg-card)
textPrimary: var(--mci-text-primary)
primary: var(--mci-color-primary)
danger: var(--mci-color-danger)
spacing:
compact: 8px
card: 16px
section: 24px
shape:
card: var(--mci-shape-card)
elevation:
card: var(--mci-shadow-card)
cardHover: var(--mci-shadow-card-hover)
components:
dataCard:
background: "{tokens.color.surface}"
radius: "{tokens.shape.card}"
states:
default: { elevation: "{tokens.elevation.card}" }
hover: { elevation: "{tokens.elevation.cardHover}", lift: -2px }
focus: { outline: "{tokens.color.primary}" }
selected: { border: "{tokens.color.primary}" }token 要按用途命名,组件通过 {路径} 引用共享值;颜色透明度必须说明叠加底色。组件按适用场景定义 default、hover、focus、pressed、loading、empty、error、disabled、selected、success,不能只写默认态。
每次变更依次检查:
{路径} 引用存在且无循环。AI 或开发者接手页面时,先完整读取契约和三条禁区再实现;如果页面发生结构性调整,必须同步更新契约。颜色、间距、圆角、组件状态和设计理由都不能只存在于截图或聊天记录中。
| 气质 | 颜色与材质 | 形状与节奏 | 不应出现 |
|---|---|---|---|
| 温暖友好 | 暖白或浅沙底、自然低饱和强调色、轻触感层次 | 圆润或轻有机形、外部留白宽松 | 冷硬霓虹、尖锐切角、密集高对比 |
| 深色发光 | 深色分层、少量青蓝紫状态光、高对比文字 | 边界精确、密度紧凑、短促状态动效 | 大面积炫光、彩虹状态、持续漂移 |
| 雾感通透 | 灰白低彩、细线、轻透明表面 | 大留白、轻圆角、慢速淡入 | 厚重投影、不透明色块堆叠、过度模糊 |
这些不是可以整套复制的皮肤,而是“设计理由如何推导 token、组件与禁区”的示范。一个页面只选一个主气质,辅助气质最多两项。
吾码后台的卡片模式服务于高频浏览和操作,不是营销海报墙。统一信息顺序如下:
| 区域 | 内容 | 规则 |
|---|---|---|
| 身份 | 真实图片、头像或首字标记 | 有图才显示媒体;无图使用 40—44px 紧凑标记,不生成大面积装饰占位图 |
| 标题 | 主标题、状态、必要副标题 | 标题最多两行,状态标签只表达状态或分类 |
| 数据 | 2—4 个关键字段、金额或负责人 | 主次文字和数字层级固定,不把每个字段都做成胶囊 |
| 辅助 | 更新时间、创建时间、少量标签 | 与正文用细分隔线或留白区分 |
| 操作 | 主动作、次动作、“更多” | 一个主动作、一至两个次动作;危险动作降权并收进菜单 |
这条规则让 AI 生成的页面从第一版开始就具备统一主题、骨架屏、安全区、动效和品牌 token,而不是每个项目临时拼装样式。
使用 Microi.UI / MCI-UI 开发此 Vue 3/uni-app 页面。
遵循 microi.skills/ui-design/SKILL.md 和 microi.skills/microi-ui/SKILL.md。
页面必须支持 light/dark、黑白红橙黄绿青蓝紫 palette、rounded/flat、骨架屏、安全区、页面入场和点击反馈。
业务页面不要硬编码颜色/阴影/圆角,必须使用 --mci-* token 或 MciPage/MciButton/MciCard 等组件。MciPage 或等价页面 shell,内容区是否优先用 MciSection。MciCell,主题设置是否可用 MciThemePanel。MciTabs、MciMetricCard、MciAssetCard、MciProductCard。initMciDesign() 或项目主题服务设置主题。node --check / npm pack --dry-run。复杂表格、日期选择、上传、弹窗、表单校验等成熟能力,可以继续使用 Element Plus、uni-ui、TDesign、uView、FirstUI 等。但项目最终呈现出来的视觉,应该由 --mci-* token 和 mci-* 组件封装统一承载。
mci-* wrapper 或项目级组件封装。--mci-*。