全站视觉与交互的唯一标准:设计令牌 → 基础组件 → 布局模板 → 走查清单。先定标准,再改页面。
<link rel="stylesheet" href="https://ltdlt.cn/ui.css">
</head>,写在页面里也无害(幂等)。<script src="https://ltdlt.cn/ui.js" defer></script>
ui.toast / ui.loading / ui.confirm / ui.copy,并已接管原生 alert()。data-ui-* 即可:.ui-* 命名空间(全站已核查零冲突),绝不再加 .box1 / .red-btn / .test 这类随手命名。语义色:--c-success #2d8a2d · --c-warning #d9a441 · --c-danger #c8102e · --c-info #1a5c1a
—— 语义色不引入外来色系,直接映射品牌阶。盘点实测:改造前全站 1079 种不同色值。
行高:正文 1.7/标题 1.35。改造前 40+ 档字号,含 12.5 / 13.5 / 13.8 等 10 种半像素值。
--sp-page 14px(桌面提到 20px)。改造前:圆角 25 种、阴影 218 种、间距组合 246 种,43% 的 px 不是 4 的倍数。
盘点实测:改造前按钮类名 98 种写法(fav-btn-icon / card-cta / cta-btn / detail-cta / zx-share-btn…)→ 收敛为这 4 种 + --warning。
触摸目标 ≥44px;移动端底部主操作固定用 --lg + --block。
悬停 / 点击效果用鼠标试。禁用态:brand-100 底 + ink-3 字。
改造前全站仅 71 处 disabled,几乎缺失。
改造前全站表单 仅 48% 有 label、0 个错误提示容器 → 本组件补齐。
| 板块 | 线路 | 名额 | 操作 |
|---|---|---|---|
| 避暑康养 | 天堂寨清凉三日 | 128 | |
| 漂流玩水 | 进士河漂流一日 | 76 | |
| 精品民宿 | 云间民宿两日 | 212 | |
| 结伴同行 | 周末徒步搭子 | 39 |
移动端(加 .ui-table--cards)整表降级为卡片列表,左右不横滚;每个 <td> 需带
data-th="列名" 作为卡片里的字段名。
| 板块 | 线路 | 名额 |
|---|---|---|
| 避暑康养 | 天堂寨清凉三日 | 128 |
| 漂流玩水 | 进士河漂流一日 | 76 |
移动端自动收紧尺寸并隐藏「每页条数 / 跳页」,保证一行放得下。
已接管原生 alert() —— 全站 4256 处系统弹窗自动变本组件,无需改生成产物。
行内加载用 .ui-spin 或 .ui-btn.is-loading;全屏用 ui.loading(msg).close()。
改造前:loading 13963 / empty 6350 / error 5971 处,写法各异、视觉不统一 → 收敛为以上三种标准态。
.ui-container 最大 1200px.ui-container--narrow 720px(文章/详情).ui-container--wide 1440px(数据看板).ui-card / .ui-cells / .ui-grid 自由组合)移动优先:默认单列满宽;≥768px 起按栅格分栏;≥1024px 才出现侧栏。所有分栏在 <768px 自动收成整宽,避免挤压。
| 组件 | 默认 | 悬停 | 点击 | 禁用 | 加载 | 错误 | 成功 | 警告 | 移动端 |
|---|---|---|---|---|---|---|---|---|---|
| Button | ✓ | ✓ | ✓ | ✓ | ✓ | — | — | ✓ warning | 整宽 / ≥44px |
| Input / Textarea | ✓ | ✓ | ✓ | ✓ | — | ✓ is-error | — | — | 16px 防缩放 |
| Select | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | — | 原生控件 |
| Checkbox / Radio | ✓ | ✓ | ✓ | ✓ | — | — | — | — | 18px 热区 |
| Switch | ✓ | ✓ | ✓ | ✓ | — | — | — | — | 46×27 |
| Card | ✓ | ✓ | — | — | ✓ 骨架卡 | — | — | — | 单列 |
| Modal / Drawer | ✓ | ✓ | ✓ | ✓ | — | — | — | — | 抽屉贴底 |
| Tabs | ✓ | ✓ | ✓ | ✓ | — | — | — | — | 横滑 |
| Table | ✓ | ✓ 行 | ✓ 选行 | — | ✓ 骨架行 | ✓ 空态 | — | — | 降级卡片 |
| Pagination | ✓ | ✓ | ✓ | ✓ | ✓ | — | — | — | 收紧 / 隐藏跳页 |
| Toast | ✓ | — | — | — | — | ✓ | ✓ | ✓ | 82vw 上限 |
| Tooltip | ✓ | ✓ | ✓ 触摸 | — | — | — | — | — | 点击开合 |
| Dropdown | ✓ | ✓ | ✓ | ✓ | — | — | — | — | 转底部面板 |
| Breadcrumb | ✓ | ✓ | ✓ | — | — | — | — | — | 横滑 |
| Alert | info | — | — | — | — | ✓ | ✓ | ✓ | 自动换行 |
| Empty / Error | ✓ | — | ✓ 重试 | — | — | ✓ | — | — | 居中铺满 |
| Loading / Skeleton | ✓ | — | — | — | ✓ | — | — | — | 减动效适配 |
| Grid / Container | ✓ | — | — | — | — | — | — | — | 12→整宽 |
「—」= 该状态对语义不适用。凡标 ✓ 的,组件库都已实现,可直接取用。
.ui-col-md-* 生效.ui-layout--aside)、.ui-col-lg-* 生效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 档。
--c-* 色板 + 4 语义色,页面里不出现裸十六进制色值--fs-1~6 六档,无 12.5 / 13.5 / 13.8 这类半像素--sp-1~9.ui-btn 的 4 种类型,不再新增按钮类名:activedisabled 与 .is-loading 两态.ui-req、出错有 .ui-err 文案.ui-grid + .ui-col-*,不自己写死宽度<img> 有 alt、有 loading="lazy",单图不超 300KBui.toast / ui.confirm,不再用原生 alert()(已自动接管)!important(并轨层除外);无重复 <style> 块bump_site_ver.sh 刷版本号,并做 after 截图留档