UI 统一标准 · v3

智游大别山 · 设计系统组件库

全站视觉与交互的唯一标准:设计令牌 → 基础组件 → 布局模板 → 走查清单。先定标准,再改页面。

设计令牌 1 色阶 13 基础组件 21 布局模板 6 断点 4 容器 1200 px
0怎么用零配置,两个文件
样式
<link rel="stylesheet" href="https://ltdlt.cn/ui.css">
已由 nginx 自动注入全部对客页 </head>,写在页面里也无害(幂等)。
行为
<script src="https://ltdlt.cn/ui.js" defer></script>
同样已自动注入。提供 ui.toast / ui.loading / ui.confirm / ui.copy,并已接管原生 alert()
声明式行为
组件行为不用写脚本,加 data-ui-* 即可:
data-ui-dd 下拉 · data-ui-tip 气泡 · data-ui-tabs 选项卡 · data-ui-chip 胶囊 · data-ui-table 表格排序选行 · data-ui-confirm 二次确认
命名铁律
只用 .ui-* 命名空间(全站已核查零冲突),绝不再加 .box1 / .red-btn / .test 这类随手命名。
1色板全站只允许这 13 档 + 4 语义色
brand-900#0f3d12
brand-800#15521a
brand-700#1a5c1a 主色
brand-600#206b20
brand-500#2d8a2d 亮色
brand-400#4caf50
brand-300#8cc98c
brand-100#e8f5e8
brand-50#f2f8f2
ink#1f2b21
ink-2#4a5a4f
ink-3#8a9a90
gold#d9a441 点缀
red#c8102e 价格

语义色:--c-success #2d8a2d · --c-warning #d9a441 · --c-danger #c8102e · --c-info #1a5c1a —— 语义色不引入外来色系,直接映射品牌阶。盘点实测:改造前全站 1079 种不同色值

2字号字重6 档,禁半像素
26px / 800
大标题 · 页面主标题
20px / 800
区块标题
17px / 700
卡片标题 · 列表主文案
15px / 400
正文 · 段落默认
13px / 400
辅助说明 · 次要信息
12px / 700
标签 · 脚注 · 单位

行高:正文 1.7/标题 1.35。改造前 40+ 档字号,含 12.5 / 13.5 / 13.8 等 10 种半像素值。

3间距 / 圆角 / 阴影8px 栅格
--sp-1~9
4 8 12 16 20 24 32 48 64
圆角 4 档
阴影 2 档
栅格口径
间距必须是 4 的倍数;页面左右留白 --sp-page 14px(桌面提到 20px)。

改造前:圆角 25 种、阴影 218 种、间距组合 246 种43% 的 px 不是 4 的倍数。

4Button4 种类型 × 3 尺寸 × 5 状态
四种类型(只用这四种)

盘点实测:改造前按钮类名 98 种写法(fav-btn-icon / card-cta / cta-btn / detail-cta / zx-share-btn…)→ 收敛为这 4 种 + --warning

三种尺寸

触摸目标 ≥44px;移动端底部主操作固定用 --lg + --block

五种状态

悬停 / 点击效果用鼠标试。禁用态:brand-100 底 + ink-3 字。 改造前全站仅 71 处 disabled,几乎缺失。

整宽 / 深底
5表单Input · Select · Checkbox · Radio · FormItem
Input / Select / Textarea(含错误与禁用)
帮助文字:用于联系您,不会公开展示
错误态:请输入 11 位手机号
Checkbox / Radio / 开关 / 提交反馈

改造前全站表单 仅 48% 有 label0 个错误提示容器 → 本组件补齐。

6Table / Pagination点表头排序 · 点行选中
Table(含排序、选中、数值右对齐、操作列、空态)
板块 线路 名额 操作
避暑康养天堂寨清凉三日128
漂流玩水进士河漂流一日76
精品民宿云间民宿两日212
结伴同行周末徒步搭子39

移动端(加 .ui-table--cards)整表降级为卡片列表,左右不横滚;每个 <td> 需带 data-th="列名" 作为卡片里的字段名。

移动端卡片化示例(.ui-table--cards,把窗口调窄看效果)
板块线路名额
避暑康养 天堂寨清凉三日 128
漂流玩水 进士河漂流一日 76
Pagination(默认 / 当前页 / 禁用 / 加载 / 省略号)
共 12 页 / 236 条

移动端自动收紧尺寸并隐藏「每页条数 / 跳页」,保证一行放得下。

7Card / Cell / Steps / Progress / Switch内容容器标准
Card(页头 / 正文 / 操作区)
天堂寨4A 景区
大别山主峰所在地,森林覆盖率 96%,夏季平均气温 22℃,是鄂东避暑首选。
Steps / Progress
选品 2填单 3完成

开关 / 头像 / 分隔
9Toast / Loading / Modal / Drawer / Alert交互反馈
Toast(默认可点)

已接管原生 alert() —— 全站 4256 处系统弹窗自动变本组件,无需改生成产物。

Loading / Modal / Drawer

Drawer / Actionsheet 见 布局模板。确认框为异步回调式, 不接管原生 confirm/prompt(返回值被同步代码使用)。

Alert 状态提示条(info / success / warning / error)
i 提示本页数据每天 06:00 自动更新。
提交成功我们会在 1 个工作日内联系您。
! 注意该线路名额紧张,建议提前 3 天预订。
× 加载失败网络不太稳定,请稍后重试。
10Skeleton / Empty / Loading每个页面都必须有这三态
Skeleton 骨架屏
Empty 空状态
🍃暂无内容 换个筛选条件试试,或稍后再来看看
Error 错误状态
加载失败 网络好像不太稳定,请点击重试
Loading 两种用法

行内加载用 .ui-spin.ui-btn.is-loading;全屏用 ui.loading(msg).close()

.ui-spin

改造前:loading 13963 / empty 6350 / error 5971 处,写法各异、视觉不统一 → 收敛为以上三种标准态。

11布局模板容器 1200px · 页头/内容/侧栏/页脚 · 12 列栅格
页面骨架(缩略示意)
页头 .ui-container + .ui-page-hd(标题 / 副标题 / 操作区)
侧栏
.ui-aside-nav
.ui-container--narrow(阅读 720)/默认 1200
ui-col-12
ui-col-6
ui-col-6
4
4
4
页脚 .ui-page-ft
容器三档
默认
.ui-container 最大 1200px
阅读
.ui-container--narrow 720px(文章/详情)
宽屏
.ui-container--wide 1440px(数据看板)
页头:标题 / 面包屑 / 操作区
避暑康养线路
309 条精选内容 · 每日 06:00 更新
区块标题 + 更多
编辑精选 查看全部 ›
正文内容区(.ui-card / .ui-cells / .ui-grid 自由组合)
Actionsheet 底部动作面板
分享给微信好友
复制链接
删除
取消

移动优先:默认单列满宽;≥768px 起按栅格分栏;≥1024px 才出现侧栏。所有分栏在 <768px 自动收成整宽,避免挤压。

12状态覆盖矩阵每个组件必须覆盖的状态清单
组件默认悬停点击禁用加载 错误成功警告移动端
Button✓ warning整宽 / ≥44px
Input / Textarea✓ is-error16px 防缩放
Select原生控件
Checkbox / Radio18px 热区
Switch46×27
Card✓ 骨架卡单列
Modal / Drawer抽屉贴底
Tabs横滑
Table✓ 行✓ 选行✓ 骨架行✓ 空态降级卡片
Pagination收紧 / 隐藏跳页
Toast82vw 上限
Tooltip✓ 触摸点击开合
Dropdown转底部面板
Breadcrumb横滑
Alertinfo自动换行
Empty / Error✓ 重试居中铺满
Loading / Skeleton减动效适配
Grid / Container12→整宽

「—」= 该状态对语义不适用。凡标 ✓ 的,组件库都已实现,可直接取用。

13移动端表现移动优先,四档断点
sm 640px
大屏手机横屏 / 小平板:表格转卡片、分页收紧、下拉转底部面板、气泡改点击
md 768px
平板:容器留白 14→24px、表单标签加宽、栅格 .ui-col-md-* 生效
lg 1024px
小桌面:侧栏出现(.ui-layout--aside)、.ui-col-lg-* 生效
xl 1280px
桌面:容器封顶 1200px 并居中,不再拉宽
触摸目标
所有可点元素高度 ≥44px(分页 32px 是唯一例外,已用间距补偿)
减动效
prefers-reduced-motion: reduce 时关闭 spin / shimmer / 入场动画
安全区
贴底组件(抽屉 / 动作面板 / 页脚)自动加 env(safe-area-inset-bottom)

改造前全站有 约 16 个随手断点(320/340/360/420/430/480/520/560/720/760/880/920/960/1080/1200)→ 收敛到这 4 档。

14设计走查清单改完页面逐条打勾
颜色只用令牌:--c-* 色板 + 4 语义色,页面里不出现裸十六进制色值
字号只用 --fs-1~6 六档,无 12.5 / 13.5 / 13.8 这类半像素
间距全是 4 的倍数,优先用 --sp-1~9
圆角只用 4 档、阴影只用 2 档,无随手写值
按钮只用 .ui-btn 的 4 种类型,不再新增按钮类名
所有可点元素有 hover / active 反馈,能点的长按有 :active
提交类按钮有 disabled.is-loading 两态
表单每个字段有 label、必填有 .ui-req、出错有 .ui-err 文案
列表 / 表格有 加载(骨架屏)、空、错误 三态,错误态带「重试」
页头有标题 + 面包屑 + 操作区;页脚统一;容器不超过 1200px
栅格用 .ui-grid + .ui-col-*,不自己写死宽度
所有 <img>alt、有 loading="lazy",单图不超 300KB
弹窗 / 提示统一用 ui.toast / ui.confirm,不再用原生 alert()(已自动接管)
!important(并轨层除外);无重复 <style>
文案里不出现「坐标 / 汇报人 / AI 生成 / 零外链 / 站内闭环」等禁字眼
移动端 430px 宽实机截图看过,无横向滚动、无文字溢出、无版式散架
改完跑 bump_site_ver.sh 刷版本号,并做 after 截图留档