Skip to content

Menu ​

Loading...

<flint-menu-item> ​

A single option inside a flint-menu.

  • Tag: <flint-menu-item>
  • Class: FlintMenuItem

Import ​

ts
import '@getufy/flint-ui'; // auto-registers all
// or
import { FlintMenuItem } from '@getufy/flint-ui';

Usage ​

html
<flint-menu-item></flint-menu-item>

Properties ​

PropertyAttributeTypeDefaultDescription
selectedselectedbooleanfalseMarks this item as the currently selected option.
disableddisabledbooleanfalseDisables the item — it becomes non-interactive.
densedensebooleanfalseDense padding mode (for desktop-density menus).
dividerdividerbooleanfalseRenders a hairline separator below this item.
valuevaluestring | undefined—The machine-readable value carried in the flint-menu-item-select event detail.

Events ​

EventDetailDescription
flint-menu-item-select&#123; value: string | null, label: string &#125;Fired when the item is activated. detail: { value: string | null, label: string }

Slots ​

NameDescription
(default)Item label text.
iconLeading icon.
end-iconTrailing icon or shortcut hint.

CSS Parts ​

NameDescription
baseThe component's base wrapper element.
labelThe label element.

CSS Custom Properties ​

PropertyDefault
--flint-menu-item-dense-min-height44px
--flint-border-color—
--flint-text-color-muted—
--flint-font-family—
--flint-text-color—
--flint-hover-color—
--flint-active-color—
--flint-primary-color—
--flint-primary-color-light—
--flint-primary-color-light-hover—
--flint-surface-1—
--flint-border-radius-md—
--flint-shadow-md—
--flint-shadow-lg—

<flint-menu-divider> ​

A hairline separator for grouping items in a menu.

  • Tag: <flint-menu-divider>
  • Class: FlintMenuDivider

Import ​

ts
import '@getufy/flint-ui'; // auto-registers all
// or
import { FlintMenuDivider } from '@getufy/flint-ui';

Usage ​

html
<flint-menu-divider></flint-menu-divider>

<flint-menu-group> ​

A labelled group of menu items. Wraps items in a role="group" for screen-reader announcements.

  • Tag: <flint-menu-group>
  • Class: FlintMenuGroup

Import ​

ts
import '@getufy/flint-ui'; // auto-registers all
// or
import { FlintMenuGroup } from '@getufy/flint-ui';

Usage ​

html
<flint-menu-group></flint-menu-group>

Properties ​

PropertyAttributeTypeDefaultDescription
labellabelstring''Visible heading rendered above the group items.

Slots ​

NameDescription
(default)Group items (flint-menu-item elements).

<flint-menu> ​

A menu displays a list of choices on a temporary surface. Place it as a sibling to its anchor element inside a position:relative container.

  • Tag: <flint-menu>
  • Class: FlintMenu

Import ​

ts
import '@getufy/flint-ui'; // auto-registers all
// or
import { FlintMenu } from '@getufy/flint-ui';

Usage ​

html
<flint-menu></flint-menu>

Properties ​

PropertyAttributeTypeDefaultDescription
openopenbooleanfalseWhether the menu is open/visible.
placementplacement'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'right-start' | 'left-start''bottom-start'Menu placement relative to its anchor container.
closeOnSelectclose-on-selectbooleantrueWhen true, selecting an item automatically fires flint-menu-close.
scrollablescrollablebooleanfalseWhen true, constrains height to --flint-menu-max-height (default 300px) and enables scrolling.
labellabelstring | undefined—Accessible label for the menu surface (aria-label on role="menu").
hoisthoistbooleanfalseWhen true, the menu dropdown uses position: fixed instead of position: absolute

Events ​

EventDetailDescription
flint-menu-close&#123; open: false &#125;Fired when the menu requests to be closed (backdrop click, Escape, or item select). detail: &#123; open: false &#125;

Slots ​

NameDescription
(default)Menu content (flint-menu-item elements).

CSS Custom Properties ​

PropertyDefault
--flint-menu-item-dense-min-height44px
--flint-menu-z-index—
--flint-menu-min-width—
--flint-menu-max-width360px
--flint-menu-max-height300px