更新记录
1.0.0(2026-08-29)
初始化
Changelog
All notable changes to xtf-linkui will be documented in this file.
[0.0.1] - 2025-06-06
Added
主题系统
- 主题 Token 基础体系(
tokens.scss、variables.scss) light/dark/neo/glass/brand五套内置主题- ThemeManager 运行时主题管理器,支持持久化存储
- CSS 变量映射:基础 token → 语义 token → 组件 token
- 运行时主题切换(应用启动时读取,运行时动态切换)
xtf-config-provider全局配置组件,支持theme/themeVars/locale/size/zIndex/duration/safeArea/ripple配置项
国际化
- 中英文语言包(
zh-CN.js/en-US.js) use-localeHook,支持全局语言注入与组件读取- ConfigProvider 支持语言注入
P0 核心组件
xtf-text— 排版组件(支持 10 级字号、8 种颜色、渐变/发光/下划线/删除线/省略等)xtf-button— 按钮组件(7 种样式变体、7 种主题色、5 种尺寸、3 种形状、加载态、波纹反馈)xtf-input— 输入框组件(5 种样式变体、前后缀图标、清除、密码切换、错误/成功/警告态、字数统计、textarea + auto-height)xtf-card— 卡片组件(6 种变体、header/body/footer 插槽、可点击态)xtf-tag— 标签组件(solid/light/outlined、default/round/mark/dot、可关闭、可选中)xtf-avatar— 头像组件(图片/文字/占位、状态点、外环、角标)xtf-badge— 徽标组件(dot/数字/文本、最大显示值、位置控制、零值隐藏)xtf-popup— 弹出层组件(6 方向、遮罩、圆角、遮罩关闭、层级控制、滚动锁定)xtf-dialog— 对话框组件(alert/confirm/自定义内容、异步关闭)xtf-toast— 轻提示(success/error/warning/info/loading、队列模式、命令式调用)xtf-loading— 加载组件(inline/overlay、动画样式、文字提示、全局 show/hide)
P1 重要组件
布局与导航: xtf-navbar、xtf-tabs、xtf-grid、xtf-divider
表单与选择: xtf-picker、xtf-switch、xtf-radio、xtf-checkbox、xtf-rate、xtf-slider
展示与反馈: xtf-collapse、xtf-steps、xtf-empty、xtf-image、xtf-action-sheet、xtf-skeleton
P2 进阶组件
弹层与通知: xtf-notify、xtf-drawer
导航与内容流: xtf-swiper、xtf-tabs-swiper、xtf-back-top、xtf-breadcrumb
交互增强: xtf-pull-refresh、xtf-watermark
数据展示: xtf-table、xtf-statistic、xtf-timeline
高级组件: xtf-calendar、xtf-upload、xtf-countdown、xtf-marquee、xtf-floating-bubble、xtf-signature
扩展组件
xtf-collapse-animation、xtf-button-group、xtf-cell、xtf-cell-group、xtf-circle、xtf-count-to、xtf-datetime-picker、xtf-dropdown-menu、xtf-form、xtf-infinite-scroll、xtf-index-bar、xtf-lazyload、xtf-list、xtf-number-keyboard、xtf-overlay、xtf-pagination、xtf-password-input、xtf-progress、xtf-result、xtf-search、xtf-select、xtf-share-sheet、xtf-sticky、xtf-swipable-cell、xtf-tabbar、xtf-tree、xtf-virtual-list
工具层
utils/index.js— debounce、throttle、raf/cancelRaf、createIntersectionObserver、getBoundingClientRect、formatNumber、clamp、snapToStep、isEmptyutils/deep-merge.js— cloneDeep、deepMerge、hasOwnValuesutils/bem.js— BEM 类名生成(createBEM / bem)utils/z-index-manager.js— z-index 层级管理utils/platform.js— 平台判断(H5/小程序/App)utils/validate.js— 表单校验(手机号/邮箱/身份证/数字/URL 等)
Hooks
use-theme— 主题 Hookuse-locale— 国际化 Hookuse-model— v-model 双向绑定 Hookuse-popup— 弹层 z-index 管理 Hook
命令式 API
- Toast 管理器(
libs/toast/toast-manager.js) - Dialog 管理器(
libs/dialog/dialog-manager.js) - Loading 管理器(
libs/loading/loading-manager.js) - Notify 管理器(
libs/notify/notify-manager.js) - ActionSheet 管理器(
libs/action-sheet/action-sheet-manager.js) - Picker 管理器(
libs/picker/picker-manager.js)
Demo 与文档
- 59 个组件 Demo 页面
- 组件级 API 文档(
docs/components/) - 主题定制说明文档
- 国际化说明文档
图标系统
- Remixicon 本地字体方案
xtf-icon组件(name/size/color/spin/pulse/dot/badge/点击态)- 常用 Material 风格图标名兼容
平台兼容性
uni-app(3.97)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | × | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
xtf-linkui
xtf-linkui 是一个基于 uni-app 的多端 UI 组件库,覆盖基础、表单、反馈、导航、展示与高级六大类场景,支持 H5、微信小程序、App 三端。
📖 在线文档:https://env-00jy6fwh6avu-static.normal.cloudstatic.cn/docs/
文档内含每个组件的完整 API 说明、真实可运行示例、事件/插槽用法与主题定制指南。
特性
- 多类组件 — 覆盖基础、表单、反馈、导航、数据展示、高级场景,总计 100+ 组件
- 内置主题 —
light/dark/neo/china-red四套主题,支持运行时切换 - CSS 变量体系 — 基础 token → 语义 token → 组件 token 三层映射
- 国际化 — 中英文双语支持,可通过
xtf-config-provider全局注入,支持注册自定义语言包 - 命令式 API — Toast、Dialog、Loading、Notify、ActionSheet、Picker 支持函数式调用(Manager 模式)
- 按需编译 — 基于 uni_modules 的 easycom 自动识别,无需手动注册
- 主题定制 — 支持全局注册完整主题或局部覆盖 CSS 变量
- 官方能力映射 — 已补齐官方 uni-app 表单、展示、滚动、导航、拖拽、画布等核心组件能力的 xtf 场景映射
快速开始
1. 引入全局主题样式
在 App.vue 中:
<style lang="scss">
@import "@/uni_modules/xtf-linkui/theme/index.scss";
</style>
2. 初始化主题管理器
在 App.vue 的 onLaunch 中:
import { themeManager } from '@/uni_modules/xtf-linkui'
export default {
onLaunch() {
themeManager.initTheme()
}
}
3. 使用组件
得益于 uni_modules 的 easycom 机制,组件无需手动引入即可直接使用:
<template>
<xtf-config-provider theme="light">
<xtf-card radius="xl" padding="lg">
<xtf-text level="title" text="欢迎使用 xtf-linkui" />
<xtf-button theme="primary" label="开始使用" @tap="handleTap" />
</xtf-card>
</xtf-config-provider>
</template>
组件列表
组件文档地址前缀:
https://env-00jy6fwh6avu-static.normal.cloudstatic.cn/docs/components/
基础组件
| 组件 | 说明 | 文档 |
|---|---|---|
xtf-config-provider |
全局配置容器(主题/语言/尺寸/zIndex/安全区) | 查看 |
xtf-text |
排版文本(display/title/h1-h4/body/caption/label,渐变/发光/省略/可编辑/可复制) | 查看 |
xtf-section-title |
章节标题(标题/说明/右侧操作) | 查看 |
xtf-button |
按钮(solid/light/outline/gradient/ghost/glass/neo,7 色 5 尺寸,加载/涟漪/节流) | 查看 |
xtf-button-group |
按钮组 | 查看 |
xtf-link |
轻量链接(外链/本地跳转/电话链接) | 查看 |
xtf-icon |
图标(Remixicon 字体,spin/pulse/dot/badge) | 查看 |
xtf-card |
卡片(elevated/outlined/filled/glass/neo/flat) | 查看 |
xtf-tag |
标签(solid/light/soft/outlined/ghost/glass,可关闭可选中,12 种预设) | 查看 |
xtf-tag-group / xtf-tag-group-item |
标签分组 | 查看 |
xtf-avatar |
头像(图片/文字/占位,状态点/外环/角标) | 查看 |
xtf-avatar-group |
头像组(重叠+收纳) | 查看 |
xtf-badge |
徽标(dot/数字/文本,位置控制/零值隐藏) | 查看 |
xtf-divider |
分割线(文字/图标/竖线/渐变) | 查看 |
xtf-overlay |
遮罩层 | 查看 |
xtf-lazyload |
图片懒加载包装器 | 查看 |
xtf-drag-image |
拖拽排序图片 | 文档建设中 |
表单组件
| 组件 | 说明 | 文档 |
|---|---|---|
xtf-input |
输入框(5 种变体,前后缀/清除/密码/状态/字数/textarea) | 查看 |
xtf-editor |
富文本编辑器(工具栏/内容回显/只读) | 查看 |
xtf-search |
搜索栏(联想/热搜/历史/防抖) | 查看 |
xtf-form / xtf-form-item / xtf-form-array |
表单容器(校验/提交/重置/动态数组) | 查看 |
xtf-switch |
开关(native/filled/outline/soft,异步校验) | 查看 |
xtf-radio / xtf-radio-group |
单选 | 查看 |
xtf-checkbox / xtf-checkbox-group |
多选 | 查看 |
xtf-slider |
滑块(范围/刻度/气泡) | 查看 |
xtf-rate |
评分(半星/滑动/业务预设/只读) | 查看 |
xtf-number-box |
数字步进器 | 查看 |
xtf-color-picker |
颜色选择器(HEX 输入/预设色板) | 查看 |
xtf-picker |
选择器(多列滚轮/级联) | 查看 |
xtf-select |
下拉选择(搜索/多选/加载更多) | 查看 |
xtf-datetime-picker |
日期时间选择器 | 查看 |
xtf-cascader |
级联选择器 | 查看 |
xtf-tree-select |
双栏树形选择器 | 查看 |
xtf-password-input |
密码格输入 | 查看 |
xtf-number-keyboard |
数字键盘 | 查看 |
xtf-upload |
文件上传(图片/文件/预览/校验) | 查看 |
xtf-signature |
手写签名(canvas 绘制/导出图片) | 查看 |
反馈组件
| 组件 | 说明 | 文档 |
|---|---|---|
xtf-popup |
弹出层(6 方向/遮罩/圆角/滚动锁定) | 查看 |
xtf-popover |
气泡浮层(锚点提示/click/hover/manual) | 查看 |
xtf-tooltip |
文字提示 | 查看 |
xtf-bubble-menu |
菜单型气泡(八向定位) | 查看 |
xtf-load-more |
加载更多(more/loading/noMore/error 四态) | 查看 |
xtf-notice-bar |
通告栏(多行/单行/滚动/查看更多/关闭) | 查看 |
xtf-dialog |
对话框(alert/confirm/prompt/select,命令式) | 查看 |
xtf-toast |
轻提示(命令式/队列模式) | 查看 |
xtf-loading |
加载态(inline/overlay,多种动画) | 查看 |
xtf-notify |
通知栏(类型/位置/持续时间) | 查看 |
xtf-action-sheet |
动作面板 | 查看 |
xtf-share-sheet |
分享面板(平台预设/自定义渠道) | 查看 |
xtf-drawer |
抽屉(筛选面板/自定义内容) | 查看 |
xtf-empty |
空状态(预设类型/操作按钮) | 查看 |
xtf-result |
结果页(成功/失败/警告/信息) | 查看 |
xtf-skeleton |
骨架屏 | 查看 |
xtf-progress |
进度条(line/circle/dashboard,条纹/步骤/不定态) | 查看 |
xtf-circle |
圆形进度 | 查看 |
导航组件
| 组件 | 说明 | 文档 |
|---|---|---|
xtf-navbar |
导航栏(标题/左右操作/透明/玻璃) | 查看 |
xtf-tabs |
标签页(多主题/吸顶) | 查看 |
xtf-tabs-swiper |
标签页与 swiper 联动 | 查看 |
xtf-segmented |
分段器(button/text 样式) | 查看 |
xtf-tabbar |
底部导航(角标/v-model) | 查看 |
xtf-goods-nav |
商品详情底部导航 | 查看 |
xtf-pagination |
分页器 | 查看 |
xtf-breadcrumb |
面包屑 | 查看 |
xtf-steps |
步骤条(横向/竖向) | 查看 |
xtf-index-bar |
索引栏(侧边快速定位) | 查看 |
xtf-index-anchor |
索引锚点(吸顶头部) | 查看 |
xtf-index-list |
索引列表 | 查看 |
xtf-dropdown-menu |
下拉菜单容器 | 查看 |
xtf-dropdown-item |
下拉项(确认/重置/多选) | 查看 |
xtf-back-top |
回到顶部(阈值显示) | 查看 |
xtf-sticky |
粘性布局 | 查看 |
展示组件
| 组件 | 说明 | 文档 |
|---|---|---|
xtf-row / xtf-col |
24 栅格布局(gutter/偏移/响应式) | 查看 |
xtf-grid / xtf-grid-item |
宫格(角标/图片/跨列) | 查看 |
xtf-cell / xtf-cell-group |
单元格(图标/缩略图/右侧信息,url 导航) | 查看 |
xtf-list |
列表(分组/左滑/加载更多) | 查看 |
xtf-table |
表格(列配置/数据展示/分页) | 查看 |
xtf-swiper |
轮播(指示器/边距/点击) | 查看 |
xtf-image |
图片(预览/加载/错误态) | 查看 |
xtf-image-crop |
图片裁剪(拖拽缩放/导出) | 查看 |
xtf-collapse |
折叠面板(手风琴) | 查看 |
xtf-collapse-animation |
折叠动画容器 | 查看 |
xtf-dateformat |
友好日期格式化 | 查看 |
xtf-statistic |
统计数值(前后缀/趋势) | 查看 |
xtf-countdown |
倒计时(翻牌/控制) | 查看 |
xtf-count-to |
数字滚动(格式化) | 查看 |
xtf-timeline |
时间轴(状态/节点内容) | 查看 |
xtf-marquee |
跑马灯(公告/弹幕/步进/多行) | 查看 |
xtf-tree |
树形控件(搜索/展开/勾选) | 查看 |
xtf-calendar |
日历(单选/多选/范围/自定义样式) | 查看 |
xtf-watermark |
水印 | 查看 |
高级组件
| 组件 | 说明 | 文档 |
|---|---|---|
xtf-virtual-list |
虚拟列表(overscan 缓冲) | 查看 |
xtf-waterfall |
瀑布流(双列/动态高度/最短列分配) | 查看 |
xtf-infinite-scroll |
无限滚动 | 查看 |
xtf-pull-refresh |
下拉刷新 | 查看 |
xtf-floating-bubble |
悬浮气泡(movable-view 拖拽/吸边) | 查看 |
xtf-motion |
动画容器(13 基础动画 + 22 特效,多动画合并/并行/顺序) | 查看 |
xtf-canvas |
通用画布(上下文绘制/触摸/导出) | 查看 |
xtf-drag-layout |
拖拽排序宫格 | 查看 |
xtf-swipable-cell |
可滑动单元格 | 查看 |
xtf-home-sheet |
上下滑动面板(仿滴滴首页) | 查看 |
xtf-finger |
指纹/手势识别 | 文档建设中 |
官方组件能力映射
xtf-linkui 不直接复制官方 demo,而是将官方组件能力映射到已有业务化组件:
| 官方能力 | xtf-linkui 承接方式 |
|---|---|
text / progress / image / swiper |
通过 xtf-text、xtf-progress、xtf-image、xtf-swiper 透传关键官方属性 |
editor |
通过 xtf-editor 承接富文本编辑、格式工具栏、内容回显和只读预览 |
view |
通过 xtf-card、xtf-cell、xtf-grid 组合承接块级容器与布局场景 |
scroll-view |
通过 xtf-pull-refresh 透传滚动属性,并与 xtf-list、xtf-infinite-scroll 组合承接分页场景 |
picker-view |
通过 xtf-picker mode="inline" 承接常驻多列滚轮 |
navigator |
通过 xtf-cell url/openType 承接页面跳转语义 |
uni-link |
通过 xtf-link 承接外链展示、本地跳转和电话链接场景 |
uni-segmented-control |
通过 xtf-segmented 承接轻量切换和激活色场景 |
movable-view |
通过 xtf-floating-bubble、xtf-drag-layout 分别承接悬浮拖动和宫格排序场景 |
canvas |
通过 xtf-canvas 承接通用绘图,通过 xtf-signature、xtf-image-crop 承接签名和裁剪等业务画布场景 |
uni-tooltip |
通过 xtf-tooltip / xtf-popover 承接轻量提示和气泡说明场景 |
uni-number-box |
通过 xtf-number-box 承接数量加减和步长输入场景 |
uni-notice-bar |
通过 xtf-notice-bar 承接系统通知、滚动公告和查看更多场景 |
uni-load-more |
通过 xtf-load-more 承接列表底部加载状态展示 |
uni-goods-nav |
通过 xtf-goods-nav 承接商品详情底部操作区 |
uni-row / uni-col |
通过 xtf-row / xtf-col 承接 24 栅格、gutter、位移和响应式列布局 |
uni-dateformat |
通过 xtf-dateformat 承接友好时间、阈值控制、英文输出和自动刷新 |
cover-view / video / map / web-view / ad / audio |
作为平台原生能力处理 |
内置主题
| 主题 | 标识 | 说明 |
|---|---|---|
| 浅色 | light |
默认主题,明亮清晰(紫罗兰主色) |
| 暗色 | dark |
暗黑模式,夜间舒适 |
| 新拟态 | neo |
软拟物风格,柔和凹凸阴影 |
| 中国红 | china-red |
品牌红色主题 |
切换主题
// 全局切换
import { themeManager } from '@/uni_modules/xtf-linkui'
themeManager.setTheme('dark')
// 局部覆盖(通过 ConfigProvider)
<xtf-config-provider theme="dark">
<view>这里是暗色区域</view>
</xtf-config-provider>
自定义主题
注册完整主题
import { themeManager } from '@/uni_modules/xtf-linkui'
themeManager.registerTheme('my-brand', {
colors: {
primary: '#6366f1',
// ... 其他颜色 token
},
// ... 其他 token
})
themeManager.setTheme('my-brand')
局部覆盖 CSS 变量
<xtf-config-provider :theme-vars="{ '--xtf-color-primary': '#6366f1' }">
<view>这里 primary 色变为自定义值</view>
</xtf-config-provider>
命令式 API
命令式 API 采用 Manager 模式(发布-订阅),需在页面挂载对应宿主组件(service 模式)后调用:
import { toastManager, dialogManager, loadingManager, notifyManager } from '@/uni_modules/xtf-linkui'
// Toast
toastManager.success('操作成功')
toastManager.error('操作失败')
// Dialog
dialogManager.confirm({
title: '确认删除?',
message: '此操作不可撤销'
})
dialogManager.alert({ title: '提示', message: '操作完成' })
// Loading
loadingManager.show({ text: '加载中...' })
loadingManager.hide()
// Notify
notifyManager.success({ title: '保存成功', message: '数据已保存' })
| 能力 | 导出 | 常用方法 |
|---|---|---|
| Toast | toastManager |
success / error / warning / loading / clear |
| Dialog | dialogManager |
alert / confirm / prompt / select / actions / multiSelect |
| Loading | loadingManager |
show / hide / update |
| Notify | notifyManager |
show / success / warning / danger / info |
| ActionSheet | actionSheetManager |
show / close |
| Picker | pickerManager |
show / popup / close |
目录结构
uni_modules/xtf-linkui/
├── components/ # 组件目录
├── libs/
│ ├── config/ # 默认配置
│ ├── hooks/ # use-theme / use-locale / use-model / use-popup
│ ├── locale/ # 中英文语言包
│ ├── theme/ # ThemeManager + 主题配置
│ ├── utils/ # 工具函数(debounce/throttle/BEM/z-index/platform/validate)
│ ├── toast/ # Toast 命令式管理器
│ ├── dialog/ # Dialog 命令式管理器
│ ├── loading/ # Loading 命令式管理器
│ ├── notify/ # Notify 命令式管理器
│ ├── action-sheet/ # ActionSheet 命令式管理器
│ └── picker/ # Picker 命令式管理器
├── theme/ # SCSS 主题样式文件
├── static/iconfont/ # Remixicon 图标字体
├── package.json
├── readme.md
├── changelog.md
└── license.md
技术要求
- uni-app 2.x / 3.x
- 支持平台:H5、微信小程序、App
- 不依赖外部 CDN 或远程字体
设计约定
- 所有组件使用
xtf-*前缀,通过 easycom 自动识别 - 样式使用 CSS 变量(
--xtf-*),支持主题系统统一切换 - 工具函数放在
libs/utils/,Hooks 放在libs/hooks/ - 命令式 API 放在
libs/<name>/独立管理

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 13007
赞赏 75
下载 12541443
赞赏 1947
赞赏
京公网安备:11010802035340号