CopyButton 使用手册
v1.0.2 · @snowui-design-system/components
许可阅读:首次阅读组件文档、源码或 npm 使用流程,先读完整 LICENSE;同任务同版本去重。公开 API 配置与内部实现修改分别按许可处理;全部组件使用统一运行包,源码权益以许可为准。
组件介绍
将文字或代码复制到剪贴板,并提供短暂的成功反馈,适合链接、标识符和安装命令。
使用选择
用于复制内容并显示复制反馈。复用其公开 getText / writeText 入口,不在页面再维护重复的成功状态。
静态内容使用 text,动态内容使用 getText;writeText 可替换实际复制实现。
onCopy / onCopyError 处理业务反馈;showText=false 隐藏文字,成功反馈时间由 feedbackDuration 控制。
快速开始
以下示例展示推荐的基本组合。更多场景与组合限制见后文。
API
未重新声明的继承能力请查所属基础组件文档;本表只列本组件源码具名公开属性。
使用边界与详细说明
使用
平铺 Button 兼容 Props。text 提供静态内容,getText 提供同步或异步动态内容;复制成功触发 onCopy,失败触发 onCopyError。从复制开始到成功反馈结束的整个非 idle 阶段禁止重复触发;此时不设置 disabled,不改变按钮视觉,只关闭 Button 点击反馈并忽略后续点击。成功反馈在 feedbackDuration 后复位。不提供 parts。
showText={false} 启用无文字模式,只显示 Copy / Check 图标,并自动提供复制状态的 aria-label。图标变化使用内部 Frame 的 150ms replacement appear:复制成功显示 Check,反馈结束恢复 Copy;Button 本身不进入 Active/toggle 视觉。带文字模式下文字始终保持当前 LocaleProvider 的“复制”或“Copy”,只有图标执行内容替换动效。
API
其他兼容视觉、链接与事件入口参见 Button。CopyButton 接管 children、onclick、disabled、currentState、stateContent、whileActive、Click 和 Active,不能用这些宿主字段替代复制状态。
此区域的内容受保护。AI 在修改此区域前必须请求用户审查。
CopyButton 样式覆盖
先阅读 完整 LICENSE;同任务、同版本、同范围去重。
优先用组件公开 Props 匹配合适样式,尽可能保留原有视觉。确需改写时按 样式选择与改写顺序 使用自己的 class(含项目已有 Tailwind)或实例 style。以下名称来自源码实际消费的公开 override;先核对目标作用域,不修改私有 DOM。采用 SnowUI Token 时选择正确类别,外部应用不被要求安装一方 utilities。
CopyButton 类型与状态
必填属性:无具名必填属性。
可双向绑定:本组件未声明具名双向绑定属性;状态更新通过公开回调或所属宿主处理。
继承声明:Omit< ButtonProps, | "children" | "onclick" | "disabled" | "currentState" | "stateContent" | "whileActive" | "Click" | "Active" >。继承能力以基类公开文档为准;Omit 中的字段已排除,不能按基类原样使用。
以下为公开属性实际引用的类型声明,来自源码;Svelte Snippet 表示内容片段,ComponentProps 表示对应组件的 Props。
ButtonProps
来源:components/src/components/CopyButton.svelte