tdesign-miniprogram

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

TDesign Mini Program Skill

TDesign 小程序开发技能

TDesign WeChat Mini Program component library, an enterprise-level design system by Tencent. Provides 60+ high-quality components with dark mode support, theme customization, and more.
TDesign微信小程序组件库是腾讯推出的企业级设计体系,提供60+高品质组件,支持深色模式、主题定制等功能。

When to Use This Skill

适用场景

This skill should be triggered when:
  • Developing WeChat Mini Programs with TDesign component library
  • Using TDesign UI components (Button, Input, Dialog, etc.)
  • Implementing interfaces following TDesign design specifications
  • Configuring TDesign themes and style customization
  • Building AI chat interfaces (using TDesign Chat components)
  • Implementing dark mode adaptation
以下场景可使用本技能:
  • 开发基于TDesign组件库的微信小程序
  • 使用TDesign UI组件(Button、Input、Dialog等)
  • 遵循TDesign设计规范实现界面
  • 配置TDesign主题与样式定制
  • 搭建AI聊天界面(使用TDesign Chat组件)
  • 实现深色模式适配

Quick Start

快速开始

Installation

安装

bash
npm i tdesign-miniprogram -S --production
bash
npm i tdesign-miniprogram -S --production

Modify app.json

修改app.json

Remove
"style": "v2"
from
app.json
to avoid style conflicts.
从app.json中移除
"style": "v2"
以避免样式冲突。

Modify project.config.json

修改project.config.json

Add the following to the
setting
section of
project.config.json
:
json
{
  "setting": {
    "packNpmManually": true,
    "packNpmRelationList": [
      {
        "packageJsonPath": "./package.json",
        "miniprogramNpmDistDir": "./"
      }
    ]
  }
}
在project.config.json的
setting
部分添加以下配置:
json
{
  "setting": {
    "packNpmManually": true,
    "packNpmRelationList": [
      {
        "packageJsonPath": "./package.json",
        "miniprogramNpmDistDir": "./"
      }
    ]
  }
}

Modify tsconfig.json (TypeScript projects)

修改tsconfig.json(TypeScript项目)

json
{
  "paths": {
    "tdesign-miniprogram/*": [
      "./miniprogram/miniprogram_npm/tdesign-miniprogram/*"
    ]
  }
}
After modifying project.config.json, build npm in WeChat DevTools:
Tools - Build npm
After successful build, check
Compile JS to ES5
json
{
  "paths": {
    "tdesign-miniprogram/*": [
      "./miniprogram/miniprogram_npm/tdesign-miniprogram/*"
    ]
  }
}
修改project.config.json后,在微信开发者工具中执行
工具 - 构建npm
构建成功后,勾选
将JS编译为ES5

Using Components

使用组件

Import in page or component JSON file:
json
{
  "usingComponents": {
    "t-button": "tdesign-miniprogram/button/button"
  }
}
Use in WXML:
html
<t-button theme="primary">Button</t-button>
在页面或组件的JSON文件中引入:
json
{
  "usingComponents": {
    "t-button": "tdesign-miniprogram/button/button"
  }
}
在WXML中使用:
html
<t-button theme="primary">Button</t-button>

Component Categories

组件分类

Basic Components (6)

基础组件(6个)

ComponentDescriptionImport Path
ButtonButton
tdesign-miniprogram/button/button
DividerDivider
tdesign-miniprogram/divider/divider
FabFloating Action Button
tdesign-miniprogram/fab/fab
IconIcon
tdesign-miniprogram/icon/icon
LayoutLayout
tdesign-miniprogram/row/row
LinkLink
tdesign-miniprogram/link/link
组件说明引入路径
Button按钮
tdesign-miniprogram/button/button
Divider分割线
tdesign-miniprogram/divider/divider
Fab悬浮操作按钮
tdesign-miniprogram/fab/fab
Icon图标
tdesign-miniprogram/icon/icon
Layout布局
tdesign-miniprogram/row/row
Link链接
tdesign-miniprogram/link/link

Navigation Components (8)

导航组件(8个)

ComponentDescriptionImport Path
BackTopBack to Top
tdesign-miniprogram/back-top/back-top
DrawerDrawer
tdesign-miniprogram/drawer/drawer
IndexesIndex List
tdesign-miniprogram/indexes/indexes
NavbarNavigation Bar
tdesign-miniprogram/navbar/navbar
SideBarSide Navigation
tdesign-miniprogram/side-bar/side-bar
StepsSteps
tdesign-miniprogram/steps/steps
TabBarBottom Tab Bar
tdesign-miniprogram/tab-bar/tab-bar
TabsTabs
tdesign-miniprogram/tabs/tabs
组件说明引入路径
BackTop返回顶部
tdesign-miniprogram/back-top/back-top
Drawer抽屉
tdesign-miniprogram/drawer/drawer
Indexes索引列表
tdesign-miniprogram/indexes/indexes
Navbar导航栏
tdesign-miniprogram/navbar/navbar
SideBar侧边导航
tdesign-miniprogram/side-bar/side-bar
Steps步骤条
tdesign-miniprogram/steps/steps
TabBar底部标签栏
tdesign-miniprogram/tab-bar/tab-bar
Tabs标签页
tdesign-miniprogram/tabs/tabs

Input Components (16)

输入组件(16个)

ComponentDescriptionImport Path
CalendarCalendar
tdesign-miniprogram/calendar/calendar
CascaderCascader
tdesign-miniprogram/cascader/cascader
CheckBoxCheckbox
tdesign-miniprogram/checkbox/checkbox
DateTimePickerDate Time Picker
tdesign-miniprogram/date-time-picker/date-time-picker
InputInput
tdesign-miniprogram/input/input
PickerPicker
tdesign-miniprogram/picker/picker
RadioRadio
tdesign-miniprogram/radio/radio
RateRate
tdesign-miniprogram/rate/rate
SearchSearch
tdesign-miniprogram/search/search
SliderSlider
tdesign-miniprogram/slider/slider
StepperStepper
tdesign-miniprogram/stepper/stepper
SwitchSwitch
tdesign-miniprogram/switch/switch
TextareaTextarea
tdesign-miniprogram/textarea/textarea
TreeSelectTree Select
tdesign-miniprogram/tree-select/tree-select
UploadUpload
tdesign-miniprogram/upload/upload
FormForm
tdesign-miniprogram/form/form
组件说明引入路径
Calendar日历
tdesign-miniprogram/calendar/calendar
Cascader级联选择器
tdesign-miniprogram/cascader/cascader
CheckBox复选框
tdesign-miniprogram/checkbox/checkbox
DateTimePicker日期时间选择器
tdesign-miniprogram/date-time-picker/date-time-picker
Input输入框
tdesign-miniprogram/input/input
Picker选择器
tdesign-miniprogram/picker/picker
Radio单选框
tdesign-miniprogram/radio/radio
Rate评分
tdesign-miniprogram/rate/rate
Search搜索框
tdesign-miniprogram/search/search
Slider滑块
tdesign-miniprogram/slider/slider
Stepper步进器
tdesign-miniprogram/stepper/stepper
Switch开关
tdesign-miniprogram/switch/switch
Textarea多行输入框
tdesign-miniprogram/textarea/textarea
TreeSelect树形选择
tdesign-miniprogram/tree-select/tree-select
Upload上传
tdesign-miniprogram/upload/upload
Form表单
tdesign-miniprogram/form/form

Data Display Components (18)

数据展示组件(18个)

ComponentDescriptionImport Path
AvatarAvatar
tdesign-miniprogram/avatar/avatar
BadgeBadge
tdesign-miniprogram/badge/badge
CellCell
tdesign-miniprogram/cell/cell
CollapseCollapse
tdesign-miniprogram/collapse/collapse
CountDownCountdown
tdesign-miniprogram/count-down/count-down
EmptyEmpty State
tdesign-miniprogram/empty/empty
FooterFooter
tdesign-miniprogram/footer/footer
GridGrid
tdesign-miniprogram/grid/grid
ImageImage
tdesign-miniprogram/image/image
ImageViewerImage Viewer
tdesign-miniprogram/image-viewer/image-viewer
ProgressProgress
tdesign-miniprogram/progress/progress
ResultResult
tdesign-miniprogram/result/result
SkeletonSkeleton
tdesign-miniprogram/skeleton/skeleton
StickySticky
tdesign-miniprogram/sticky/sticky
SwiperSwiper
tdesign-miniprogram/swiper/swiper
TableTable
tdesign-miniprogram/table/table
TagTag
tdesign-miniprogram/tag/tag
ListList
tdesign-miniprogram/list/list
组件说明引入路径
Avatar头像
tdesign-miniprogram/avatar/avatar
Badge徽标
tdesign-miniprogram/badge/badge
Cell单元格
tdesign-miniprogram/cell/cell
Collapse折叠面板
tdesign-miniprogram/collapse/collapse
CountDown倒计时
tdesign-miniprogram/count-down/count-down
Empty空状态
tdesign-miniprogram/empty/empty
Footer页脚
tdesign-miniprogram/footer/footer
Grid宫格
tdesign-miniprogram/grid/grid
Image图片
tdesign-miniprogram/image/image
ImageViewer图片预览
tdesign-miniprogram/image-viewer/image-viewer
Progress进度条
tdesign-miniprogram/progress/progress
Result结果页
tdesign-miniprogram/result/result
Skeleton骨架屏
tdesign-miniprogram/skeleton/skeleton
Sticky吸顶
tdesign-miniprogram/sticky/sticky
Swiper轮播图
tdesign-miniprogram/swiper/swiper
Table表格
tdesign-miniprogram/table/table
Tag标签
tdesign-miniprogram/tag/tag
List列表
tdesign-miniprogram/list/list

Feedback Components (12)

反馈组件(12个)

ComponentDescriptionImport Path
ActionSheetAction Sheet
tdesign-miniprogram/action-sheet/action-sheet
DialogDialog
tdesign-miniprogram/dialog/dialog
DropdownMenuDropdown Menu
tdesign-miniprogram/dropdown-menu/dropdown-menu
GuideGuide
tdesign-miniprogram/guide/guide
LoadingLoading
tdesign-miniprogram/loading/loading
MessageMessage
tdesign-miniprogram/message/message
NoticeBarNotice Bar
tdesign-miniprogram/notice-bar/notice-bar
OverlayOverlay
tdesign-miniprogram/overlay/overlay
PopupPopup
tdesign-miniprogram/popup/popup
PullDownRefreshPull Down Refresh
tdesign-miniprogram/pull-down-refresh/pull-down-refresh
SwipeCellSwipe Cell
tdesign-miniprogram/swipe-cell/swipe-cell
ToastToast
tdesign-miniprogram/toast/toast
组件说明引入路径
ActionSheet操作面板
tdesign-miniprogram/action-sheet/action-sheet
Dialog对话框
tdesign-miniprogram/dialog/dialog
DropdownMenu下拉菜单
tdesign-miniprogram/dropdown-menu/dropdown-menu
Guide引导提示
tdesign-miniprogram/guide/guide
Loading加载提示
tdesign-miniprogram/loading/loading
Message消息提示
tdesign-miniprogram/message/message
NoticeBar通知栏
tdesign-miniprogram/notice-bar/notice-bar
Overlay遮罩层
tdesign-miniprogram/overlay/overlay
Popup弹出层
tdesign-miniprogram/popup/popup
PullDownRefresh下拉刷新
tdesign-miniprogram/pull-down-refresh/pull-down-refresh
SwipeCell滑动单元格
tdesign-miniprogram/swipe-cell/swipe-cell
Toast轻提示
tdesign-miniprogram/toast/toast

AI Chat Components (9)

AI聊天组件(9个)

ComponentDescriptionImport Path
ChatListChat List
tdesign-miniprogram/chat-list/chat-list
ChatMessageChat Message
tdesign-miniprogram/chat-message/chat-message
ChatSenderChat Sender
tdesign-miniprogram/chat-sender/chat-sender
ChatContentChat Content
tdesign-miniprogram/chat-content/chat-content
ChatActionbarChat Action Bar
tdesign-miniprogram/chat-actionbar/chat-actionbar
ChatLoadingChat Loading
tdesign-miniprogram/chat-loading/chat-loading
ChatMarkdownChat Markdown
tdesign-miniprogram/chat-markdown/chat-markdown
ChatThinkingChat Thinking
tdesign-miniprogram/chat-thinking/chat-thinking
AttachmentsAttachments
tdesign-miniprogram/attachments/attachments
组件说明引入路径
ChatList聊天列表
tdesign-miniprogram/chat-list/chat-list
ChatMessage聊天消息
tdesign-miniprogram/chat-message/chat-message
ChatSender聊天输入框
tdesign-miniprogram/chat-sender/chat-sender
ChatContent聊天内容
tdesign-miniprogram/chat-content/chat-content
ChatActionbar聊天操作栏
tdesign-miniprogram/chat-actionbar/chat-actionbar
ChatLoading聊天加载状态
tdesign-miniprogram/chat-loading/chat-loading
ChatMarkdown聊天Markdown渲染
tdesign-miniprogram/chat-markdown/chat-markdown
ChatThinking思考状态提示
tdesign-miniprogram/chat-thinking/chat-thinking
Attachments附件选择器
tdesign-miniprogram/attachments/attachments

Common Patterns

常用示例

Button

按钮

html
<!-- Basic Buttons -->
<t-button theme="primary" size="large">Primary Button</t-button>
<t-button theme="light" size="large">Light Button</t-button>
<t-button size="large">Default Button</t-button>

<!-- Outline and Text Buttons -->
<t-button theme="primary" size="large" variant="outline"
  >Outline Button</t-button
>
<t-button theme="primary" size="large" variant="text">Text Button</t-button>

<!-- Icon Button -->
<t-button
  theme="primary"
  icon="app"
  content="Icon Button"
  size="large"
></t-button>

<!-- Loading State -->
<t-button theme="primary" size="large" loading>Loading</t-button>

<!-- Disabled State -->
<t-button theme="primary" size="large" disabled>Disabled</t-button>

<!-- Block Button -->
<t-button theme="primary" size="large" block>Block Button</t-button>

<!-- Ghost Button (transparent background) -->
<t-button theme="primary" ghost size="large">Ghost Button</t-button>
html
<!-- 基础按钮 -->
<t-button theme="primary" size="large">主按钮</t-button>
<t-button theme="light" size="large">浅色按钮</t-button>
<t-button size="large">默认按钮</t-button>

<!-- 轮廓与文字按钮 -->
<t-button theme="primary" size="large" variant="outline"
  >轮廓按钮</t-button
>
<t-button theme="primary" size="large" variant="text">文字按钮</t-button>

<!-- 图标按钮 -->
<t-button
  theme="primary"
  icon="app"
  content="图标按钮"
  size="large"
></t-button>

<!-- 加载状态 -->
<t-button theme="primary" size="large" loading>加载中</t-button>

<!-- 禁用状态 -->
<t-button theme="primary" size="large" disabled>已禁用</t-button>

<!-- 块级按钮 -->
<t-button theme="primary" size="large" block>块级按钮</t-button>

<!-- 幽灵按钮(透明背景) -->
<t-button theme="primary" ghost size="large">幽灵按钮</t-button>

Input

输入框

json
{
  "usingComponents": {
    "t-input": "tdesign-miniprogram/input/input"
  }
}
html
<t-input
  label="Label"
  placeholder="Please enter"
  value="{{value}}"
  bind:change="onChange"
/>
json
{
  "usingComponents": {
    "t-input": "tdesign-miniprogram/input/input"
  }
}
html
<t-input
  label="标签"
  placeholder="请输入"
  value="{{value}}"
  bind:change="onChange"
/>

Dialog

对话框

json
{
  "usingComponents": {
    "t-dialog": "tdesign-miniprogram/dialog/dialog"
  }
}
html
<t-dialog
  visible="{{visible}}"
  title="Dialog Title"
  content="Dialog content"
  confirm-btn="Confirm"
  cancel-btn="Cancel"
  bind:confirm="onConfirm"
  bind:cancel="onCancel"
/>
json
{
  "usingComponents": {
    "t-dialog": "tdesign-miniprogram/dialog/dialog"
  }
}
html
<t-dialog
  visible="{{visible}}"
  title="对话框标题"
  content="对话框内容"
  confirm-btn="确认"
  cancel-btn="取消"
  bind:confirm="onConfirm"
  bind:cancel="onCancel"
/>

Toast

轻提示

javascript
import Toast from 'tdesign-miniprogram/toast/index';

Toast({
  context: this,
  selector: '#t-toast',
  message: 'Toast message',
});
javascript
import Toast from 'tdesign-miniprogram/toast/index';

Toast({
  context: this,
  selector: '#t-toast',
  message: '提示信息',
});

AI Chat Interface

AI聊天界面

json
{
  "usingComponents": {
    "t-chat-list": "tdesign-miniprogram/chat-list/chat-list",
    "t-chat-message": "tdesign-miniprogram/chat-message/chat-message",
    "t-chat-sender": "tdesign-miniprogram/chat-sender/chat-sender"
  }
}
html
<t-chat-list layout="single">
  <t-chat-message
    avatar="{{item.avatar}}"
    name="{{item.name}}"
    content="{{item.content}}"
    role="{{item.role}}"
  />
  <view slot="footer">
    <t-chat-sender bind:send="onSend" />
  </view>
</t-chat-list>
javascript
Component({
  data: {
    messages: [
      {
        role: 'user',
        content: [{ type: 'text', data: 'Hello' }],
      },
      {
        role: 'assistant',
        content: [{ type: 'text', data: 'Hello! How can I help you?' }],
      },
    ],
  },
  methods: {
    onSend(e) {
      const { value } = e.detail;
      // Handle send message
    },
  },
});
json
{
  "usingComponents": {
    "t-chat-list": "tdesign-miniprogram/chat-list/chat-list",
    "t-chat-message": "tdesign-miniprogram/chat-message/chat-message",
    "t-chat-sender": "tdesign-miniprogram/chat-sender/chat-sender"
  }
}
html
<t-chat-list layout="single">
  <t-chat-message
    avatar="{{item.avatar}}"
    name="{{item.name}}"
    content="{{item.content}}"
    role="{{item.role}}"
  />
  <view slot="footer">
    <t-chat-sender bind:send="onSend" />
  </view>
</t-chat-list>
javascript
Component({
  data: {
    messages: [
      {
        role: 'user',
        content: [{ type: 'text', data: '你好' }],
      },
      {
        role: 'assistant',
        content: [{ type: 'text', data: '你好!请问有什么可以帮你的?' }],
      },
    ],
  },
  methods: {
    onSend(e) {
      const { value } = e.detail;
      // 处理发送消息逻辑
    },
  },
});

Style Customization

样式定制

Method 1: Using Style Attribute

方法1:使用style属性

html
<t-button style="color: red">Custom Style</t-button>
<t-button custom-style="color: red">Custom Style</t-button>
html
<t-button style="color: red">自定义样式按钮</t-button>
<t-button custom-style="color: red">自定义样式按钮</t-button>

Method 2: Disable Style Isolation

方法2:关闭样式隔离

Override styles directly in page:
css
.t-button--primary {
  background-color: navy;
}
In custom components, enable
styleIsolation
:
javascript
Component({
  options: {
    styleIsolation: 'shared',
  },
});
在页面中直接覆盖样式:
css
.t-button--primary {
  background-color: navy;
}
在自定义组件中,开启
styleIsolation
javascript
Component({
  options: {
    styleIsolation: 'shared',
  },
});

Method 3: External Style Classes

方法3:外部样式类

html
<t-button t-class="my-button-class">Button</t-button>
css
.my-button-class {
  background-color: navy !important;
}
html
<t-button t-class="my-button-class">按钮</t-button>
css
.my-button-class {
  background-color: navy !important;
}

Method 4: CSS Variables

方法4:CSS变量

TDesign provides rich CSS variables for theme customization:
css
page {
  --td-button-primary-bg-color: #0052d9;
  --td-button-border-radius: 8rpx;
}
TDesign提供丰富的CSS变量用于主题定制:
css
page {
  --td-button-primary-bg-color: #0052d9;
  --td-button-border-radius: 8rpx;
}

Dark Mode

深色模式

1. Modify app.json

1. 修改app.json

json
{
  "darkmode": true
}
json
{
  "darkmode": true
}

2. Import Design Token

2. 引入设计令牌

In
app.wxss
:
css
@import 'miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss';
app.wxss
中:
css
@import 'miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss';

3. Use CSS Variables

3. 使用CSS变量

css
.text {
  color: var(--td-text-color-secondary);
}
css
.text {
  color: var(--td-text-color-secondary);
}

4. Special Component Adaptation

4. 特殊组件适配

For components wrapped in
custom-tab-bar
or
root-portal
, add
.page
class:
html
<view class="page">
  <t-tab-bar />
</view>
对于被
custom-tab-bar
root-portal
包裹的组件,添加
.page
类:
html
<view class="page">
  <t-tab-bar />
</view>

Reference Files

参考文档

This skill includes comprehensive documentation in
references/
:
本技能在
references/
目录下包含完整文档:

Basic Documentation

基础文档

  • miniprogram/getting-started.md - Quick start guide
  • miniprogram/overview.md - Component overview
  • miniprogram/custom-style.md - Style customization
  • miniprogram/custom-theme.md - Theme customization
  • miniprogram/dark-mode.md - Dark mode
  • miniprogram/getting-started.md - 快速开始指南
  • miniprogram/overview.md - 组件概览
  • miniprogram/custom-style.md - 样式定制
  • miniprogram/custom-theme.md - 主题定制
  • miniprogram/dark-mode.md - 深色模式

Component Documentation (miniprogram/components/)

组件文档(miniprogram/components/)

  • button.md - Button
  • input.md - Input
  • dialog.md - Dialog
  • form.md - Form
  • ... more component docs
  • button.md - 按钮组件
  • input.md - 输入框组件
  • dialog.md - 对话框组件
  • form.md - 表单组件
  • ... 更多组件文档

AI Chat Component Documentation (miniprogram-chat/)

AI聊天组件文档(miniprogram-chat/)

  • getting-started.md - Chat component quick start
  • sse.md - SSE streaming
  • components/chat-message.md - Chat message
  • components/chat-sender.md - Chat sender
  • components/chat-list.md - Chat list
  • ... more chat component docs
Use
Read
tool to access specific reference files when detailed API information is needed.
  • getting-started.md - 聊天组件快速开始
  • sse.md - SSE流式传输
  • components/chat-message.md - 聊天消息组件
  • components/chat-sender.md - 聊天输入组件
  • components/chat-list.md - 聊天列表组件
  • ... 更多聊天组件文档
需要详细API信息时,可使用
Read
工具访问具体参考文档。

Key Requirements

核心要求

  • Minimum base library version:
    ^2.12.0
  • Build npm in WeChat DevTools required
  • Remove
    "style": "v2"
    from
    app.json
  • 最低基础库版本:
    ^2.12.0
  • 需在微信开发者工具中构建npm
  • 从app.json中移除
    "style": "v2"

Resources

相关资源

Notes

注意事项

  • This skill was automatically generated from TDesign official documentation
  • Reference files preserve the structure and examples from source docs
  • Some reference content remains in Chinese as per official documentation
  • 本技能由TDesign官方文档自动生成
  • 参考文档保留了源文档的结构与示例
  • 部分参考内容保留官方文档中的中文表述