tdesign-miniprogram

TDesign Mini Program UI component library by Tencent. Use for building WeChat mini apps with TDesign components, design system, and best practices.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "tdesign-miniprogram" with this command: npx skills add joneqian/claude-skills-suite/joneqian-claude-skills-suite-tdesign-miniprogram

TDesign Mini Program Skill

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.

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

Quick Start

Installation

npm i tdesign-miniprogram -S --production

Modify app.json

Remove "style": "v2" from app.json to avoid style conflicts.

Modify project.config.json

Add the following to the setting section of project.config.json:

{
  "setting": {
    "packNpmManually": true,
    "packNpmRelationList": [
      {
        "packageJsonPath": "./package.json",
        "miniprogramNpmDistDir": "./"
      }
    ]
  }
}

Modify tsconfig.json (TypeScript projects)

{
  "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

Using Components

Import in page or component JSON file:

{
  "usingComponents": {
    "t-button": "tdesign-miniprogram/button/button"
  }
}

Use in WXML:

<t-button theme="primary">Button</t-button>

Component Categories

Basic Components (6)

ComponentDescriptionImport Path
ButtonButtontdesign-miniprogram/button/button
DividerDividertdesign-miniprogram/divider/divider
FabFloating Action Buttontdesign-miniprogram/fab/fab
IconIcontdesign-miniprogram/icon/icon
LayoutLayouttdesign-miniprogram/row/row
LinkLinktdesign-miniprogram/link/link

Navigation Components (8)

ComponentDescriptionImport Path
BackTopBack to Toptdesign-miniprogram/back-top/back-top
DrawerDrawertdesign-miniprogram/drawer/drawer
IndexesIndex Listtdesign-miniprogram/indexes/indexes
NavbarNavigation Bartdesign-miniprogram/navbar/navbar
SideBarSide Navigationtdesign-miniprogram/side-bar/side-bar
StepsStepstdesign-miniprogram/steps/steps
TabBarBottom Tab Bartdesign-miniprogram/tab-bar/tab-bar
TabsTabstdesign-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

Feedback Components (12)

ComponentDescriptionImport Path
ActionSheetAction Sheettdesign-miniprogram/action-sheet/action-sheet
DialogDialogtdesign-miniprogram/dialog/dialog
DropdownMenuDropdown Menutdesign-miniprogram/dropdown-menu/dropdown-menu
GuideGuidetdesign-miniprogram/guide/guide
LoadingLoadingtdesign-miniprogram/loading/loading
MessageMessagetdesign-miniprogram/message/message
NoticeBarNotice Bartdesign-miniprogram/notice-bar/notice-bar
OverlayOverlaytdesign-miniprogram/overlay/overlay
PopupPopuptdesign-miniprogram/popup/popup
PullDownRefreshPull Down Refreshtdesign-miniprogram/pull-down-refresh/pull-down-refresh
SwipeCellSwipe Celltdesign-miniprogram/swipe-cell/swipe-cell
ToastToasttdesign-miniprogram/toast/toast

AI Chat Components (9)

ComponentDescriptionImport Path
ChatListChat Listtdesign-miniprogram/chat-list/chat-list
ChatMessageChat Messagetdesign-miniprogram/chat-message/chat-message
ChatSenderChat Sendertdesign-miniprogram/chat-sender/chat-sender
ChatContentChat Contenttdesign-miniprogram/chat-content/chat-content
ChatActionbarChat Action Bartdesign-miniprogram/chat-actionbar/chat-actionbar
ChatLoadingChat Loadingtdesign-miniprogram/chat-loading/chat-loading
ChatMarkdownChat Markdowntdesign-miniprogram/chat-markdown/chat-markdown
ChatThinkingChat Thinkingtdesign-miniprogram/chat-thinking/chat-thinking
AttachmentsAttachmentstdesign-miniprogram/attachments/attachments

Common Patterns

Button

<!-- 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>

Input

{
  "usingComponents": {
    "t-input": "tdesign-miniprogram/input/input"
  }
}
<t-input
  label="Label"
  placeholder="Please enter"
  value="{{value}}"
  bind:change="onChange"
/>

Dialog

{
  "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"
/>

Toast

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

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

AI Chat Interface

{
  "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
    },
  },
});

Style Customization

Method 1: Using Style Attribute

<t-button style="color: red">Custom Style</t-button>
<t-button custom-style="color: red">Custom Style</t-button>

Method 2: Disable Style Isolation

Override styles directly in page:

.t-button--primary {
  background-color: navy;
}

In custom components, enable styleIsolation:

Component({
  options: {
    styleIsolation: 'shared',
  },
});

Method 3: External Style Classes

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

Method 4: CSS Variables

TDesign provides rich CSS variables for theme customization:

page {
  --td-button-primary-bg-color: #0052d9;
  --td-button-border-radius: 8rpx;
}

Dark Mode

1. Modify app.json

{
  "darkmode": true
}

2. Import Design Token

In app.wxss:

@import 'miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss';

3. Use CSS Variables

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

4. Special Component Adaptation

For components wrapped in custom-tab-bar or root-portal, add .page class:

<view class="page">
  <t-tab-bar />
</view>

Reference Files

This skill includes comprehensive documentation in 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

Component Documentation (miniprogram/components/)

  • button.md - Button
  • input.md - Input
  • dialog.md - Dialog
  • form.md - Form
  • ... more component docs

AI Chat Component Documentation (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.

Key Requirements

  • Minimum base library version: ^2.12.0
  • Build npm in WeChat DevTools required
  • Remove "style": "v2" from app.json

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

wechat-miniprogram

No summary provided by upstream source.

Repository SourceNeeds Review
General

ui-ux-pro-max

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

Version Drift Publish

One command to check if your entire stack is up to date. SSHes into servers, queries APIs, and compares installed versions against latest — across every serv...

Registry SourceRecently Updated