mcpField
T
tdesign-miniprogram

tdesign-miniprogram

github.com/joneqian设计与 UI32398 次安装37 周前更新
代码仓库

关于 tdesign-miniprogram

tdesign-miniprogram 是使用腾讯 TDesign 组件库开发微信小程序的技能,提供组件、主题、暗色模式及 AI 聊天界面的实现指导。适合构建和定制小程序界面的开发者。

主要功能

  1. 01提供 TDesign 小程序组件使用指导
  2. 02介绍主题与样式自定义方式
  3. 03说明暗色模式配置
  4. 04提供 AI 聊天组件文档
  5. 05包含组件 API 参考文档

适用场景

  1. 01使用 TDesign 组件构建界面
  2. 02自定义组件主题和样式
  3. 03为小程序适配暗色模式
  4. 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.md
sse.md
references/miniprogram-chat/components/
attachments.md
chat-actionbar.md
chat-content.md
chat-list.md
chat-loading.md
chat-markdown.md
chat-message.md
chat-sender.md
chat-thinking.md
references/miniprogram/components/
action-sheet.md
avatar.md
back-top.md
badge.md
button.md
calendar.md
cascader.md
cell.md
checkbox.md
collapse.md
count-down.md
date-time-picker.md
dialog.md
divider.md
drawer.md
dropdown-menu.md
empty.md
fab.md
footer.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)
ComponentDescriptionImport Path
CalendarCalendartdesign-miniprogram/calendar/calendar
CascaderCascadertdesign-miniprogram/cascader/cascader
CheckBoxCheckboxtdesign-miniprogram/checkbox/checkbox
DateTimePickerDate Time Pickertdesign-miniprogram/date-time-picker/date-time-picker
InputInputtdesign-miniprogram/input/input
PickerPickertdesign-miniprogram/picker/picker
RadioRadiotdesign-miniprogram/radio/radio
RateRatetdesign-miniprogram/rate/rate
SearchSearchtdesign-miniprogram/search/search
SliderSlidertdesign-miniprogram/slider/slider
StepperSteppertdesign-miniprogram/stepper/stepper
SwitchSwitchtdesign-miniprogram/switch/switch
TextareaTextareatdesign-miniprogram/textarea/textarea
TreeSelectTree Selecttdesign-miniprogram/tree-select/tree-select
UploadUploadtdesign-miniprogram/upload/upload
FormFormtdesign-miniprogram/form/form
Data Display Components (18)
ComponentDescriptionImport Path
AvatarAvatartdesign-miniprogram/avatar/avatar
BadgeBadgetdesign-miniprogram/badge/badge
CellCelltdesign-miniprogram/cell/cell
CollapseCollapsetdesign-miniprogram/collapse/collapse
CountDownCountdowntdesign-miniprogram/count-down/count-down
EmptyEmpty Statetdesign-miniprogram/empty/empty
FooterFootertdesign-miniprogram/footer/footer
GridGridtdesign-miniprogram/grid/grid
ImageImagetdesign-miniprogram/image/image
ImageViewerImage Viewertdesign-miniprogram/image-viewer/image-viewer
ProgressProgresstdesign-miniprogram/progress/progress
ResultResulttdesign-miniprogram/result/result
SkeletonSkeletontdesign-miniprogram/skeleton/skeleton
StickyStickytdesign-miniprogram/sticky/sticky
SwiperSwipertdesign-miniprogram/swiper/swiper
TableTabletdesign-miniprogram/table/table
TagTagtdesign-miniprogram/tag/tag
ListListtdesign-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聊天 Markdowntdesign-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