文档/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 { TuffButton, TuffSwitch, TuffFlatButton } from '@talex-touch/tuffex'
import '@talex-touch/tuffex/style.css'

const app = createApp(App)
app.use(TuffButton)
app.use(TuffSwitch)
app.use(TuffFlatButton)

核心特性

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

可用组件

已发布

组件描述来源
TuffButton带触感反馈的交互按钮button/
TuffFlatButton扁平按钮,支持 loading 状态base/button/FlatButton
TuffSwitch流畅动画的开关组件base/switch/TSwitch
TuffInput输入框,支持 clearable 和 textareabase/input/FlatInput
TuffCheckbox复选框,SVG 动画勾选效果base/checkbox/TCheckbox
TuffSelect下拉选择器,浮动定位base/select/TSelect
TuffSelectItem选择器选项base/select/TSelectItem
TuffProgress进度条,支持 indeterminatebase/ProgressBar

计划中

组件描述来源
TuffModal带入场动画的模态对话框base/dialog/
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

# 在 packages/tuffex 目录
pnpm docs:dev    # 启动文档服务器 :8000
pnpm build       # 构建库

设计理念

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

相关链接

浏览器支持

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