更新记录

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.scssvariables.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-locale Hook,支持全局语言注入与组件读取
  • 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-navbarxtf-tabsxtf-gridxtf-divider 表单与选择: xtf-pickerxtf-switchxtf-radioxtf-checkboxxtf-ratextf-slider 展示与反馈: xtf-collapsextf-stepsxtf-emptyxtf-imagextf-action-sheetxtf-skeleton

P2 进阶组件

弹层与通知: xtf-notifyxtf-drawer 导航与内容流: xtf-swiperxtf-tabs-swiperxtf-back-topxtf-breadcrumb 交互增强: xtf-pull-refreshxtf-watermark 数据展示: xtf-tablextf-statisticxtf-timeline 高级组件: xtf-calendarxtf-uploadxtf-countdownxtf-marqueextf-floating-bubblextf-signature

扩展组件

xtf-collapse-animationxtf-button-groupxtf-cellxtf-cell-groupxtf-circlextf-count-toxtf-datetime-pickerxtf-dropdown-menuxtf-formxtf-infinite-scrollxtf-index-barxtf-lazyloadxtf-listxtf-number-keyboardxtf-overlayxtf-paginationxtf-password-inputxtf-progressxtf-resultxtf-searchxtf-selectxtf-share-sheetxtf-stickyxtf-swipable-cellxtf-tabbarxtf-treextf-virtual-list

工具层

  • utils/index.js — debounce、throttle、raf/cancelRaf、createIntersectionObserver、getBoundingClientRect、formatNumber、clamp、snapToStep、isEmpty
  • utils/deep-merge.js — cloneDeep、deepMerge、hasOwnValues
  • utils/bem.js — BEM 类名生成(createBEM / bem)
  • utils/z-index-manager.js — z-index 层级管理
  • utils/platform.js — 平台判断(H5/小程序/App)
  • utils/validate.js — 表单校验(手机号/邮箱/身份证/数字/URL 等)

Hooks

  • use-theme — 主题 Hook
  • use-locale — 国际化 Hook
  • use-model — v-model 双向绑定 Hook
  • use-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.vueonLaunch 中:

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-textxtf-progressxtf-imagextf-swiper 透传关键官方属性
editor 通过 xtf-editor 承接富文本编辑、格式工具栏、内容回显和只读预览
view 通过 xtf-cardxtf-cellxtf-grid 组合承接块级容器与布局场景
scroll-view 通过 xtf-pull-refresh 透传滚动属性,并与 xtf-listxtf-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-bubblextf-drag-layout 分别承接悬浮拖动和宫格排序场景
canvas 通过 xtf-canvas 承接通用绘图,通过 xtf-signaturextf-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>/ 独立管理

隐私、权限声明

1. 本插件需要申请的系统权限列表:

false

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

false

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

false

暂无用户评论。