Skip to content

[犀牛鸟]feat: add eye-dropper support to ColorPicker component - #6763

Open
zjh0326 wants to merge 5 commits into
Tencent:developfrom
zjh0326:feature/eye-dropper
Open

[犀牛鸟]feat: add eye-dropper support to ColorPicker component#6763
zjh0326 wants to merge 5 commits into
Tencent:developfrom
zjh0326:feature/eye-dropper

Conversation

@zjh0326

@zjh0326 zjh0326 commented Jul 1, 2026

Copy link
Copy Markdown

🤔 这个 PR 的性质是?

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

🔗 相关 Issue

Close #2568

💡 需求背景和解决方案

1. 要解决的具体问题

在选色时,用户需要直接在页面中取色而不是手动调整面板。例如:用户上传一张背景图后想调整页面背景色,希望可以直接吸色而不是手动编辑。

现有组件不支持浏览器原生的 EyeDropper API(Chrome/Edge 95+),用户无法快速从页面取色。

2. 最终的 API 实现和用法

  • 新增工具函数tdesign-common/js/color-picker/eyedropper.ts):

    • isEyeDropperSupported(): boolean — 检测浏览器是否支持 EyeDropper API
    • pickColor(): Promise<string> — 打开系统取色器并返回选取的颜色值(hex 格式)
  • ColorPicker 组件变动

    • 在面板头部右侧新增"吸色"按钮(滴管图标)
    • 按钮只在浏览器支持 EyeDropper API 时显示(Chrome/Edge 95+)
    • 点击按钮打开系统取色器,选取后自动更新 ColorPicker 的颜色值
    • 用户按 Esc 取消取色时,组件不会报错(优雅处理)

3. UI/交互变动截图

ColorPicker 面板头部右侧的滴管按钮
图片

📝 更新日志

  • feat(color-picker): 添加 EyeDropper API 工具函数
  • 本条 PR 不需要纳入 Changelog

tdesign-vue-next

  • feat(ColorPicker): 支持吸色功能,使用原生 EyeDropper API 实现页面取色

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

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

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充(已添加 'eyedropper'ColorPickerChangeTrigger 类型)
  • Changelog 已提供或无须提供

📌 备注

本 PR 依赖于 tdesign-common 仓库的修改:

zjh0326 added 2 commits July 1, 2026 16:32
- Add eyedropper.ts utility in tdesign-common
- Add eye-dropper button to ColorPicker panel header
- Support color picking via native EyeDropper API
- Button only shows when browser supports the API (Chrome/Edge 95+)
- Handle errors when user cancels picking
- Add 'eyedropper' to ColorPickerChangeTrigger type
- Replace title with tip prop in Button component
- Remove console.log statements for production readiness
@Wesley-0808 Wesley-0808 changed the title feat: add eye-dropper support to ColorPicker component [犀牛鸟]feat: add eye-dropper support to ColorPicker component Jul 20, 2026
@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@6763
    
    npm i https://pkg.pr.new/tdesign-vue-next@6763
    
    npm i https://pkg.pr.new/@tdesign-vue-next/chat@6763
    
    npm i https://pkg.pr.new/@tdesign-vue-next/nuxt@6763
    

commit: 79743d2

@uyarn uyarn added the 💭 discussion we are discussing label Jul 29, 2026
@uyarn

uyarn commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

/update-common 2582

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.

[tooltip][pagination] tooltip和pagination组件在Nuxt3报错

3 participants