kitseed.
组件

Button 按钮

通过视觉权重和完整状态,让每个操作有清楚的位置。

按钮用于触发动作。一个任务区域通常只保留一个 primary;辅助操作使用 secondary 或 ghost,删除等不可逆操作使用危险样式并配合确认。

安装

pnpm dlx shadcn@4.22.1 add http://127.0.0.1:3040/r/v0.3.0/button.json

首次使用请先完成 Registry 与主题接入。

变体与组合

primary、secondary、subtle、ghost 表达主次;danger 和 danger-ghost 表达风险。sm、md、lg 用于文字按钮,icon 和 icon-sm 用于纯图标。加载时组合 Spinner 与明确文案,由调用方禁用重复提交。

<Button variant="secondary" disabled={pending}>
  {pending ? "正在保存…" : "保存修改"}
</Button>

Props

属性类型 / 可选值默认值说明
variantprimary / secondary / subtle / ghost / danger / danger-ghostprimary视觉权重
sizesm / md / lg / icon / icon-smmd内容和尺寸
densitycompact / comfortableProvider 的 compact控件密度
tooltipReactNode—补充提示
disabledReasonstring—应用给出的不可用原因
renderBase UI render 属性—合并到自定义元素
type原生 button 类型button原生按钮默认不提交表单

其余属性沿用原生按钮与 Base UI useRender。disabledReason 只解释原因,需要同时设置 disabled 或 aria-disabled。图标按钮必须有 aria-label;跳转页面时使用真实链接,并通过 render 合并样式和交互属性。

键盘与约束

原生按钮通过 Tab 聚焦、Enter 或 Space 激活。保留 focus-visible 样式;禁用由应用决定,组件不会查询产品权限。Tooltip 只补充信息,不能替代按钮名称。

避免这样使用

不要把整张可点击卡片内的更多按钮嵌套到主按钮中;不要仅用危险颜色而没有动作文案;不要将 aria-disabled 当作完整的业务权限校验。

来源与版本

0.1.0,提炼自 Subtic apps/web/components/ui/button.tsx。移除了只读窗口、平台判断和产品翻译依赖。

查看由当前源码生成的类型参考

只展示 Kitseed 自身定义的属性,原生 HTML 与 Base UI 透传属性请参阅对应上游说明。

Button

属性类型默认值
unstyled?

Keep the behavior and render composition while supplying a consumer-owned appearance.

booleanfalse
density?KitseedDensity—
tooltip?React.ReactNode—
disabledReason?string | undefined—

本页内容