文档/TuffEx

TuffEx

具有精美动画效果的现代 Vue3 组件库

通用开发

TuffEx

TuffEx(中文名:塔芙)是一个专注于触感体验和流畅动画的现代 Vue3 组件库。它是 Tuff 生态系统的一部分,提供美观、交互式的 UI 组件。

迁移中 - TuffEx 正在从 Tuff 核心应用迁移组件,技术栈已升级至 Vue 3.5 / Vite 6 / TypeScript 5.8。

组件展示

安装

EXAMPLE.BASH
# npm
npm install @talex-touch/tuffex

# yarn
yarn add @talex-touch/tuffex

# pnpm(推荐)
pnpm add @talex-touch/tuffex

快速开始

完整导入(迁移期兼容)

EXAMPLE.TYPESCRIPT
import { createApp } from 'vue'
import TuffUI from '@talex-touch/tuffex'
import '@talex-touch/tuffex/style.css'

const app = createApp(App)
app.use(TuffUI)
app.mount('#app')

完整导入只适合已有页面仍依赖全量组件样式的迁移场景。新页面默认使用下面的按需子路径导入。

按需导入(推荐)

EXAMPLE.TYPESCRIPT
import { createApp } from 'vue'
import TxButton from '@talex-touch/tuffex/button'
import TxSwitch from '@talex-touch/tuffex/switch'
import TxTag from '@talex-touch/tuffex/tag'
import '@talex-touch/tuffex/base.css'
import '@talex-touch/tuffex/button/style.css'
import '@talex-touch/tuffex/switch/style.css'
import '@talex-touch/tuffex/tag/style.css'

const app = createApp(App)
app.use(TxButton)
app.use(TxSwitch)
app.use(TxTag)

核心特性

特性描述
🎭 生动触感体验弹性响应和阻尼效果,让每次交互都自然且引人入胜
🌊 丝滑动画系统基于贝塞尔曲线的 60fps 流畅动画
💎 现代视觉语言玻璃拟态美学,毛玻璃效果和材质模拟
⚡ 性能优化Vue3 Composition API + Tree Shaking,包体积减少 50%+
🔗 Tuff 生态集成与 Tuff 桌面应用无缝集成

可用组件

已发布

组件描述来源
TuffButton带触感反馈的交互按钮button/
TuffSwitch流畅动画的开关组件switch/
TuffInput输入框,支持 clearable 和 textareainput/
TuffCheckbox复选框,SVG 动画勾选效果checkbox/
TuffSelect下拉选择器,浮动定位select/
TuffSelectItem选择器选项select/
TuffProgress进度条,支持 indeterminateprogress/

计划中

组件描述来源
TuffModal带入场动画的模态对话框modal/
TxScroll原生体验的自定义滚动条@talex-touch/tuffex
TuffTabs带指示器动画的标签页tabs/
TuffMenu菜单组件menu/

主题定制

TUFF UI 通过 CSS 变量支持自定义主题:

EXAMPLE.CSS
:root {
  /* 主色调 */
  --tx-color-primary: #409eff;
  --tx-color-primary-light-3: #79bbff;

  /* 文本颜色 */
  --tx-text-color-primary: #303133;
  --tx-text-color-secondary: #909399;

  /* 边框和圆角 */
  --tx-border-color: #dcdfe6;
  --tx-border-radius-base: 4px;

  /* 过渡 */
  --tx-transition-duration: 0.3s;
}

技术栈

技术版本用途
Vue3.5+Composition API
TypeScript5.8+类型安全
Vite6.0+构建工具
Sass1.89+样式预处理
VueUse13.0+组合式工具

开发

EXAMPLE.BASH
# 在 monorepo 根目录
pnpm install

# 组件源码包
pnpm -C packages/tuffex run build
pnpm -C packages/tuffex run test
pnpm -C packages/tuffex run typecheck

# 展示与文档统一由 Tuff 承载
pnpm -C apps/nexus run dev

设计理念

  1. 触感优先 - 每个组件都应该感觉响应迅速且生动
  2. 性能至上 - 动画绝不能影响性能
  3. 无障碍访问 - 所有组件符合 WCAG 2.1 AA 标准
  4. 可组合性 - 组件无缝协作

相关链接

浏览器支持

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+