基础样式类
开箱即用的按钮、输入框、开关、卡片样式类,引一个 CSS 文件就有全套控件底子。
global.css 除了设计令牌,还内置了一组高频控件的样式类。轻量插件直接写 class 就有合格的控件外观,不必引组件库、不必手写样式;重度界面则可以与组件库配合使用。
按钮
<button class="btn">默认按钮</button>
<button class="btn btn-solid">主操作</button>
<button class="btn btn-danger">危险操作</button>
<button class="btn btn-sm">小尺寸</button>
<button class="icon-btn" title="复制">
<span class="i-z-copy w-4 h-4" />
</button>
| 类 | 说明 |
|---|---|
.btn | 中性按钮:内嵌底色 + 发丝线描边,hover 反馈 |
.btn-solid | 主色实心,一屏最多出现一个(主操作) |
.btn-danger | 危险色实心,用于删除等不可逆操作 |
.btn-sm | 小尺寸修饰,可与上面任意组合 |
.icon-btn | 28×28 透明图标按钮,配图标类使用 |
表单
<input class="input" placeholder="请输入内容" />
<select class="select">
<option value="a">选项 A</option>
<option value="b">选项 B</option>
</select>
<label class="flex items-center gap-2 cursor-pointer">
<input type="checkbox" class="toggle" v-model="enabled" />
<span class="toggle-slider" />
<span>开机自动同步</span>
</label>
| 类 | 说明 |
|---|---|
.input | 文本输入框:--field 底色、聚焦时主色光圈(--focus-ring) |
.select | 下拉框:与 .input 同构,原生弹出面板跟随系统明暗 |
.toggle + .toggle-slider | 开关:checkbox 驱动,选中态主色。两个元素必须成对出现 |
卡片与浮层
<div class="card p-4">
<h3 class="text-sm font-medium">卡片标题</h3>
<p class="text-xs text-[var(--ink-2)] mt-1">卡片说明文字</p>
</div>
| 类 | 说明 |
|---|---|
.card | --surface 底色 + --radius-lg 圆角,内容区最常用的容器 |
.floating-shell / .floating-panel | 无边框浮窗形态:大圆角 + 四周留边投影,做脱离宿主的悬浮小窗时使用 |
全局细节
这些是 global.css 顺手处理好的事,知道即可,不用自己做:
- 高度链:
html、body、#app均为height: 100%,插件根布局可以直接用百分比高度撑满。 - 正文排版:
body上设定 14px / 1.5 倍行距 /--ink文字色 /--bg-color底色。 - 文本选中:选中态是主色 22% 透明度,不再是默认的浏览器蓝。
- 键盘焦点:
:focus-visible显主色焦点环(鼠标点击不显示,键盘导航才显示)。 - 滚动条:6px 窄滚动条,圆角 thumb,hover 加深,track 透明——与宿主完全一致。
与 UnoCSS 配合
工程里配好 UnoCSS 后(见图标体系的完整配置),原子类与这组样式类可以混用:
<div class="card p-4 flex items-center justify-between">
<div>
<p class="text-sm text-[var(--ink)]">自动保存</p>
<p class="text-xs text-[var(--ink-2)] mt-0.5">每 30 秒同步一次</p>
</div>
<input type="checkbox" class="toggle" v-model="autoSave" />
<span class="toggle-slider" />
</div>
.toggle 与 .toggle-slider 必须相邻(样式选择器是 input:checked + .toggle-slider),中间插别的元素开关就不动了。控件之外还需要更复杂的组件(消息提示、确认弹窗、快捷键录制……)?看通用组件。