CwaProvider全局配置
主题、材质、动效、密度与 Portal 的应用根;将所有需要上下文的组件置于其内。
在应用根部配置视觉偏好,让控件与浮层共享主题。
引入
import { CwaProvider, useCwaContext, useOptionalCwaContext } from "@cwa-design/react";
import "@cwa-design/react/styles.css"; // 应用入口引入一次当前通过源码 workspace 使用。查看有效安装步骤 →
交互示例
可切换示例主题、开启实色降级并重置状态。应用根部需要 CwaProvider。
CwaProvider 基础用法
可运行示例 · 与复制源码同源
正在准备交互示例…
provider-basic
查看与复制源码
// 应用入口引入 @cwa-design/react/styles.css,并将此示例置于 CwaProvider 内。
import { CwaProvider, Text } from "@cwa-design/react";
export default function Example() {
return (
<CwaProvider theme="light" material="auto">
<Text>应用根提供主题、材质与 Portal 上下文。</Text>
</CwaProvider>
);
}
在应用根部引入 styles.css 并配置 CwaProvider。源码 SHA-256:05a47e6725dd
API
下表读取本版本组件契约。原生与 Base UI 继承属性的完整定义保留在 TypeScript 声明中。
类型:CwaProviderProps · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
theme | 见类型定义 | "light" | "dark" | "system" | "system" |
material | 见类型定义 | "auto" | "solid" | "auto" |
motion | full 不覆盖系统 reduced-motion | "system" | "reduced" | "full" | "system" |
density | 见类型定义 | "comfortable" | "compact" | "comfortable" |
locale | 见类型定义 | string | — |
portalContainer | HTMLElement | null | HTMLElement | null | null;客户端 Portal 默认挂到 body |
className | 附加样式类;具体合并行为以实现为准 | string | — |
style | React.CSSProperties | React.CSSProperties | — |
children必填 | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
材质与状态
继承父级表面
材质规则来自源 metadata。覆盖玻璃区域的浮层按实际重叠关系选择较厚或实色材质。
不创建玻璃表面;material="solid" 强制组件表面实色。theme="system" 在 SSR/首帧不写解析后的主题,客户端解析系统偏好。
适用的状态与行为见示例及本页 API;系统减少透明与显式 solid 配置会启用回退。
阅读材质指南 →关联 Token
以下变量从组件源样式的实际引用生成。共享光学规则还使用全局玻璃 Token。
此组件没有独立 CSS Token 引用;继承 Provider 与组合子组件的主题。
在主题实验室调整公开 Token →无障碍与使用约束
context-requiredssr-stable-themesystem-preference-priority
这些是组件契约与使用要求。具体业务页面仍需验证标签、阅读顺序与实际背景下的对比度。
查看无障碍使用指南 →