Button按钮
执行动作的原生按钮;表单提交需显式 type="submit"。
提交表单、保存设置或触发操作;同一区域只保留一个主操作。
引入
import { Button } from "@cwa-design/react";
import "@cwa-design/react/styles.css"; // 应用入口引入一次当前通过源码 workspace 使用。查看有效安装步骤 →
交互示例
可切换示例主题、开启实色降级并重置状态。应用根部需要 CwaProvider。
Button 基础用法
可运行示例 · 与复制源码同源
正在准备交互示例…
button-basic
查看与复制源码
// 可编译示例:button-basic。examples:check 以 tsc 编译验证(T24 回填 digest)。
import { Button } from "@cwa-design/react";
export function ButtonBasic() {
return (
<Button
variant="primary"
onClick={() => {
// 业务动作
}}
>
保存设置
</Button>
);
}
在应用根部引入 styles.css 并配置 CwaProvider。源码 SHA-256:0c141d8dad24
Button 加载状态
可运行示例 · 与复制源码同源
正在准备交互示例…
button-loading
查看与复制源码
import { Button } from "@cwa-design/react";
import { useState } from "react";
// 可编译示例:loading 期间禁止重复提交,结束后恢复。
export function ButtonLoading() {
const [saving, setSaving] = useState(false);
return (
<Button
variant="primary"
loading={saving}
onClick={() => {
setSaving(true);
setTimeout(() => setSaving(false), 1500);
}}
>
{saving ? "保存中…" : "保存设置"}
</Button>
);
}
在应用根部引入 styles.css 并配置 CwaProvider。源码 SHA-256:d311e0b1d527
API
下表读取本版本组件契约。原生与 Base UI 继承属性的完整定义保留在 TypeScript 声明中。
类型:ButtonProps · 继承 React.ButtonHTMLAttributes<HTMLButtonElement>;disabled、onClick、name/value、form、aria-* 等原生属性直接透传 · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
variant | 见类型定义 | "primary" | "secondary" | "ghost" | "danger" | "primary" |
size | 见类型定义 | "sm" | "md" | "lg" | "md" |
loading | 见类型定义 | boolean | false |
ref | React.Ref<HTMLButtonElement> | React.Ref<HTMLButtonElement> | — |
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
type | 实现为原生 type 提供 button 默认值 | "button" | "submit" | "reset" | "button" |
材质与状态
继承父级表面
材质规则来自源 metadata。覆盖玻璃区域的浮层按实际重叠关系选择较厚或实色材质。
控件自身使用 tint/实色填充,不额外叠加 backdrop blur;与父玻璃壳共享光学层。
适用的状态与行为见示例及本页 API;系统减少透明与显式 solid 配置会启用回退。
阅读材质指南 →关联 Token
以下变量从组件源样式的实际引用生成。共享光学规则还使用全局玻璃 Token。
--cwa-design-space-2--cwa-design-font-family--cwa-design-font-size-body--cwa-design-radius-control--cwa-design-color-glass-reflection--cwa-design-color-glass-inner-highlight--cwa-design-color-glass-inner-shade--cwa-design-shadow-contact-y--cwa-design-shadow-contact-blur--cwa-design-color-glass-contact-shadow--cwa-design-motion-control--cwa-design-focus-width--cwa-design-color-focus--cwa-design-focus-offset--cwa-design-color-accent--cwa-design-color-on-accent--cwa-design-color-text--cwa-design-color-surface--cwa-design-color-glass-rim-bottom--cwa-design-color-glass-rim-top--cwa-design-color-danger--cwa-design-space-3--cwa-design-space-4--cwa-design-space-5--cwa-design-font-size-title--cwa-design-color-border-strong无障碍与使用约束
semantic-contentvisible-focus-for-interactive-partskeyboard-behavior-from-native-or-base-ui
这些是组件契约与使用要求。具体业务页面仍需验证标签、阅读顺序与实际背景下的对比度。
查看无障碍使用指南 →