Navigation and menu components for building intuitive user interfaces with breadcrumbs, tabs, menus, and step indicators.
Hierarchical navigation menu system.
declare const ElMenu: Component;
interface MenuProps {
/** Menu mode */
mode?: 'horizontal' | 'vertical';
/** Whether menu is collapsed */
collapse?: boolean;
/** Background color */
backgroundColor?: string;
/** Text color */
textColor?: string;
/** Active text color */
activeTextColor?: string;
/** Default active menu */
defaultActive?: string;
/** Default opened submenus */
defaultOpeneds?: string[];
/** Whether only one submenu can be opened */
uniqueOpened?: boolean;
/** Whether menu items are router links */
router?: boolean;
/** Collapse transition */
collapseTransition?: boolean;
}
declare const ElMenuItem: Component;
interface MenuItemProps {
/** Menu item index */
index: string;
/** Route object */
route?: RouteLocationRaw;
/** Whether menu item is disabled */
disabled?: boolean;
}
declare const ElSubMenu: Component;
interface SubMenuProps {
/** Submenu index */
index: string;
/** Popper class */
popperClass?: string;
/** Show timeout */
showTimeout?: number;
/** Hide timeout */
hideTimeout?: number;
/** Whether submenu is disabled */
disabled?: boolean;
}
declare const ElMenuItemGroup: Component;
interface MenuItemGroupProps {
/** Group title */
title?: string;
}Tabbed navigation interface.
declare const ElTabs: Component;
interface TabsProps {
/** Active tab name */
modelValue?: string | number;
/** Tab type */
type?: '' | 'card' | 'border-card';
/** Whether tabs are closable */
closable?: boolean;
/** Whether tabs can be added */
addable?: boolean;
/** Whether tabs are editable */
editable?: boolean;
/** Tab position */
tabPosition?: 'top' | 'right' | 'bottom' | 'left';
/** Whether tabs stretch */
stretch?: boolean;
/** Custom tab class */
tabClass?: string;
}
interface TabsEmits {
/** Tab click event */
'tab-click': (pane: TabPaneContext, event: Event) => void;
/** Tab change event */
'tab-change': (name: string | number) => void;
/** Tab remove event */
'tab-remove': (name: string | number) => void;
/** Tab add event */
'tab-add': () => void;
}
declare const ElTabPane: Component;
interface TabPaneProps {
/** Tab label */
label?: string;
/** Tab name */
name?: string | number;
/** Whether tab is disabled */
disabled?: boolean;
/** Whether tab is closable */
closable?: boolean;
/** Whether tab is lazy */
lazy?: boolean;
}Breadcrumb trail navigation.
declare const ElBreadcrumb: Component;
interface BreadcrumbProps {
/** Separator character */
separator?: string;
/** Separator icon */
separatorIcon?: string | Component;
}
declare const ElBreadcrumbItem: Component;
interface BreadcrumbItemProps {
/** Navigation route */
to?: string | object;
/** Whether to replace current route */
replace?: boolean;
}Step-by-step navigation indicator.
declare const ElSteps: Component;
interface StepsProps {
/** Current active step */
active?: number;
/** Process status */
processStatus?: 'wait' | 'process' | 'finish' | 'error' | 'success';
/** Finish status */
finishStatus?: 'wait' | 'process' | 'finish' | 'error' | 'success';
/** Steps direction */
direction?: 'horizontal' | 'vertical';
/** Whether to use simple style */
simple?: boolean;
/** Alignment in simple mode */
alignCenter?: boolean;
/** Space between steps */
space?: number | string;
}
declare const ElStep: Component;
interface StepProps {
/** Step title */
title?: string;
/** Step description */
description?: string;
/** Step icon */
icon?: string | Component;
/** Step status */
status?: 'wait' | 'process' | 'finish' | 'error' | 'success';
}Dropdown menu with multiple actions.
declare const ElDropdown: Component;
interface DropdownProps {
/** Trigger mode */
trigger?: 'hover' | 'click' | 'contextmenu';
/** Menu items */
menuItems?: DropdownMenuItem[];
/** Whether to hide menu after click */
hideOnClick?: boolean;
/** Show timeout */
showTimeout?: number;
/** Hide timeout */
hideTimeout?: number;
/** Tab index */
tabindex?: number;
/** Max height */
maxHeight?: number | string;
/** Popper class */
popperClass?: string;
/** Whether dropdown is disabled */
disabled?: boolean;
/** Split button */
splitButton?: boolean;
/** Button type when split */
type?: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text';
/** Button size */
size?: ComponentSize;
}
interface DropdownMenuItem {
label: string;
value: any;
disabled?: boolean;
divided?: boolean;
icon?: string | Component;
command?: any;
}
declare const ElDropdownMenu: Component;
declare const ElDropdownItem: Component;
interface DropdownItemProps {
/** Command value */
command?: any;
/** Whether item is disabled */
disabled?: boolean;
/** Whether to show divider */
divided?: boolean;
/** Item icon */
icon?: string | Component;
}Page header with navigation and actions.
declare const ElPageHeader: Component;
interface PageHeaderProps {
/** Page title */
title?: string;
/** Breadcrumb content */
content?: string;
/** Icon */
icon?: string | Component;
}
interface PageHeaderEmits {
/** Back button click */
back: () => void;
}Anchor navigation for in-page scrolling.
declare const ElAnchor: Component;
interface AnchorProps {
/** Container selector for scrolling */
container?: string;
/** Offset from top */
offset?: number;
/** Bound offset */
bound?: number;
/** Anchor type */
type?: 'default' | 'underline';
/** Direction */
direction?: 'vertical' | 'horizontal';
}
declare const ElAnchorLink: Component;
interface AnchorLinkProps {
/** Link href */
href: string;
/** Link title */
title?: string;
}Segmented control component for option selection.
declare const ElSegmented: Component;
interface SegmentedProps {
/** Current value */
modelValue?: string | number;
/** Options array */
options?: SegmentedOption[];
/** Component size */
size?: ComponentSize;
/** Whether disabled */
disabled?: boolean;
/** Block layout */
block?: boolean;
}
interface SegmentedOption {
/** Option label */
label: string;
/** Option value */
value: string | number;
/** Whether disabled */
disabled?: boolean;
/** Icon */
icon?: string | Component;
}
interface SegmentedEmits {
/** Value change event */
change: (value: string | number) => void;
/** Update model value */
'update:modelValue': (value: string | number) => void;
}Interactive tour component for feature introductions.
declare const ElTour: Component;
interface TourProps {
/** Whether tour is open */
modelValue?: boolean;
/** Tour steps */
steps?: TourStep[];
/** Current step index */
current?: number;
/** Show arrow */
showArrow?: boolean;
/** Placement */
placement?: TourPlacement;
/** Mask options */
mask?: boolean | TourMask;
/** Tour type */
type?: 'default' | 'primary';
/** Z-index */
zIndex?: number;
}
interface TourStep {
/** Target element selector */
target?: string | HTMLElement;
/** Step title */
title?: string;
/** Step description */
description?: string;
/** Step placement */
placement?: TourPlacement;
/** Whether show arrow */
showArrow?: boolean;
/** Whether show close button */
showClose?: boolean;
/** Whether step is closable by clicking mask */
closeOnClickMask?: boolean;
}
interface TourMask {
/** Mask style */
style?: Record<string, any>;
/** Mask color */
color?: string;
}
type TourPlacement =
| 'top' | 'top-start' | 'top-end'
| 'bottom' | 'bottom-start' | 'bottom-end'
| 'left' | 'left-start' | 'left-end'
| 'right' | 'right-start' | 'right-end';
interface TourEmits {
/** Tour close event */
close: () => void;
/** Step change event */
change: (current: number) => void;
/** Finish tour event */
finish: () => void;
}type ComponentSize = '' | 'large' | 'default' | 'small';
interface Component {
name?: string;
props?: Record<string, any>;
emits?: string[] | Record<string, any>;
setup?: Function;
}
interface RouteLocationRaw {
name?: string;
path?: string;
params?: Record<string, any>;
query?: Record<string, any>;
}
interface TabPaneContext {
uid: number;
slots: Record<string, any>;
props: TabPaneProps;
}