Sheet抽屉
bottom/end 单展开位抽屉;可拖拽关闭并提供关闭按钮作为替代。
移动底部面板或桌面侧滑;支持键盘关闭和单展开位拖动。
引入
import { Sheet } from "@cwa-design/react";
import "@cwa-design/react/styles.css"; // 应用入口引入一次当前通过源码 workspace 使用。查看有效安装步骤 →
交互示例
可切换示例主题、开启实色降级并重置状态。应用根部需要 CwaProvider。
Sheet 基础用法
可运行示例 · 与复制源码同源
正在准备交互示例…
查看与复制源码
// 应用入口引入 @cwa-design/react/styles.css,并将此示例置于 CwaProvider 内。
import { Button, Sheet, Text } from "@cwa-design/react";
export default function Example() {
return (
<Sheet placement="bottom">
<Sheet.Trigger render={<Button variant="secondary">查看详细信息</Button>} />
<Sheet.Content>
<Sheet.Title>工作区详情</Sheet.Title>
<Sheet.Description>拖动或按关闭按钮返回。</Sheet.Description>
<Text>一个展开位的底部抽屉;Escape 与关闭按钮提供拖拽替代。</Text>
<Sheet.Close render={<Button variant="secondary">关闭</Button>} />
</Sheet.Content>
</Sheet>
);
}
在应用根部引入 styles.css 并配置 CwaProvider。源码 SHA-256:24fe7a909216
API
下表读取本版本组件契约。原生与 Base UI 继承属性的完整定义保留在 TypeScript 声明中。
类型:SheetProps · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
open | 见类型定义 | boolean | — |
defaultOpen | 见类型定义 | boolean | false |
onOpenChange | (open: boolean) => void | (open: boolean) => void | — |
placement | 见类型定义 | "bottom" | "end" | "bottom" |
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
Sheet.Trigger
Base UI Dialog Trigger 类型;CWA 可附加默认样式类。
类型:DialogTriggerProps · 继承 @base-ui/react/dialog#DialogTriggerProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
Sheet.Close
Base UI Dialog Close 类型;CWA 可附加默认样式类。
类型:DialogCloseProps · 继承 @base-ui/react/dialog#DialogCloseProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
Sheet.Title
Base UI Dialog Title 类型;CWA 可附加默认样式类。
类型:DialogTitleProps · 继承 @base-ui/react/dialog#DialogTitleProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
Sheet.Description
Base UI Dialog Description 类型;CWA 可附加默认样式类。
类型:DialogDescriptionProps · 继承 @base-ui/react/dialog#DialogDescriptionProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
Sheet.Content
Sheet 的主题化 Portal/Popup 组合;材质只写在此部件。
类型:SheetContentProps · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
className | 附加样式类;具体合并行为以实现为准 | string | — |
material | 见类型定义 | "glass-thick" | "solid" | "glass-thick" |
dismissThreshold | 关闭拖动位移阈值(px);不代表 snap point | number | 96 |
材质与状态
材质规则来自源 metadata。覆盖玻璃区域的浮层按实际重叠关系选择较厚或实色材质。
材质属于 Sheet.Content;默认 glass-thick。当前单展开位,无 snapPoints API;Provider solid/系统回退优先。
媒体对照舞台
打开浮层,检查玻璃透色、边缘与阴影在真实亮/暗照片上的表现。
适用的状态与行为见示例及本页 API;系统减少透明与显式 solid 配置会启用回退。
阅读材质指南 →关联 Token
以下变量从组件源样式的实际引用生成。共享光学规则还使用全局玻璃 Token。
--cwa-design-color-scrim--cwa-design-z-dialog--cwa-design-radius-sheet--cwa-design-color-text--cwa-design-font-family--cwa-design-font-size-body--cwa-design-shadow-elevation-large-contact-y--cwa-design-shadow-elevation-large-contact-blur--cwa-design-shadow-elevation-large-ambient-y--cwa-design-shadow-elevation-large-ambient-blur--cwa-design-color-surface-raised--cwa-design-color-border-subtle--cwa-design-shadow-contact-y--cwa-design-shadow-contact-blur--cwa-design-color-glass-contact-shadow--cwa-design-shadow-ambient-y--cwa-design-shadow-ambient-blur--cwa-design-color-glass-ambient-shadow--cwa-design-space-5--cwa-design-color-border-strong--cwa-design-focus-width--cwa-design-color-focus--cwa-design-focus-offset--cwa-design-radius-control--cwa-design-space-2--cwa-design-font-size-title--cwa-design-font-leading-body--cwa-design-space-4--cwa-design-font-size-caption--cwa-design-color-text-muted无障碍与使用约束
semantic-contentvisible-focus-for-interactive-partskeyboard-behavior-from-native-or-base-ui
这些是组件契约与使用要求。具体业务页面仍需验证标签、阅读顺序与实际背景下的对比度。
查看无障碍使用指南 →