Button 按钮
用于触发操作,如提交表单、保存内容或删除记录。
基础用法
solid 适合主要操作,outline 使用白底、正文色和细边框,适合次要操作,ghost 适合低优先级操作,link 使用主题色文字,无内边距、边框和固定控件高度。页面跳转使用 Link 组件。
主按钮和描边按钮点击时,外缘波纹快速扩散后缓慢淡出,按钮与文字保持稳定;文字和链接按钮不展示波纹。主按钮悬停时提亮、按下时加深;描边按钮保持底色,通过文字和边框变色反馈。危险操作使用红色,波纹跟随主题;关闭动效或启用系统减少动态效果后不展示波纹。
组件样式会自动加载,接入步骤见快速开始。
危险操作
为删除、清空、撤销等操作使用 danger。所有样式、图标和加载状态都会使用独立的红色语义主题。
尺寸
提供小、中、大三种尺寸,适配不同密度的操作区。外观可通过主题变量定制。
禁用与加载
加载时会显示旋转指示器,自动禁用按钮,并设置 aria-busy。原有文字保留,帮助用户理解正在进行的操作。
实际交互
通过应用状态控制 loading。下面的示例会在 1.2 秒后完成保存;实际使用时,把计时器替换成你的异步业务操作。
图标
示例使用 lucide-react 的按需导入图标。startIcon 和 endIcon 接受 React 节点。图标容器默认对辅助技术隐藏,按钮文字提供名称;只有图标时请设置 aria-label。
整行显示
fullWidth 让按钮填满父容器宽度,适合表单提交和移动端操作区。
扩展用法
Button API
支持其他原生 button 属性,例如 onClick、name、value、form、className、style、aria-* 和 data-*。
类型
可导入 ButtonProps 定义组件属性,或单独使用以下样式、尺寸类型:
表单与键盘
默认 type="button",放进表单时不会意外提交。需要提交表单,请显式设置 type="submit"。
组件保留原生键盘行为:Tab 聚焦,Enter 或 Space 触发。禁用和加载状态会阻止交互;聚焦时显示清晰的焦点轮廓。
定制样式
配置选项与实时示例见定制主题。