UI 控件库 · 统一控件规范
配色统一、交互一致的 HTML 控件全集,其他站点可直接套用

设计令牌

design tokens

所有控件的颜色、圆角、阴影、尺寸都取自 CSS 变量,集中在 ui-kit.css 第 1 节。 换肤只改这一处,全站所有控件同步生效;深色模式通过 [data-theme="dark"] 覆盖同名变量实现,控件样式零改动。

圆角改 --radius-*
--radius-sm: 9px输入框 / 按钮 / 标签
--radius-md: 14px卡片 / 面板 / 表格容器
--radius-lg: 18px对话框 / 抽屉
--radius-xl: 26px大板块 / 巨幕
查看代码
阴影层级越大越靠前
--shadow-sm卡片悬停 / 标签
--shadow-md浮层 / 下拉
--shadow-lgToast / 面板
--shadow-xl对话框 / 抽屉
查看代码
控件高度梯度全站控件共用一套高度
xs--ui-h-xs: 28px表格行内按钮 / 标签
sm--ui-h-sm: 34px工具条 / 次要操作
md--ui-h-md: 42px默认
lg--ui-h-lg: 48px表单主操作 / 落地页
查看代码
动效曲线悬停看回弹差异
--ui-ease 通用 --ui-spring 回弹 --ui-out 减速
查看代码

色彩系统

color

主色一个、语义色四个、中性色七级。语义色只用于状态表达(成功 / 警告 / 危险 / 信息),不要拿去做装饰,这样用户扫一眼就能判断状态。

调色板点击色块复制变量名
主色--blue-500
主色悬停--blue-600
主色浅--blue-100
主色底--blue-50
成功--green-500
警告--yellow-500
危险--red-500
正文--gray-900
次级--gray-700
弱化--gray-500
边框--gray-300
浅边框--gray-200
填充--gray-100
背景--gray-50
查看代码

排版与文本

typography

标题限四级,正文 14px,说明文字 12px。长文本一律加省略号规则,避免把卡片撑变形。

标题与正文.ui-typo 作用域内

一级标题 30px · 页面主标题

二级标题 24px · 区块标题

三级标题 19px · 卡片标题

四级标题 16px · 小节标题

正文 14px,用于描述与说明。这是加粗强调,这是斜体,这是高亮标记,这是行内代码,这是删除线。

次要文字使用 --ui-text-mute,用于时间、来源、补充说明。

查看代码
单行省略.ellipsis
这是一段很长的工具名称,超出宽度后会自动显示省略号而不是换行
查看代码
多行截断.clamp 两行

多行截断用于卡片摘要:超出两行自动省略,保证所有卡片高度一致,列表看起来才整齐。第二行多余内容不会再显示出来。

查看代码
状态文字颜色语义色只表状态
主色文字 --ui-primary 成功文字 --ui-success 危险文字 --ui-danger 快捷键 Ctrl + K
查看代码

按钮

button

7 种类型 × 4 种尺寸 × 图标 / 纯文字 / 圆形 / 通栏等形态。点击按钮有水波纹反馈, 悬停有 1px 上浮,按下有 0.97 缩放 —— 这三层反馈让"点到了"这件事毫无歧义。

类型主操作只用 primary,一个区域最多一个;次要操作要上色用 .soft
查看代码
尺寸.xs / .sm / 默认 / .lg
查看代码
带图标 / 圆形 / 悬浮图标用 .ui-i
查看代码
状态加载态点击有真实 1.5s 演示
查看代码
按钮组相邻操作合并,减少视觉噪音
查看代码
通栏与玻璃态移动端底部主操作常用通栏
查看代码

图标

icon

自带 90+ 个线性图标,全部为内联 SVG(不依赖图标字体、不怕离线、不闪字)。 用法:<i class="ui-i" data-i="search"></i>,尺寸加 .s12 .s18 .s20 .s24, 颜色继承 currentColor。要加图标,只需往 ui-kit.js 的 ICONS 里加一行 path。

图标全集左列名称为 data-i 值
search
x
check
chevron
chevron-r
arrow-up
arrow-dn
arrow-r
arrow-l
plus
minus
user
users
lock
eye
eye-off
mail
phone
calendar
clock
upload
download
trash
edit
copy
link
share
star
heart
bell
info
alert
check-c
x-circle
loader
settings
home
folder
file
image
code
terminal
grid
list
filter
refresh
external
more
palette
sun
moon
send
message
bookmark
tag
drag
zoom-in
zoom-out
play
pause
thumbs-up
shield
zap
sliders
database
cpu
hash
percent
card
chart
trending
at
maximize
log-out
gift
rotate-ccw
rotate-cw
flip-h
flip-v
crop
swap
查看代码
媒体双预览工作区视频 / 动图 / 图片 · 原素材和结果对照 · 小屏上下排列
原素材本地预览
放置 video、img 或 canvas
处理结果实时对照
结果预览,不改变工作区高度
尺寸 · 时长 · 文件大小
音频试听条本地音频结果 · 宽度自适应 · 跟随明暗模式
声音预览完成后可试听或下载
由工具设置本地结果地址;无结果时隐藏播放器。
媒体定位编辑器水印定位或 ui-crop-editor 裁剪画布;时间滑块与双值范围复用现有滑块
编辑预览复用组件,交互由工具提供
方向键微调 · Shift 加速
尺寸与颜色图标跟随字号与文字颜色
成功状态 危险状态 弱化说明
查看代码

标签与徽标

tag / badge

标签表达分类,徽标表达数量或状态提醒。徽标挂到任意元素上只需一个 .ui-badge-wrap 包裹。

标签6 色 + 描边 + 可关闭 + xs 小号
默认 图片处理 已完成 待审核 已失败 会员 新 描边 渐变 已上线 处理中 可关闭 小号 已完成 失败
查看代码
徽标数字 / 小红点 / 脉冲
9 99+ 1 运行中 已停止 收藏 · 12
查看代码

头像与卡片

avatar / card

头像支持文字、图标、图片三种来源,尺寸四档;卡片由头 / 体 / 脚三段组成,可自由取舍。

头像.xs .lg .xl .square
A 张 W
张 李 王 赵 +8
查看代码
卡片悬停上浮 + 阴影
智能图片压缩v2.4
在浏览器本地完成压缩,图片不上传服务器,支持批量处理 100 张。
查看代码
纸片与统计Chip 用于筛选,数字带滚动动画
全部 图片处理 文档转换
今日调用012.4% 环比
平均耗时0s0.3s 更快
查看代码

布局与分割

layout / divider

12 列栅格 + 弹性列,间距统一走 --gap。分割线支持实线 / 虚线 / 带文字 / 竖线四种。

栅格窄屏自动折行
ui-col-12
ui-col-6
ui-col-6
4
4
4
3
ui-col 自适应
2
查看代码
分割线带文字的用于表单分区
我是带文字的分割线
虚线分割
左竖线分隔右
查看代码

输入框

input

所有输入类控件共用 .ui-input 外壳:前缀图标、后缀按钮、清除、字数统计都塞进同一个盒子, 边框只在盒子上画一次,所以图标与文字永远垂直居中。聚焦时边框变主色 + 3px 焦点环。

基础形态前缀图标 / 清除 / 字数统计 / 后缀按钮
展示在卡片标题上,建议 6–10 个字
查看代码
尺寸.xs .sm 默认 .lg
查看代码
状态错误 / 成功 / 禁用 / 只读 / 浮动标签
邮箱格式不正确
该邮箱可以使用
查看代码
输入组前后置文本 / 按钮 / 组合
https:// .com
金额 元
查看代码

多行文本域

textarea

输入区默认用比卡片略沉的底色、聚焦时回到表面色,空白区一眼看出「待填写」;占位符由 --ui-placeholder 统一控制(正文色 46% 透明度,自动适配深浅色)。 声明 data-import=".txt,.csv" 即可获得文件导入能力(右上角按钮 + 拖入文件),无需写一行 JS; data-import-max="0" 表示不限制大小;需要引导用户注意时,调用 UI.highlightImport(box, 6000) 让按钮闪烁一会儿。

基础多行输入带字数统计
支持 Markdown 语法
查看代码
固定高度与提及输入 @ 唤起成员列表
    查看代码
    带文件导入右上角按钮 或 直接拖入文件
    声明 data-import 即可启用,可选追加模式与大小上限
    查看代码

    密码框

    password

    带显隐切换与强度提示。强度条四格,颜色随等级从危险色过渡到成功色 —— 用户不需要读文字就知道够不够强。

    密码与强度点右侧眼睛切换明文
    建议:大小写字母 + 数字 + 符号,长度 12 位以上
    两次输入的密码不一致
    查看代码

    数字输入框

    input number

    带步进按钮,支持最小 / 最大值、步长、小数位;键盘上下键同样可步进,长按不失控。组件自带 width: max-content,放进 flex 列或栅格里不会被拉成整行宽。

    步进器整数 / 小数 / 限范围 / 宽容器不变形 / 原生对照
    批处理数量(1–100)
    压缩质量(0–10,步长 0.1)
    五位数字也不挤(步长 1000)
    下面是 520px 宽的 flex 列(align-items: stretch):控件保持自身宽度,不会被拉长
    禁用态
    查看代码

    高效属性控件

    Blender-inspired controls

    借鉴 Blender 的高频工作流,而不是照搬外观:数值既可输入也可横拖,Shift 精调、Ctrl 吸附;大量选项按属性组折叠,低频项藏入“高级设置”;F3 可直接搜索操作。

    拖拽数值与联动向量横拖修改 · 双击复位 · 方向键步进
    不透明度
    %
    X
    Y
    Z
    直接拖动数值框;拖动中按 Shift 进入 1/10 精度,按 Ctrl 吸附到较大步长。
    查看代码
    F3 命令搜索键盘优先 · 即时过滤 · 上下键执行
    当一个工具有几十个选项时,用户不必展开所有区域寻找操作;执行时冒泡 command:run 事件。
    查看代码
    紧凑属性检查器常用项常显 · 按任务分组 · 高级项二次折叠
    导出设置紧凑模式
    基础
    输出尺寸
    W
    H
    压缩质量
    %
    高级设置 · 3 项
    水印与版权 · 4 项
    仅在需要时展开,默认不占用页面高度。
    批处理规则 · 6 项
    复杂工具建议按任务分组,不要把所有输入项平铺成长表单。
    查看代码
    稳定纵向工具工作台上传在上 · 操作居中 · 固定高度设置在下
    素材与结果0 张
    拖入文件,或 点击选择有文件后原地切换为最新版文件区
    上传区固定高度,队列增长不会推动操作按钮
    默认值足够好,用户无需逐项检查
    处理设置短标签与控件同行固定高度
    方式
    宽高
    W
    H
    保护锁比例
    适配
    格式
    质量
    规则
    设置区内容再多,也只在这里滚动;上传、操作与下方内容都不跳位。
    查看代码

    下拉选择框

    select

    自定义下拉,面板带 6px 位移 + 缩放 + 淡入的展开动画。支持单选、多选(选中项变标签贴在触发器上)、分组、禁用项。 原生 <select> 也已统一皮肤,需要无障碍原生行为时可直接用。

    单选选中项打勾渐显
    • 图片处理
    • 文档转换
    • 开发工具
    • AI 工具即将上线
    查看代码
    多选选中项以标签回填,点标签上 × 取消
    • 批量压缩
    • 自动去水印
    • 转 WebP
    • 保留 EXIF
    • 生成对比报告
    已选 2 项,选项会以标签形式贴在框内
    查看代码
    分组选项长列表按类目分组更易找
    • 常用图片格式
    • WebP体积最小
    • AVIF压缩率最高
    • JPG兼容性最好
    • 无损格式
    • PNG支持透明
    • BMP未压缩
    查看代码
    原生 select移动端自动唤起系统选择器
    原生 select 在 .ui-scope 内自动套用统一皮肤
    查看代码
    数据生成选项长列表 / 分组 / 面板内搜索,数据换了不用改 HTML
        两个下拉的数据都来自 UI.selectOptions(),右侧按钮用 UI.setSelect() 反过来改值
        查看代码

        日期与时间

        date / time picker

        日历由 JS 生成(非图片、非第三方库),支持上月 / 下月、今天、清空、禁用日期、今天高亮。时间选择用双列滚动列表。

        日期选择点击日期即选中并收起
        请选择开始日期
        查看代码
        时间选择时 / 分双列,分钟步长 5
        请选择时间
            查看代码
            原生日期时间控件手机端体验最好,按需选用
            查看代码

            颜色选择器

            color picker

            预设色板 + 系统取色器兜底。选中的颜色实时回填到触发器,色块用双层 box-shadow 描出选中态。页面监听 color:change 就能拿到结果(e.detail.color,色板点击也会触发)。

            颜色选择16 个预设 + 自定义
            #1A73E8
            自定义取色
            原生:
            查看代码

            复选框与单选

            checkbox / radio

            勾选时对勾是「笔画绘出」动画(stroke-dashoffset 0 → 24),开关滑块用回弹曲线。 还有按钮风格的分组,适合筛选条这种横向空间有限的场景。

            复选框含半选与带描述
            查看代码
            单选组同组 name 相同
            查看代码
            按钮风格组选中即填充主色
            查看代码

            开关

            switch

            开关用于「立即生效」的布尔设置;需要提交表单才生效的场景请用复选框。两档尺寸,支持禁用与加载。

            开关滑块位移用回弹曲线
            浏览器本地处理(推荐开启)
            自动下载处理结果
            小尺寸:保留原始分辨率
            禁用状态
            加载中(保存中…)
            深色模式 (和右上角按钮联动)
            查看代码

            滑块

            slider

            单值与双值区间。拖动时滑块放大并带出光圈,悬停显示数值气泡;点击轨道可直接跳转,键盘与触摸同样可用。要恢复上次保存的数值用 UI.setSlider(el, [60])。

            单值拖拽 / 点轨道 / 看气泡
            62
            0 25 50 75 100
            查看代码
            双值区间两个滑块互不越界
            20 – 78
            用于「体积区间」筛选:只展示压缩后体积落在这个范围内的结果
            原生 range 对照:
            查看代码

            评分

            rate

            悬停预览、点击定分、移出回显。只读模式用于展示平均分,小数自动补半星。

            可交互评分悬停即预览
            点击星星打分,数据可存进本地或提交后端
            查看代码
            只读评分展示平均分 · 支持半星
            2,341 人评分 · 好评率 96%
            查看代码

            上传

            upload

            拖拽区在拖入时放大并变主色底;文件列表逐条淡入上浮,进度条按真实字节上报走。 本页只做进度演示,不会真的上传任何文件(这套模板的默认约定:能本机处理就不出网)。 需要自己接管文件列表时,给 .ui-upload 加 data-manual:组件只负责拖拽/点击选择, 然后向上抛 upload:files 事件(e.detail.files),列表与进度由页面渲染。 上传之后的列表不要再自己画,统一用下面的 文件区。

            拖拽上传拖文件进来试试
            把文件拖到这里,或 点击选择 支持 JPG / PNG / WebP,单个不超过 5MB
            查看代码
            照片墙悬停出现操作遮罩
            原生 file 控件:
            查看代码

            文件区

            file panel

            全站统一规则:上传框与文件列表互斥——一旦有文件,上传框让位,列表就地接管它原来的位置,清空后自动换回。 两种视图(文字列表 / 紧凑缩略图)共用同一份 DOM,只切 data-view, 选中项、滚动位置、已加载的缩略图都不会因为切换而丢失。条目只有四态 pending / working / done / error,状态色、进度线、下载可用性全部由属性驱动,页面不写状态样式。 用法:var fl = UI.files(el) → fl.add(files) / fl.update(id, {...}) / fl.remove(id)。 拖动条目可以直接换顺序,松手后的顺序就是打包 / 下载的顺序(也可以 fl.move(id, 2) 程序化排序)。 缩略图视图里每张右上角的放大镜会打开全屏查看器(UI.preview), 列表或缩略图视图下双击整行 / 卡片也能预览;查看器会把面板里所有能预览的图串成一组,可以直接左右翻, 关掉时选中「当时正在看」的那张。 列表上方还有一条总进度:默认隐藏,只要有条目在跑就自动出现(running 时带流光), 全部结束后亮一下 100% 再收起;也可以 fl.progress(62, '打包中…') 由页面自己驱动。

            上传 ⇄ 文件区加图后上传框原位换成列表,可切缩略图、拖动换位、限数量限类型
            把图片拖到这里,或 点击选择 仅图片(data-accept) · 一次最多 60 张(data-max) · 不写即不限,只在本机处理
            已选 0 个文件
            把待处理的跑一遍:待处理 → 处理中(底部进度线)→ 已完成;点条目切换选中,↑↓ 逐条移动,按住条目可拖动排序,双击(列表行或缩略图卡片)可预览,关闭预览会选中当前那张。限额是可选的:data-max="60" 限数量、data-accept="image/*" 限类型,不写 = 不限;JS 里也能用 UI.files(el, { max: 60, accept: 'image/*,.ico' }) 或传函数 accept: f => f.size < 10e6 覆盖。
            查看代码
            图片查看器缩略图右上角的放大镜走的就是它

            暗场全屏 + 共享元素放大:从点开的那张缩略图展开,关闭时缩回原位。滚轮 / 双指以指针为中心缩放, 放大后可拖拽且边界自动夹住;← → 翻页、Esc 退出、 双击在「适应」与 2.5 倍之间切换;底栏是缩放比例、适应、1:1 与「第几张 / 共几张」。 相邻图会提前预载,翻页不闪白。用法: UI.preview({ items:[{src,name,meta,raw}], index, from:el, download:fn })。

            查看代码
            四态 / 文字列表状态、结果、失败原因压缩在一行
            已选 0 个文件
            查看代码
            紧凑缩略图96px 起自适应,悬停才出操作
            已选 0 个文件
            查看代码

            二进制工作台

            binary workbench

            面向十六进制编辑、数据包查看、固件分析和文件差异工具的复合组件。统一提供文件栏、工具栏、虚拟滚动编辑区、数据解释器与状态栏;业务页面只负责填充行数据与交互。

            十六进制编辑器框架.ui-hex-editor-wrap
            OFFSET0001020304050607TEXT
            00000000.PNG....
            00000008....IHDR
            偏移 0x0已选择 1 字节覆盖编辑
            查看代码

            标签输入

            tag input

            回车或失焦即转成标签,重复会提示,达到上限后拒绝新增;退格键可快速删掉最后一个。标签逐个弹出 / 收起都有动画。

            标签输入框最多 5 个
            图片压缩 批量处理
            用于搜索与推荐,建议 3–5 个
            查看代码

            验证码输入

            otp / verification code

            输入即跳下一格,支持整串粘贴自动分发、退格回退、方向键移动。填满后自动校验:填错会抖动清空(本页正确码为 123456)。

            6 位验证码试试粘贴 654321 或输入 123456
            —
            没收到? (58s 后可重发)
            查看代码

            级联选择

            cascader

            多级联动,点左侧展开下一列,选到叶子节点后把整条路径拼成「A / B / C」回填。

            三级联动选项通过 data-options 传入 JSON
            请选择工具归属
            查看代码

            树形选择

            tree select

            树结构收在下拉里,支持按名称搜索高亮。树的展开用 grid-template-rows 0fr → 1fr 过渡,所以高度自适应且动画平滑。

            树形下拉内置搜索框
            请选择归属目录
            • 图片处理
              • 格式转换
              • 压缩与裁剪
              • 去水印
            • 文档转换
              • PDF 相关
              • Office 互转
            • 开发工具
            查看代码

            穿梭框

            transfer

            左右两栏 + 中间移动按钮,支持单项与整组(表头复选框)移动,计数实时更新。

            穿梭框点击条目选中,点箭头移动
            可添加
            • 智能图片压缩
            • 图片格式转换
            • AI 去水印(会员)
            • 在线图片裁剪
            • PDF 转 Word
            • JSON 格式化
            已选择
            • 字数统计
            • 正则表达式测试
            查看代码

            表单布局与校验

            form / validation

            三种布局:纵向(默认)、横向(标签左对齐)、行内。校验规则写在 data-rule 上,支持 required、email、min:6 组合,错误信息用 data-msg-* 自定义。 失焦即时校验,提交时统一校验并定位到第一个错误项。

            纵向表单 + 校验点提交看校验
            • 图片处理
            • 文档转换
            • 开发工具
            查看代码
            横向 / 行内布局.horizontal / .inline
            +86
            处理完成后短信通知
            行内表单(筛选条常用)
            fieldset 分组
            输出设置
            查看代码

            表格

            table

            支持斑马纹、悬停高亮、边框、固定表头、列排序(点表头切换升 / 降序)、多选(含半选)、展开行、 行内进度条、加载遮罩与空状态。点表头真的会排序,点 + 真的会展开。

            完整表格排序 / 多选 / 展开 / 操作列
            工具名称 分类 调用次数 评分 压缩率 状态 操作
            智能图片压缩 图片处理 12,846 4.9 82% 运行中
            PDF 转 Word 文档转换 9,321 4.8 — 运行中
            正则表达式测试 开发工具 7,412 4.9 — 审核中
            AI 去水印 图片处理 2,210 4.6 46% 已下线
            勾选后点删除可看气泡确认
            查看代码
            紧凑表格.compact
            参数类型默认值说明
            qualitynumber80压缩质量 0–100
            formatstringwebp输出格式
            keepExifbooleanfalse保留元数据
            查看代码
            空状态无数据 / 无搜索结果
            工具名称分类
            还没有数据
            查看代码

            描述列表

            descriptions

            键值对的整齐排列,比表格轻、比纯文本重。适合详情页的参数区。窄屏自动收成一列。

            栅格描述列表2 列 / 3 列
            工具名称
            智能图片压缩
            当前版本
            v2.4.1
            上线时间
            2026-03-12
            处理位置
            浏览器本地
            支持格式
            JPG / PNG / WebP / AVIF
            体积上限
            50 MB / 张
            负责人
            张明
            维护状态
            活跃维护
            查看代码

            列表

            list

            可点击的条目悬停时向右微移 3px,配合右侧箭头给出「能点」的信号。

            可点击列表悬停右移
            智能图片压缩
            本地处理 · 平均减少 82% 体积
            12,846 次
            PDF 转 Word
            保留排版 · 支持表格识别
            9,321 次
            JSON 格式化
            带错误定位与折叠
            维护中
            查看代码
            简易菜单列表分组 + 快捷键提示
            • 工具
            • 工具列表⌘1
            • 我的收藏⌘2
            • 最近使用⌘3
            • 设置
            • 偏好设置
            • 退出登录
            查看代码

            折叠面板

            collapse / accordion

            展开高度用 grid-template-rows 0fr → 1fr 过渡,内容多少都不会卡顿或跳版。data-accordion 可做手风琴。

            手风琴同层只开一个

            不会。所有处理都在你的浏览器里完成,可以用开发者工具的网络面板验证:上传体积始终是 0 B。

            单文件建议不超过 50MB,批量处理一次最多 100 张,超出会提示分批。

            没有。全部工具永久免费,也不需要注册登录。

            查看代码
            独立折叠与原生 details可同时展开

            不会读取剪贴板以外的隐私数据;所有权限在使用前都会明确告知。

            大图会用 Web Worker 处理,主线程不卡顿,可以边处理边继续操作。

            原生 details / summary(零 JS)

            浏览器原生的折叠控件,在 .ui-scope 内也会套用统一配色,适合最简单的场景。

            查看代码

            时间轴

            timeline

            用于版本记录、处理进度、审批流。节点颜色区分状态,最后一个节点可用脉冲动画表示「进行中」。

            基础时间轴状态节点
            10:24:08
            上传完成
            3 个文件,共 4.2 MB
            10:24:09
            本地压缩完成
            体积 4.2 MB → 0.76 MB(-82%)
            10:24:10
            正在生成对比报告
            预计 2 秒
            —
            打包下载
            等待上一步完成
            查看代码
            交错时间轴.alt 左右分布
            2026-08
            v2.4 发布
            新增批量处理与对比报告
            2026-05
            v2.1 发布
            支持 AVIF 输出
            2026-03
            v2.0 发布
            全量迁移到浏览器本地处理
            查看代码

            树形控件

            tree

            层级展开用两行 CSS 过渡完成(不是 max-height 猜高度),所以展开速度恒定、不会抖动。

            可展开目录树点箭头展开 / 收起
            • 图片处理(32)
              • 格式转换
                • WebP 转换
                • AVIF 转换
              • 压缩与裁剪
            • 文档转换(28)
              • PDF 相关
              • Office 互转
            • 开发工具(45)
            查看代码

            进度条

            progress

            进入视口才开始动画(不会白跑)。线形 / 环形 / 分段 / 条纹流动 / 不确定态都有。

            线形进度滚动到此处才开始动画
            0%
            0%
            0%
            0%
            0%
            上传中…
            分段进度(步骤条的一种)
            已完成 3 / 5 步
            查看代码
            环形进度SVG 描边动画
            0%
            0%
            环形进度适合仪表盘与上传角标,数字用等宽字体避免跳动
            查看代码

            骨架屏

            skeleton

            加载占位用渐变扫光(shimmer),比转圈更能传达「内容马上出现」。点按钮切换骨架与真实内容。

            骨架屏切换列表 / 卡片两种骨架
            查看代码

            空状态与结果页

            empty / result

            空状态必须给出「下一步该做什么」,所以永远配一个主操作按钮。结果页用于流程结束的反馈。

            空状态带引导操作
            还没有任何收藏
            在工具详情页点一下爱心,常用的工具就会出现在这里,换设备不同步、但绝对不丢。
            查看代码
            结果页成功 / 失败 / 警告

            处理完成

            3 个文件已压缩,总体积从 4.2 MB 降到 0.76 MB

            2 个文件处理失败

            文件已损坏或格式不支持,请重新导出后重试

            查看代码

            图片与二维码

            image / qrcode

            图片悬停轻微放大,点击全屏预览(带背景虚化与缩放动画)。二维码由 JS 生成点阵,接后端真码时替换 src 即可。

            图片预览点击看大图
            示例图片
            宽高比 5:3,点击可全屏预览
            查看代码
            二维码扫码分享 / 手机继续
            用手机扫码即可在手机上继续处理,数据不出本机
            查看代码

            标签页

            tabs

            下划线指示条会平滑滑到当前标签(transform 动画,不是跳)。两种风格:下划线式与胶囊式。

            下划线标签页点标签切换内容
            全部工具列表(236 款)。指示条会跟着当前标签平滑移动,内容做 260ms 淡入上浮。
            查看代码
            胶囊标签页.pill
            查看代码

            分段控制器

            segmented

            比标签页更轻,用于视图切换、粒度切换。白色滑块在两项之间平滑移动。

            分段控制器当前选择会输出到右侧
            当前:网格
            查看代码

            步骤条

            steps

            横向用于表单分步,纵向用于流程说明。已完成的步骤徽标填主色,当前步骤带光圈。

            横向步骤条点按钮切换进度
            1上传文件
            选择本地图片
            2设置参数
            压缩质量与格式
            3开始处理
            本地浏览器执行
            4下载结果
            打包或逐个下载
            查看代码
            纵向步骤条.vertical
            1解析文件头
            读取尺寸与色彩空间
            2重编码压缩
            WebWorker 中执行
            3清理元数据
            移除 EXIF / XMP
            4输出文件
            生成 Blob 并下载
            查看代码

            分页

            pagination

            页码太多时中间自动折叠成省略号;带跳页输入框与每页条数选择。

            完整分页点页码 / 箭头都可用
            每页 条 跳至 页
            查看代码
            简洁分页只有上一页 / 下一页
            查看代码

            锚点导航

            anchor

            左侧目录用的就是这套样式:细竖线 + 当前项高亮,滚动时指示条跟着走(本页左侧就是实例)。

            锚点列表点击跳到对应小节
            锚点通常吸在右侧栏,配合 scroll-margin-top 让标题不被粘性头部遮住
            查看代码

            警告提示

            alert

            信息 / 成功 / 警告 / 危险四种语义色,可带描述文字、可关闭、可做通栏横幅。

            四种类型点 × 可关闭
            默认在本地处理
            图片不会离开你的设备,可以在开发者工具里验证上传体积为 0 B。
            处理完成
            3 个文件已压缩,共节省 3.44 MB。
            部分文件被跳过
            2 个文件超过 50MB,请先压缩后重试。
            处理失败
            文件已损坏或不是有效的图片格式。
            描边风格,用于不希望抢视觉注意的说明
            查看代码

            轻提示 Toast

            toast / message

            屏幕居中的紧凑提示条(356 × 约 44),白底 + 1px 淡描边 + 轻阴影,语义色只落在图标和底部倒计时线上。消失时卡片从右往左碎成微粒飘散。长内容自动增高换行,鼠标悬停或键盘聚焦暂停倒计时;支持常驻与撤销。系统开启减少动态效果时直接关闭。调用:UI.toast('处理完成', 'success')。

            四种类型点按钮看效果
            查看代码

            通知提醒

            notification

            比 Toast 承载更多信息(标题 + 描述),从右上角滑入,适合长时间异步任务的结果提醒。

            通知卡片右上角滑入
            查看代码

            抽屉

            drawer

            从右侧滑出,常用于详情面板、设置面板、移动端导航。也支持左滑与底部上滑两种变体。

            抽屉右侧 / 底部
            查看代码

            气泡提示

            tooltip / popover / popconfirm

            Tooltip 用于短提示(纯 CSS,悬停即出);Popover 用于富内容;Popconfirm 用于操作前二次确认。

            四个方向悬停即出
            上方提示文字 下方提示文字 左侧提示文字 右侧提示文字 多行提示这段提示比较长,会自动换行,用于补充说明口径与注意事项。 点击也能唤起(移动端友好)
            查看代码
            Popover 与 Popconfirm富内容 / 二次确认
            压缩质量说明
            数值越低体积越小,但细节损失越明显。一般场景建议 80,需要极致体积可以用 60。
            查看代码

            加载中

            loading / spin

            三种形态:环形(默认)、三点跳动、区域遮罩。区域遮罩会自动继承父级圆角并虚化背景。

            环形与点状尺寸三档
            查看代码
            区域遮罩开关在下方
            区域内容:这里可以是卡片、表格或表单
            本地处理已完成 3/3
            查看代码
            按钮与表格加载表格里见「表格」小节
            加载态会保留原按钮宽度,避免布局跳动
            查看代码

            水印与快捷键

            watermark / keyboard

            水印用于敏感内容防截图外传(平铺 + 旋转 + 低透明度)。快捷键提示统一用 .ui-kbd,风格和系统键盘一致。

            水印canvas 生成平铺纹理
            内部资料,请勿外传。
            这段内容上覆盖了一层水印,防止截图后无法追溯来源。
            水印由 canvas 生成 data URL,无需图片资源。
            查看代码
            快捷键与主题当前主题:light
            唤起搜索CtrlK
            保存当前设置CtrlS
            关闭弹层Esc
            提交 / 下一步Enter
            或用右上角 / 开关,选择会记住
            查看代码