关于 tdesign-miniprogram
tdesign-miniprogram 是使用腾讯 TDesign 组件库开发微信小程序的技能,提供组件、主题、暗色模式及 AI 聊天界面的实现指导。适合构建和定制小程序界面的开发者。
主要功能
- 01提供 TDesign 小程序组件使用指导
- 02介绍主题与样式自定义方式
- 03说明暗色模式配置
- 04提供 AI 聊天组件文档
- 05包含组件 API 参考文档
适用场景
- 01使用 TDesign 组件构建界面
- 02自定义组件主题和样式
- 03为小程序适配暗色模式
- 04创建 AI 聊天界面
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ joneqian/ claude-skills-suite --skill tdesign-miniprogram安装后在 Claude Code 中输入/tdesign-miniprogram确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/miniprogram-chat/getting-started.mdsse.mdreferences/miniprogram-chat/components/attachments.mdchat-actionbar.mdchat-content.mdchat-list.mdchat-loading.mdchat-markdown.mdchat-message.mdchat-sender.mdchat-thinking.mdreferences/miniprogram/components/action-sheet.mdavatar.mdback-top.mdbadge.mdbutton.mdcalendar.mdcascader.mdcell.mdcheckbox.mdcollapse.mdcount-down.mddate-time-picker.mddialog.mddivider.mddrawer.mddropdown-menu.mdempty.mdfab.mdfooter.md详细介绍
TDesign Mini Program 技能
TDesign 微信小程序组件库,是腾讯推出的企业级设计系统。提供 60+ 个高质量组件,支持深色模式、主题自定义等功能。
何时使用此技能
满足以下情况时,应触发此技能:
- 使用 TDesign 组件库开发微信小程序
- 使用 TDesign UI 组件(Button、Input、Dialog 等)
- 按照 TDesign 设计规范实现界面
- 配置 TDesign 主题和样式自定义
- 构建 AI 聊天界面(使用 TDesign Chat 组件)
- 实现深色模式适配
快速开始
安装
npm i tdesign-miniprogram -S --production
修改 app.json
从 app.json 中移除 "style": "v2",以避免样式冲突。
修改 project.config.json
在 project.config.json 的 setting 部分添加以下内容:
{
"setting": {
"packNpmManually": true,
"packNpmRelationList": [
{
"packageJsonPath": "./package.json",
"miniprogramNpmDistDir": "./"
}
]
}
}
修改 tsconfig.json(TypeScript 项目)
{
"paths": {
"tdesign-miniprogram/*": [
"./miniprogram/miniprogram_npm/tdesign-miniprogram/*"
]
}
}
修改 project.config.json 后,在微信开发者工具中构建 npm:
Tools - Build npm
构建成功后,勾选
Compile JS to ES5
使用组件
在页面或组件 JSON 文件中导入:
{
"usingComponents": {
"t-button": "tdesign-miniprogram/button/button"
}
}
在 WXML 中使用:
<t-button theme="primary">Button</t-button>
组件类别
基础组件(6 个)
| 组件 | 描述 | 导入路径 |
|---|---|---|
| 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 |
导航组件(8 个)
| 组件 | 描述 | 导入路径 |
|---|---|---|
| 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)
| Component | Description | Import Path |
|---|---|---|
| Calendar | Calendar | tdesign-miniprogram/calendar/calendar |
| Cascader | Cascader | tdesign-miniprogram/cascader/cascader |
| CheckBox | Checkbox | tdesign-miniprogram/checkbox/checkbox |
| DateTimePicker | Date Time Picker | tdesign-miniprogram/date-time-picker/date-time-picker |
| Input | Input | tdesign-miniprogram/input/input |
| Picker | Picker | tdesign-miniprogram/picker/picker |
| Radio | Radio | tdesign-miniprogram/radio/radio |
| Rate | Rate | tdesign-miniprogram/rate/rate |
| Search | Search | tdesign-miniprogram/search/search |
| Slider | Slider | tdesign-miniprogram/slider/slider |
| Stepper | Stepper | tdesign-miniprogram/stepper/stepper |
| Switch | Switch | tdesign-miniprogram/switch/switch |
| Textarea | Textarea | tdesign-miniprogram/textarea/textarea |
| TreeSelect | Tree Select | tdesign-miniprogram/tree-select/tree-select |
| Upload | Upload | tdesign-miniprogram/upload/upload |
| Form | Form | tdesign-miniprogram/form/form |
Data Display Components (18)
| Component | Description | Import Path |
|---|---|---|
| Avatar | Avatar | tdesign-miniprogram/avatar/avatar |
| Badge | Badge | tdesign-miniprogram/badge/badge |
| Cell | Cell | tdesign-miniprogram/cell/cell |
| Collapse | Collapse | tdesign-miniprogram/collapse/collapse |
| CountDown | Countdown | tdesign-miniprogram/count-down/count-down |
| Empty | Empty State | tdesign-miniprogram/empty/empty |
| Footer | Footer | tdesign-miniprogram/footer/footer |
| Grid | Grid | tdesign-miniprogram/grid/grid |
| Image | Image | tdesign-miniprogram/image/image |
| ImageViewer | Image Viewer | tdesign-miniprogram/image-viewer/image-viewer |
| Progress | Progress | tdesign-miniprogram/progress/progress |
| Result | Result | tdesign-miniprogram/result/result |
| Skeleton | Skeleton | tdesign-miniprogram/skeleton/skeleton |
| Sticky | Sticky | tdesign-miniprogram/sticky/sticky |
| Swiper | Swiper | tdesign-miniprogram/swiper/swiper |
| Table | Table | tdesign-miniprogram/table/table |
| Tag | Tag | tdesign-miniprogram/tag/tag |
| List | List | tdesign-miniprogram/list/list |
反馈组件(12)
| 组件 | 描述 | 导入路径 |
|---|---|---|
| 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 聊天组件(9)
| 组件 | 描述 | 导入路径 |
|---|---|---|
| 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 |
常用模式
按钮
<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>
<t-button theme="primary" size="large" variant="outline"
>Outline Button</t-button
>
<t-button theme="primary" size="large" variant="text">Text Button</t-button>
<t-button
theme="primary"
icon="app"
content="Icon Button"
size="large"
></t-button>
<t-button theme="primary" size="large" loading>Loading</t-button>
<t-button theme="primary" size="large" disabled>Disabled</t-button>
<t-button theme="primary" size="large" block>Block Button</t-button>
<t-button theme="primary" ghost size="large">Ghost Button</t-button>
输入框
{
"usingComponents": {
"t-input": "tdesign-miniprogram/input/input"
}
}
<t-input
label="Label"
placeholder="Please enter"
value="{{value}}"
bind:change="onChange"
/>
对话框
{
"usingComponents": {
"t-dialog": "tdesign-miniprogram/dialog/dialog"
}
}
<t-dialog
visible="{{visible}}"
title="Dialog Title"
content="Dialog content"
confirm-btn="Confirm"
cancel-btn="Cancel"
bind:confirm="onConfirm"
bind:cancel="onCancel"
/>
轻提示
import Toast from 'tdesign-miniprogram/toast/index';
Toast({
context: this,
selector: '#t-toast',
message: 'Toast message',
});
AI 聊天界面
{
"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"
}
}
<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>
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
},
},
});
样式自定义
方法 1:使用样式属性
<t-button style="color: red">Custom Style</t-button>
<t-button custom-style="color: red">Custom Style</t-button>
方法 2:禁用样式隔离
直接在页面中覆盖样式:
.t-button--primary {
background-color: navy;
}
在自定义组件中,启用 styleIsolation:
Component({
options: {
styleIsolation: 'shared',
},
});
方法 3:外部样式类
<t-button t-class="my-button-class">Button</t-button>
.my-button-class {
background-color: navy !important;
}
方法 4:CSS 变量
TDesign 提供丰富的 CSS 变量用于自定义主题:
page {
--td-button-primary-bg-color: #0052d9;
--td-button-border-radius: 8rpx;
}
深色模式
1. 修改 app.json
{
"darkmode": true
}
2. 导入设计令牌
在 app.wxss 中:
@import 'miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss';
3. 使用 CSS 变量
.text {
color: var(--td-text-color-secondary);
}
4. 特殊组件适配
对于封装在 custom-tab-bar 或 root-portal 中的组件,添加 .page 类:
<view class="page">
<t-tab-bar />
</view>
参考文件
此技能在 references/ 中提供了全面的文档:
基础文档
- miniprogram/getting-started.md - 快速入门指南
- miniprogram/overview.md - 组件概览
- miniprogram/custom-style.md - 样式自定义
- miniprogram/custom-theme.md - 主题自定义
- miniprogram/dark-mode.md - 深色模式
组件文档(miniprogram/components/)
- button.md - 按钮
- input.md - 输入框
- dialog.md - 对话框
- form.md - 表单
- ... 更多组件文档
AI 聊天组件文档(miniprogram-chat/)
- getting-started.md - 聊天组件快速入门
- sse.md - SSE 流式传输
- components/chat-message.md - 聊天消息
- components/chat-sender.md - 聊天发送器
- components/chat-list.md - 聊天列表
- ... 更多聊天组件文档
需要详细的 API 信息时,使用 Read 工具访问特定参考文件。
关键要求
- 基础库最低版本:
^2.12.0 - 必须在微信开发者工具中构建 npm
- 从
app.json中移除"style": "v2"
资源
注意事项
- 此技能根据 TDesign 官方文档自动生成
- 参考文件保留了源文档的结构和示例
- 根据官方文档,部分参考内容仍为中文
评论
支持 Markdown