Skip to content

设计令牌 ​

Moongate Vue 的所有样式都基于 CSS 变量(设计令牌)构建。你可以通过覆盖这些变量来定制主题。

快速参考 ​

常用变量速查(点击展开)

颜色

变量说明浅色值深色值
--ui-primary主题色#1e40af#3b82f6
--ui-text主要文本#0f172a#e28f0
--ui-bg页面背景#f9fafb#0f172a
--ui-bg-elevated浮层背景#ffffff#131c31
--ui-border默认边框#cbd5e1#2d3748

间距

变量值说明
--ui-spacing-sm8px小间距
--ui-spacing-md12px中间距
--ui-spacing-lg16px大间距
--ui-spacing-xl24px超大间距

排版

变量值说明
--ui-typography-family-sansInter, system-ui, sans-serif正文字体
--ui-typography-family-monoJetBrains Mono, Fira Code, monospace代码字体
--ui-typography-size-body15px正文字号

动效

变量值说明
--ui-motion-duration-neural150ms快速过渡
--ui-motion-duration-fluid300ms流畅过渡
--ui-motion-easing-lunarcubic-bezier(0.25, 1, 0.5, 1)月晕缓动

颜色 ​

主题色 ​

变量说明浅色模式深色模式
--ui-primary主题色#0284c7#3b82f6
--ui-success成功色#059669#34d399
--ui-warning警告色#b45309#fbbf24
--ui-error错误色#b91c1c#f87171
--ui-highlight高亮色#0369a1#7dd3fc

文本颜色 ​

变量说明浅色模式深色模式
--ui-text主要文本#0f172a#e2e8f0
--ui-text-dim次要文本#475569#cbd5e1
--ui-text-muted占位/弱化文本#64748b#7a8c9e
--ui-text-inactive非活跃文本#7a8c9e#94a3b8
--ui-selection-foreground选中行前景(实底选中背景)#0f172a#ffffff

背景颜色 ​

变量说明浅色模式深色模式
--ui-bg页面背景#f9fafb#0f172a
--ui-bg-elevated浮层背景(卡片/弹窗)#ffffff#131c31
--ui-bg-muted弱背景(表头/悬停)#f1f5f9#1e293b
--ui-bg-hover悬停背景(半透明)#0284c715#3b82f620
--ui-bg-active激活背景(半透明)#0284c725#3b82f640
--ui-primary-solid实底强调背景(其上白/浅字)#1e40af#2563eb

边框颜色 ​

变量说明浅色模式深色模式
--ui-border默认边框#cbd5e1#2d3748
--ui-border-dim弱边框#94a3b8#475569
--ui-border-hover悬停边框#0284c7#3b82f6
--ui-border-subtle极弱边框#cbd5e1#2d3748

叠加层 ​

变量说明浅色模式深色模式
--ui-overlay-scrim模态框/抽屉遮罩色#00000080#000000b3
--ui-code-dim无用代码压暗#00000022#00000022

语法高亮(代码块) ​

变量说明浅色模式深色模式
--ui-function函数#0369a1#87cefa
--ui-operator运算符#64748b#7a8c9e
--ui-comment注释#55647c#a5b4cb
--ui-variable变量#0f172a#e2e8f0
--ui-punctuation标点#64748b#94a3b8

括号颜色(配对标亮) ​

变量浅色模式深色模式
--ui-bracket1#0284c7#7dd3fc
--ui-bracket2#059669#34d399
--ui-bracket3#b45309#fbbf24
--ui-bracket4#7e22ce#c084fc
--ui-bracket5#0e7490#3b82f6
--ui-bracket6#64748b#94a3b8

Git 颜色 ​

变量说明浅色模式深色模式
--ui-git-added新增#059669#34d399
--ui-git-modified修改#b45309#fbbf24
--ui-git-deleted删除#b91c1c#f87171
--ui-git-untracked未跟踪#64748b#94a3b8
--ui-git-ignored忽略#94a3b8#2d3748

间距 ​

变量值说明
--ui-spacing-xs4px极小间距
--ui-spacing-sm8px小间距
--ui-spacing-md12px中间距
--ui-spacing-lg16px大间距
--ui-spacing-xl24px超大间距
--ui-spacing-2xl32px2 倍大间距
--ui-spacing-3xl48px3 倍大间距

圆角 ​

变量值说明
--ui-radius-none0px无圆角(默认)
--ui-radius-sm2px小圆角

排版 ​

字体 ​

变量值说明
--ui-typography-family-sansInter, system-ui, -apple-system, sans-serif无衬线字体
--ui-typography-family-mono'JetBrains Mono', 'Fira Code', monospace等宽字体(代码)

字号 ​

变量值说明
--ui-typography-size-body15px正文字号
--ui-typography-size-lg18px大号文字(标题、大按钮等)
--ui-typography-size-xl24px浮层关闭按钮 / 更大强调
--ui-typography-size-title20px浮层标题(Modal/Drawer)
--ui-typography-size-display40px首屏大标题(Hero 基准)
--ui-typography-size-display-lg48px首屏大标题(桌面端增强)
--ui-typography-size-display-xl60px首屏大标题(宽屏增强)
--ui-typography-size-small12px小字号
--ui-typography-size-code13px代码字号

行高 ​

变量值说明
--ui-typography-line-height1.6正文行高
--ui-typography-line-height-code1.45代码行高

控件行高 ​

交互控件使用组件内联的 line-height: 1.4(button.css / input.css / select.css / badge.css / tabs.css / pagination.css,与 form.css、toast.css 一致)。 它不是令牌;控件高度契约见下一节。

控件尺寸档位 ​

控件高度由「字号令牌 + 间距令牌 + 显式行高 1.4」决定,不继承宿主的 line-height: 宿主若声明 button,input,select,textarea { line-height: inherit }(VitePress 就是), 不声明行高的控件会被抬到宿主行高(曾出现输入框 42px、徽章 40px,比默认按钮 37px 还高)。

各组件 size prop 的默认档均为 md(Container 为 lg)。Chromium 实测高度(含边框,border-box):

组件smmd(默认)lg
Button25px37px49px
Input27px39px51px
Textarea(rows=1)27px39px51px
Select(原生)27px39px51px
Tabs 标签项27px39px51px
Pagination 页码按钮27px39px51px
Badge(仅 sm/md 两档)25px37px—
Dropdown 菜单项23px33px45px

输入类控件比 Button 高 2px 是 1px 上下边框所致(Button 无边框)。

动效 ​

时长 ​

变量值说明
--ui-motion-duration-neural150ms快速过渡(悬停、聚焦)
--ui-motion-duration-fluid300ms流畅过渡(面板展开)
--ui-motion-duration-lunar600ms慢速过渡(月晕效果)

缓动函数 ​

变量值说明
--ui-motion-easing-lunarcubic-bezier(0.25, 1, 0.5, 1)月晕缓动曲线

响应式断点 ​

变量值说明
--ui-breakpoints-mobile640px手机断点
--ui-breakpoints-tablet768px平板断点
--ui-breakpoints-desktop1024px桌面断点
--ui-breakpoints-wide1280px宽屏断点

层级 ​

变量值说明
--ui-z-index-base1基础层级
--ui-z-index-sticky100固定/粘性元素
--ui-z-index-overlay500遮罩层
--ui-z-index-modal1000模态框
--ui-z-index-tooltip1500提示层

物理效果 ​

变量值说明
--ui-physics-tidal-offset4px潮汐偏移量
--ui-physics-glow-alpha-night0.12暗色模式月晕透明度
--ui-physics-glow-alpha-dawn0.06亮色模式月晕透明度
--ui-physics-focus-ring2px聚焦环宽度
--ui-physics-border-crease1px边框折痕宽度

主题定制示例 ​

css
:root {
  /* 修改主题色 */
  --ui-primary: #8b5cf6;

  /* 修改间距 */
  --ui-spacing-md: 16px;

  /* 修改字体 */
  --ui-typography-family-sans: 'Noto Sans SC', system-ui, sans-serif;
}

/* 暗色模式定制 */
.dark {
  --ui-primary: #a78bfa;
  --ui-bg: #0a0a0a;
}

样式引入 ​

见安装指南 · 样式引入。

使用方式 ​

vue
<style>
/* 在组件中使用设计令牌 */
.my-component {
  color: var(--ui-primary);
  padding: var(--ui-spacing-md);
  border: var(--ui-physics-border-crease) solid var(--ui-border);
  transition: all var(--ui-motion-duration-neural) var(--ui-motion-easing-lunar);
}
</style>

Released under the MIT License