Skip to content

[犀牛鸟]feat(Textarea): add clearable prop to support clearing content - #6782

Open
zjh0326 wants to merge 4 commits into
Tencent:developfrom
zjh0326:feature/textarea-clearable
Open

[犀牛鸟]feat(Textarea): add clearable prop to support clearing content#6782
zjh0326 wants to merge 4 commits into
Tencent:developfrom
zjh0326:feature/textarea-clearable

Conversation

@zjh0326

@zjh0326 zjh0326 commented Jul 3, 2026

Copy link
Copy Markdown
  • Add clearable prop to Textarea component
  • Display clear button when clearable=true and value is not empty
  • Click to clear input content
  • Support dark mode with CSS variables
  • Add example in _example/base.vue

Close #2566

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

💡 需求背景和解决方案

详见技术规格书:
Textarea可清空内容功能-技术规格书.md

问题背景

Textarea 组件目前没有清空按钮,用户需要手动全选删除,操作繁琐。与 Input 组件的 clearable 功能不一致,用户体验割裂。

解决方案

为 Textarea 组件添加 clearable 属性,当设置为 true 时,在文本框右上角显示清空按钮。

实现细节

  1. Props 定义(props.ts + type.ts

    • 添加 clearable?: boolean 属性
    • 默认值为 false
  2. 组件逻辑(textarea.tsx

    • 条件渲染:只在 clearable=true 且输入框有内容时显示按钮
    • 点击事件:清空输入框内容,触发 change 事件
    • 鼠标交互:使用内联样式 + JavaScript 事件实现悬停和点击反馈
    • 主题适配:使用 var(--td-*) CSS 变量,自动适配浅色/深色主题
  3. 示例代码(_example/base.vue

    • 添加 clearable 属性的使用示例

API 变化

新增 Props

clearable?: boolean // 是否可清空,默认 false

视觉效果

默认状态:浅灰色图标(var(--td-text-color-secondary))
悬停状态:蓝色图标(var(--td-brand-color)) + 圆形背景高亮
点击状态:按压缩放(scale(0.85)) + 背景加深
深色模式:自动适配(使用 CSS 变量)

tdesign-vue-next
feat(Textarea): 添加 clearable 属性支持清空内容
新增 clearable prop
点击清空按钮可清空输入内容
支持深色模式

白天模式:
白天模式
夜间模式:
夜间模式

📝 更新日志

  • 本条 PR 不需要纳入 Changelog

添加示例代码

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 文档:已提供技术规格书
  • 代码演示:已添加 _example/base.vue
  • TypeScript 定义:已补充 type.ts
  • Changelog:已提供

- Add clearable prop to Textarea component
- Display clear button when clearable=true and value is not empty
- Click to clear input content
- Support dark mode with CSS variables
- Add example in _example/base.vue

Close Tencent#2566
@Wesley-0808 Wesley-0808 changed the title feat(Textarea): add clearable prop to support clearing content [犀牛鸟]feat(Textarea): add clearable prop to support clearing content Jul 20, 2026
@uyarn

uyarn commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

/update-common 2608

@tdesign-bot

tdesign-bot commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

TDesign Component Site Preview Open

Component Preview
tdesign-vue-next 完成
@tdesign-vue-next/chat 完成

@pkg-pr-new

pkg-pr-new Bot commented Jul 29, 2026

Copy link
Copy Markdown
  • tdesign-vue-next-demo

    npm i https://pkg.pr.new/@tdesign-vue-next/auto-import-resolver@6782
    
    npm i https://pkg.pr.new/tdesign-vue-next@6782
    
    npm i https://pkg.pr.new/@tdesign-vue-next/chat@6782
    
    npm i https://pkg.pr.new/@tdesign-vue-next/nuxt@6782
    

commit: f5fd975

@uyarn uyarn added the 💭 discussion we are discussing label Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💭 discussion we are discussing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[switch] table中的switch组件@change传递的数据无法正确同步

3 participants