Menu
A versatile menu for navigation.
When To Use
Navigation is an important part of any website, as a good navigation setup allows users to move around the site quickly and efficiently. Ant Design offers two navigation options: top and side. Top navigation provides all the categories and functions of the website. Side navigation provides the multi-level structure of the website.
More layouts with navigation: Layout.
Notes for developers
- Menu is rendered as a
ulelement, so it only supportsliandscript-supportingelements as children nodes. Your customized node should be wrapped byMenu.Item. - Menu needs to collect its node structure, so its children should be
Menu.*or encapsulated HOCs.
Examples
-
Top Navigation ·
horizontal -
Inline menu ·
inline -
Collapsed inline menu ·
inline-collapsed -
Menu tooltip ·
tooltip -
Open current submenu only ·
sider-current -
Vertical menu ·
vertical -
Menu Themes ·
theme -
Sub-menu theme ·
submenu-theme -
Switch the menu type ·
switch-mode -
Custom semantic dom styling ·
style-class -
Custom Submenu Render ·
custom-popup-render
API
Common props ref:Common props
Menu
| Property | Description | Type | Default | Version | Global Config |
|---|---|---|---|---|---|
| classNames | Customize class for each semantic structure inside the component. Supports object or function. | Record<SemanticDOM, string> | (info: { props }) => Record<SemanticDOM, string> | - | 6.0.0 | |
| defaultOpenKeys | Array with the keys of default opened sub menus | string[] | - | × | |
| defaultSelectedKeys | Array with the keys of default selected menu items | string[] | - | × | |
| expandIcon | custom expand icon of submenu | ReactNode | (props: SubMenuProps & { isSubMenu: boolean }) => ReactNode | - | 4.9.0 | 5.15.0 |
| forceSubMenuRender | Render submenu into DOM before it becomes visible | boolean | false | × | |
| inlineCollapsed | Specifies the collapsed status when menu is inline mode | boolean | - | × | |
| inlineIndent | Indent (in pixels) of inline menu items on each level | number | 24 | × | |
| items | Menu item content | ItemType[] | - | 4.20.0 | × |
| mode | Type of menu | vertical | horizontal | inline | vertical | × | |
| multiple | Allows selection of multiple items | boolean | false | × | |
| openKeys | Array with the keys of currently opened sub-menus | string[] | - | × | |
| overflowedIndicator | Customized the ellipsis icon when menu is collapsed horizontally | ReactNode | <EllipsisOutlined /> | × | |
| selectable | Allows selecting menu items | boolean | true | × | |
| selectedKeys | Array with the keys of currently selected menu items | string[] | - | × | |
| styles | Customize inline style for each semantic structure inside the component. Supports object or function. | Record<SemanticDOM, CSSProperties> | (info: { props }) => Record<SemanticDOM, CSSProperties> | - | 6.0.0 | |
| subMenuCloseDelay | Delay time to hide submenu when mouse leaves (in seconds) | number | 0.1 | × | |
| subMenuOpenDelay | Delay time to show submenu when mouse enters, (in seconds) | number | 0 | × | |
| tooltip | Config tooltip props for menu items in inline collapsed mode. Set to false to disable. | false | TooltipProps | - | 6.3.0 | × |
| theme | Color theme of the menu | light | dark | light | × | |
| triggerSubMenuAction | Which action can trigger submenu open/close | hover | click | hover | × | |
| onClick | Called when a menu item is clicked | function({ key, keyPath, domEvent, itemData }) | - | × | |
| onDeselect | Called when a menu item is deselected (multiple mode only) | function({ key, keyPath, selectedKeys, domEvent, itemData }) | - | × | |
| onOpenChange | Called when sub-menus are opened or closed | function(openKeys: string[]) | - | × | |
| onSelect | Called when a menu item is selected | function({ key, keyPath, selectedKeys, domEvent, itemData }) | - | × | |
| popupRender | Custom popup renderer for submenu | (node: ReactElement, props: { item: SubMenuProps; keys: string[] }) => ReactNode | - | × |
More options in @rc-component/menu
ItemType
type ItemType = MenuItemType | SubMenuType | MenuItemGroupType | MenuDividerType;
MenuItemType
| Property | Description | Type | Default | Version |
|---|---|---|---|---|
| danger | Display the danger style | boolean | false | |
| disabled | Whether menu item is disabled | boolean | false | |
| extra | The extra of the menu item | ReactNode | - | 5.21.0 |
| icon | The icon of the menu item | ReactNode | - | |
| key | Unique ID of the menu item | string | - | |
| label | Menu label | ReactNode | - | |
| title | Set display title for collapsed item | string | - |
SubMenuType
| Property | Description | Type | Default | Version |
|---|---|---|---|---|
| children | Sub-menus or sub-menu items | ItemType[] | - | |
| disabled | Whether sub-menu is disabled | boolean | false | |
| icon | Icon of sub menu | ReactNode | - | |
| key | Unique ID of the sub-menu | string | - | |
| label | Menu label | ReactNode | - | |
| popupClassName | Sub-menu class name, not working when mode="inline" | string | - | |
| popupOffset | Sub-menu offset, not working when mode="inline" | [number, number] | - | |
| theme | Color theme of the SubMenu (inherits from Menu by default) | light | dark | - | |
| onTitleClick | Callback executed when the sub-menu title is clicked | function({ key, domEvent }) | - | |
| popupRender | Custom popup renderer for current sub-menu | (node: ReactElement, props: { item: SubMenuProps; keys: string[] }) => ReactNode | - |
MenuItemGroupType
Define type as group to make as group:
const groupItem = {
type: 'group', // Must have
label: 'My Group',
children: [],
};
| Property | Description | Type | Default | Version |
|---|---|---|---|---|
| children | Sub-menu items | MenuItemType[] | - | |
| label | The title of the group | ReactNode | - |
MenuDividerType
Divider line in between menu items, only used in vertical popup Menu or Dropdown Menu. Need define the type as divider:
const dividerItem = {
type: 'divider', // Must have
};
| Property | Description | Type | Default | Version |
|---|---|---|---|---|
| dashed | Whether line is dashed | boolean | false |
FAQ
Why will Menu's children be rendered twice?
Menu collects structure info with twice-render to support HOC usage. Merging into one render may cause the logic to become much more complex. Contributions to help improve the collection logic are welcomed.
Why Menu do not responsive collapse in Flex layout?
Menu will render fully item in flex layout and then collapse it. You need tell flex not consider Menu width to enable responsive (online demo):
<div style={{ flex }}>
<div style={{ ... }}>Some Content</div>
<Menu style={{ minWidth: 0, flex: "auto" }} />
</div>
Semantic DOM
| Semantic node | Native description | Version |
|---|---|---|
root | Root element with basic menu container styles and layout | — |
item | Item element with relative positioning, block display, margins, whitespace handling, cursor styles, transitions and other basic interactive styles for menu items | — |
itemIcon | Icon element with min-width, font-size, transitions, icon reset styles, and spacing control with text | — |
itemContent | Item content element with layout and typography styles for menu item content | — |
subMenu.itemTitle | Submenu title element with submenu title styles and interactive effects | — |
subMenu.list | Submenu list element with submenu list layout and container styles | — |
subMenu.item | Submenu item element with submenu item styles and interactive effects | — |
subMenu.itemIcon | Submenu item icon element with submenu icon size and styles | — |
subMenu.itemContent | Submenu item content element with submenu content layout and typography | — |
itemTitle | Item title element (no effect in horizontal mode) with title text styles and layout | — |
list | Menu list element (no effect in horizontal mode) with menu list layout and container styles | — |
popup | Popup menu element (no effect in inline mode) with popup layer positioning, z-index, background and other styles | — |
Semantic description source: vendor/components/menu/demo/_semantic.tsx
Design Token
Types, inheritance and declarations retain the pinned native source. Defaults are computed by the native theme and may be overridden by ConfigProvider; this table does not invent static defaults.
| Token | Type | Native description |
|---|---|---|
dropdownWidth | number | string | Width of popup menu |
zIndexPopup | number | z-index of popup menu |
colorGroupTitle | string | See native declaration and inherited types |
groupTitleColor | string | Color of group title text |
groupTitleLineHeight | string | number | line-height of group title |
groupTitleFontSize | number | font-size of group title |
radiusItem | number | See native declaration and inherited types |
itemBorderRadius | number | Radius of menu item |
radiusSubMenuItem | number | See native declaration and inherited types |
subMenuItemBorderRadius | number | Radius of sub-menu item |
colorItemText | string | See native declaration and inherited types |
itemColor | string | Color of menu item text |
colorItemTextHover | string | See native declaration and inherited types |
itemHoverColor | string | Hover color of menu item text |
colorItemTextHoverHorizontal | string | See native declaration and inherited types |
horizontalItemHoverColor | string | Hover color of horizontal menu item text |
colorItemTextSelected | string | See native declaration and inherited types |
itemSelectedColor | string | Color of selected menu item text |
subMenuItemSelectedColor | string | Color of submenu title when submenu has selected item |
colorItemTextSelectedHorizontal | string | See native declaration and inherited types |
horizontalItemSelectedColor | string | Color of selected horizontal menu item text |
colorItemTextDisabled | string | See native declaration and inherited types |
itemDisabledColor | string | Color of disabled menu item text |
colorDangerItemText | string | See native declaration and inherited types |
dangerItemColor | string | Color of danger menu item text |
colorDangerItemTextHover | string | See native declaration and inherited types |
dangerItemHoverColor | string | Hover color of danger menu item text |
colorDangerItemTextSelected | string | See native declaration and inherited types |
dangerItemSelectedColor | string | Color of selected danger menu item text |
colorDangerItemBgActive | string | See native declaration and inherited types |
dangerItemActiveBg | string | Background color of danger menu item when active |
colorDangerItemBgSelected | string | See native declaration and inherited types |
dangerItemSelectedBg | string | Background color of selected danger menu item |
colorItemBg | string | See native declaration and inherited types |
itemBg | string | See native declaration and inherited types |
colorItemBgHover | string | See native declaration and inherited types |
itemHoverBg | string | Background color of menu item when hover |
colorSubItemBg | string | See native declaration and inherited types |
subMenuItemBg | string | Background color of sub-menu item |
colorItemBgActive | string | See native declaration and inherited types |
itemActiveBg | string | Background color of menu item when active |
colorItemBgSelected | string | See native declaration and inherited types |
itemSelectedBg | string | Background color of menu item when selected |
colorItemBgSelectedHorizontal | string | See native declaration and inherited types |
horizontalItemSelectedBg | string | Background color of horizontal menu item when selected |
colorActiveBarWidth | number | string | See native declaration and inherited types |
activeBarWidth | number | string | Width of menu item active bar |
colorActiveBarHeight | number | See native declaration and inherited types |
activeBarHeight | number | Height of menu item active bar |
colorActiveBarBorderSize | number | See native declaration and inherited types |
activeBarBorderWidth | number | string | Border width of menu item active bar |
itemMarginInline | number | Horizontal margin of menu item |
horizontalItemHoverBg | string | Background color of horizontal menu item when hover |
horizontalItemBorderRadius | number | Border radius of horizontal menu item |
itemHeight | number | string | Height of menu item |
collapsedWidth | number | string | Width when collapsed |
popupBg | string | Background color of popup |
itemMarginBlock | CSSProperties['marginBlock'] | margin-block of menu item |
itemPaddingInline | CSSProperties['paddingInline'] | padding-inline of menu item |
horizontalLineHeight | CSSProperties['lineHeight'] | LineHeight of horizontal menu item |
iconMarginInlineEnd | CSSProperties['marginInlineEnd'] | Spacing between icon and text |
iconSize | number | Size of icon |
collapsedIconSize | number | Size of icon when collapsed |
darkPopupBg | string | The background color of the overlay menu in dark mode. |
darkItemColor | string | Color of menu item text in dark mode |
darkDangerItemColor | string | Color of danger menu item text in dark mode |
darkItemBg | string | Background of menu item in dark mode |
darkSubMenuItemBg | string | Background of submenu item in dark mode |
darkItemSelectedColor | string | Color of selected menu item in dark mode |
darkItemSelectedBg | string | Background of active menu item in dark mode |
darkItemHoverBg | string | Background of hovered menu item in dark mode |
darkGroupTitleColor | string | Color of group title text in dark mode |
darkItemHoverColor | string | Color of hovered menu item in dark mode |
darkItemDisabledColor | string | Color of disabled menu item in dark mode |
darkDangerItemSelectedBg | string | Background of active danger menu item in dark mode |
darkDangerItemHoverColor | string | Background of hovered danger menu item in dark mode |
darkDangerItemSelectedColor | string | Color of selected danger menu item in dark mode |
darkDangerItemActiveBg | string | Background of active danger menu item in dark mode |
itemWidth | number | string | See native declaration and inherited types |
Declaration source: vendor/components/menu/style/index.ts
import type { CSSProperties } from 'react';
import type { CSSObject } from '@ant-design/cssinjs';
import { unit } from '@ant-design/cssinjs';
import { FastColor } from '@ant-design/fast-color';
import type { CssUtil } from 'antd-style';
import { clearFix, resetComponent, resetIcon, textEllipsis } from '../../style';
import { genCollapseMotion, initSlideMotion, initZoomMotion } from '../../style/motion';
import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal';
import { genStyleHooks, mergeToken } from '../../theme/internal';
import getHorizontalStyle from './horizontal';
import getRTLStyle from './rtl';
import getThemeStyle from './theme';
import getVerticalStyle from './vertical';
/** Component only token. Which will handle additional calculation of alias token */
export interface ComponentToken {
/**
* @desc 弹出菜单的宽度
* @descEN Width of popup menu
*/
dropdownWidth: number | string;
/**
* @desc 弹出菜单的 z-index
* @descEN z-index of popup menu
*/
zIndexPopup: number;
// Group
/** @deprecated Use `groupTitleColor` instead */
colorGroupTitle: string;
/**
* @desc 分组标题文字颜色
* @descEN Color of group title text
*/
groupTitleColor: string;
/**
* @desc 分组标题文字高度
* @descEN line-height of group title
*/
groupTitleLineHeight: string | number;
/**
* @desc 分组标题文字大小
* @descEN font-size of group title
*/
groupTitleFontSize: number;
// radius
/** @deprecated Use `itemBorderRadius` instead */
radiusItem: number;
/**
* @desc 菜单项的圆角
* @descEN Radius of menu item
*/
itemBorderRadius: number;
/** @deprecated Use `subMenuItemBorderRadius` instead */
radiusSubMenuItem: number;
/**
* @desc 子菜单项的圆角
* @descEN Radius of sub-menu item
*/
subMenuItemBorderRadius: number;
// Item Text
// > Default
/** @deprecated Use `itemColor` instead */
colorItemText: string;
/**
* @desc 菜单项文字颜色
* @descEN Color of menu item text
*/
itemColor: string;
/** @deprecated Use `itemHoverColor` instead */
colorItemTextHover: string;
/**
* @desc 菜单项文字悬浮颜色
* @descEN Hover color of menu item text
*/
itemHoverColor: string;
/** @deprecated Use `horizontalItemHoverColor` instead */
colorItemTextHoverHorizontal: string;
/**
* @desc 水平菜单项文字悬浮颜色
* @descEN Hover color of horizontal menu item text
*/
horizontalItemHoverColor: string;
/** @deprecated Use `itemSelectedColor` instead */
colorItemTextSelected: string;
/**
* @desc 菜单项文字选中颜色
* @descEN Color of selected menu item text
*/
itemSelectedColor: string;
/**
* @desc 子菜单内有选中项时,子菜单标题色
* @descEN Color of submenu title when submenu has selected item
*/
subMenuItemSelectedColor: string;
/** @deprecated Use `horizontalItemSelectedColor` instead */
colorItemTextSelectedHorizontal: string;
/**
* @desc 水平菜单项文字选中颜色
* @descEN Color of selected horizontal menu item text
*/
horizontalItemSelectedColor: string;
// > Disabled
/** @deprecated Use `itemDisabledColor` instead */
colorItemTextDisabled: string;
/**
* @desc 菜单项文字禁用颜色
* @descEN Color of disabled menu item text
*/
itemDisabledColor: string;
// > Danger
/** @deprecated Use `dangerItemColor` instead */
colorDangerItemText: string;
/**
* @desc 危险菜单项文字颜色
* @descEN Color of danger menu item text
*/
dangerItemColor: string;
/** @deprecated Use `dangerItemHoverColor` instead */
colorDangerItemTextHover: string;
/**
* @desc 危险菜单项文字悬浮颜色
* @descEN Hover color of danger menu item text
*/
dangerItemHoverColor: string;
/** @deprecated Use `dangerItemSelectedColor` instead */
colorDangerItemTextSelected: string;
/**
* @desc 危险菜单项文字选中颜色
* @descEN Color of selected danger menu item text
*/
dangerItemSelectedColor: string;
/** @deprecated Use `dangerItemActiveBg` instead */
colorDangerItemBgActive: string;
/**
* @desc 危险菜单项激活态背景色
* @descEN Background color of danger menu item when active
*/
dangerItemActiveBg: string;
/** @deprecated Use `dangerItemSelectedBg` instead */
colorDangerItemBgSelected: string;
/**
* @desc 危险菜单项选中背景色
* @descEN Background color of selected danger menu item
*/
dangerItemSelectedBg: string;
// Item Bg
/** @deprecated Use `itemBg` instead */
colorItemBg: string;
/**
* @desc 菜单项背景色
*/
itemBg: string;
/** @deprecated Use `itemHoverBg` instead */
colorItemBgHover: string;
/**
* @desc 菜单项悬浮态背景色
* @descEN Background color of menu item when hover
*/
itemHoverBg: string;
/** @deprecated Use `subMenuItemBg` instead */
colorSubItemBg: string;
/**
* @desc 子菜单项背景色
* @descEN Background color of sub-menu item
*/
subMenuItemBg: string;
// > Default
/** @deprecated Use `itemActiveBg` instead */
colorItemBgActive: string;
/**
* @desc 菜单项激活态背景色
* @descEN Background color of menu item when active
*/
itemActiveBg: string;
/** @deprecated Use `itemSelectedBg` instead */
colorItemBgSelected: string;
/**
* @desc 菜单项选中态背景色
* @descEN Background color of menu item when selected
*/
itemSelectedBg: string;
/** @deprecated Use `horizontalItemSelectedBg` instead */
colorItemBgSelectedHorizontal: string;
/**
* @desc 水平菜单项选中态背景色
* @descEN Background color of horizontal menu item when selected
*/
horizontalItemSelectedBg: string;
// Ink Bar
/** @deprecated Use `activeBarWidth` instead */
colorActiveBarWidth: number | string;
/**
* @desc 菜单项指示条宽度
* @descEN Width of menu item active bar
*/
activeBarWidth: number | string;
/** @deprecated Use `activeBarHeight` instead */
colorActiveBarHeight: number;
/**
* @desc 菜单项指示条高度
* @descEN Height of menu item active bar
*/
activeBarHeight: number;
/** @deprecated Use `activeBarBorderWidth` instead */
colorActiveBarBorderSize: number;
/**
* @desc 菜单项指示条边框宽度
* @descEN Border width of menu item active bar
*/
activeBarBorderWidth: number | string;
/**
* @desc 菜单项横向外间距
* @descEN Horizontal margin of menu item
*/
itemMarginInline: number;
/**
* @desc 横向菜单项横悬浮态背景色
* @descEN Background color of horizontal menu item when hover
*/
horizontalItemHoverBg: string;
/**
* @desc 横向菜单项圆角
* @descEN Border radius of horizontal menu item
*/
horizontalItemBorderRadius: number;
/**
* @desc 菜单项高度
* @descEN Height of menu item
*/
itemHeight: number | string;
/**
* @desc 收起后的宽度
* @descEN Width when collapsed
*/
collapsedWidth: number | string;
/**
* @desc 弹出框背景色
* @descEN Background color of popup
*/
popupBg: string;
/**
* @desc 菜单项纵向外间距
* @descEN margin-block of menu item
*/
itemMarginBlock: CSSProperties['marginBlock'];
/**
* @desc 菜单项横向内间距
* @descEN padding-inline of menu item
*/
itemPaddingInline: CSSProperties['paddingInline'];
/**
* @desc 横向菜单行高
* @descEN LineHeight of horizontal menu item
*/
horizontalLineHeight: CSSProperties['lineHeight'];
/**
* @desc 图标与文字间距
* @descEN Spacing between icon and text
*/
iconMarginInlineEnd: CSSProperties['marginInlineEnd'];
/**
* @desc 图标尺寸
* @descEN Size of icon
*/
iconSize: number;
/**
* @desc 收起时图标尺寸
* @descEN Size of icon when collapsed
*/
collapsedIconSize: number;
// Dark
/**
* @desc 暗色模式下的浮层菜单的背景颜色
* @descEN The background color of the overlay menu in dark mode.
*/
darkPopupBg: string;
/**
* @desc 暗色模式下的菜单项文字颜色
* @descEN Color of menu item text in dark mode
*/
darkItemColor: string;
/**
* @desc 暗色模式下的危险菜单项文字颜色
* @descEN Color of danger menu item text in dark mode
*/
darkDangerItemColor: string;
/**
* @desc 暗色模式下的菜单项背景
* @descEN Background of menu item in dark mode
*/
darkItemBg: string;
/**
* @desc 暗色模式下的子菜单项背景
* @descEN Background of submenu item in dark mode
*/
darkSubMenuItemBg: string;
/**
* @desc 暗色模式下的菜单项选中颜色
* @descEN Color of selected menu item in dark mode
*/
darkItemSelectedColor: string;
/**
* @desc 暗色模式下的菜单项选中背景
* @descEN Background of active menu item in dark mode
*/
darkItemSelectedBg: string;
/**
* @desc 暗色模式下的菜单项悬浮背景
* @descEN Background of hovered menu item in dark mode
*/
darkItemHoverBg: string;
/**
* @desc 暗色模式下的分组标题文字颜色
* @descEN Color of group title text in dark mode
*/
darkGroupTitleColor: string;
/**
* @desc 暗色模式下的菜单项悬浮颜色
* @descEN Color of hovered menu item in dark mode
*/
darkItemHoverColor: string;
/**
* @desc 暗色模式下的菜单项禁用颜色
* @descEN Color of disabled menu item in dark mode
*/
darkItemDisabledColor: string;
/**
* @desc 暗色模式下的危险菜单项选中背景
* @descEN Background of active danger menu item in dark mode
*/
darkDangerItemSelectedBg: string;
/**
* @desc 暗色模式下的危险菜单项悬浮文字背景
* @descEN Background of hovered danger menu item in dark mode
*/
darkDangerItemHoverColor: string;
/**
* @desc 暗色模式下的危险菜单项选中文字颜色
* @descEN Color of selected danger menu item in dark mode
*/
darkDangerItemSelectedColor: string;
/**
* @desc 暗色模式下的危险菜单项激活态背景
* @descEN Background of active danger menu item in dark mode
*/
darkDangerItemActiveBg: string;
/** @internal */
itemWidth: number | string;
}
/**
* @desc Menu 组件的 Token
* @descEN Token for Menu component
*/
export interface MenuToken extends FullToken<'Menu'> {
/**
* @desc 水平菜单高度
* @descEN Height of horizontal menu
*/
menuHorizontalHeight: number | string;
/**
* @desc 菜单箭头尺寸
* @descEN Size of menu arrow
*/
menuArrowSize: number | string;
/**
* @desc 菜单箭头偏移量
* @descEN Offset of menu arrow
*/
menuArrowOffset: number | string;
/**
* @desc 子菜单背景色
* @descEN Background color of sub-menu
*/
menuSubMenuBg: string;
/**
* @desc 暗色模式下的浮层菜单背景色
* @descEN Background color of popup menu in dark mode
*/
darkPopupBg: string;
}
Shared native props
Tips: The following generic properties apply to most antd components; those not supported are described separately.
| Property | Description | Type | Default |
|---|---|---|---|
| style | The additional style | CSSProperties | - |
| className | The additional css class | string | - |
| rootClassName | ClassName on the root element | string | - |
| autoFocus | Auto focus when component mounted, only effective for focusable elements like forms, links, etc. | boolean | false |
Install and reproduce an example
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23
Use ConfigProvider and native App; configure dayjs locale separately. Each example lists its complete source files and additional pinned dependencies in View code. Example names select demos, not universal component props. See the resource setup guide for theme, locale and SSR.
Native type references
The source viewer includes unchanged native implementations and the following source declarations. Inherited types remain in their native packages. English source comments are preserved as code reference.
vendor/components/menu/MenuContext.tsxvendor/components/menu/MenuDivider.tsxvendor/components/menu/MenuItem.tsxvendor/components/menu/OverrideContext.tsxvendor/components/menu/SubMenu.tsxvendor/components/menu/index.tsxvendor/components/menu/interface.tsvendor/components/menu/menu.tsxvendor/components/menu/style/index.ts
Source and license
https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd
Original bilingual prose and executable examples are retained. Website-only embeds and token tables are expanded locally. Ant Design is MIT; separately listed dependency notices also apply. Upload previews block outbound requests and do not provide a backend.