DropdownMenu下拉菜单
触发动作的菜单;不是表单选择值控件。
更多操作或上下文命令;选择值请使用 Select。
引入
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem } from "@cwa-design/react";
import "@cwa-design/react/styles.css"; // 应用入口引入一次当前通过源码 workspace 使用。查看有效安装步骤 →
交互示例
可切换示例主题、开启实色降级并重置状态。应用根部需要 CwaProvider。
DropdownMenu 基础用法
可运行示例 · 与复制源码同源
正在准备交互示例…
查看与复制源码
// 应用入口引入 @cwa-design/react/styles.css,并将此示例置于 CwaProvider 内。
import {
Button,
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
Stack,
Text,
} from "@cwa-design/react";
import { useState } from "react";
export default function Example() {
const [action, setAction] = useState("请选择项目操作。");
return (
<Stack gap={3}>
<DropdownMenu>
<DropdownMenu.Trigger render={<Button variant="secondary">项目操作</Button>} />
<DropdownMenuContent>
<DropdownMenuItem onClick={() => setAction("已复制链接")}>复制链接</DropdownMenuItem>
<DropdownMenuItem onClick={() => setAction("已归档项目")}>归档项目</DropdownMenuItem>
<DropdownMenuItem disabled>删除(无权限)</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
<Text role="status" variant="caption">
{action}
</Text>
</Stack>
);
}
在应用根部引入 styles.css 并配置 CwaProvider。源码 SHA-256:93b8e12dc506
API
下表读取本版本组件契约。原生与 Base UI 继承属性的完整定义保留在 TypeScript 声明中。
类型:DropdownMenuRootProps · 继承 @base-ui/react/menu#MenuRootProps;open/defaultOpen/onOpenChange 等完整继承 · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
DropdownMenu.Trigger
Base UI Trigger 直接导出。
类型:MenuTriggerProps · 继承 @base-ui/react/menu#MenuTriggerProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenu.Group
Base UI Group 直接导出。
类型:MenuGroupProps · 继承 @base-ui/react/menu#MenuGroupProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenu.GroupLabel
Base UI GroupLabel 直接导出。
类型:MenuGroupLabelProps · 继承 @base-ui/react/menu#MenuGroupLabelProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenu.SubmenuRoot
Base UI SubmenuRoot 直接导出。
类型:MenuSubmenuRootProps · 继承 @base-ui/react/menu#MenuSubmenuRootProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenu.SubmenuTrigger
Base UI SubmenuTrigger 直接导出。
类型:MenuSubmenuTriggerProps · 继承 @base-ui/react/menu#MenuSubmenuTriggerProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenu.Separator
Base UI Separator 直接导出。
类型:MenuSeparatorProps · 继承 @base-ui/react/menu#MenuSeparatorProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenu.CheckboxItem
Base UI CheckboxItem 直接导出。
类型:MenuCheckboxItemProps · 继承 @base-ui/react/menu#MenuCheckboxItemProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenu.RadioGroup
Base UI RadioGroup 直接导出。
类型:MenuRadioGroupProps · 继承 @base-ui/react/menu#MenuRadioGroupProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenu.RadioItem
Base UI RadioItem 直接导出。
类型:MenuRadioItemProps · 继承 @base-ui/react/menu#MenuRadioItemProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
DropdownMenuContent
CWA 主题化 Portal 和菜单 Popup。
类型:DropdownMenuContentProps · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
className | 附加样式类;具体合并行为以实现为准 | string | — |
material | 见类型定义 | "glass" | "solid" | "glass" |
DropdownMenuItem
CWA 动作项;事件签名是无参数回调。
类型:DropdownMenuItemProps · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
disabled | 见类型定义 | boolean | — |
shortcut | 仅展示,不注册全局快捷键 | string | — |
destructive | 见类型定义 | boolean | — |
onClick | () => void | () => void | — |
className | 附加样式类;具体合并行为以实现为准 | string | — |
材质与状态
材质规则来自源 metadata。覆盖玻璃区域的浮层按实际重叠关系选择较厚或实色材质。
默认 glass;Provider material="solid" 优先。实际玻璃背景重叠时使用 solid;系统减少透明、增强对比、forced-colors 或不支持 blur 时按公共材质规则降级。
媒体对照舞台
打开浮层,检查玻璃透色、边缘与阴影在真实亮/暗照片上的表现。
适用的状态与行为见示例及本页 API;系统减少透明与显式 solid 配置会启用回退。
阅读材质指南 →关联 Token
以下变量从组件源样式的实际引用生成。共享光学规则还使用全局玻璃 Token。
--cwa-design-z-popup--cwa-design-space-3--cwa-design-space-1--cwa-design-radius-control--cwa-design-font-family--cwa-design-font-size-body--cwa-design-color-text--cwa-design-motion-control--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-4--cwa-design-space-2--cwa-design-color-danger--cwa-design-font-size-caption--cwa-design-color-text-muted无障碍与使用约束
semantic-contentvisible-focus-for-interactive-partskeyboard-behavior-from-native-or-base-ui
这些是组件契约与使用要求。具体业务页面仍需验证标签、阅读顺序与实际背景下的对比度。
查看无障碍使用指南 →