Skip to content

SusMenu

SusMenu

Popup menu anchored to an activator — items, dividers, shortcuts.

Package

SusKit · Atoms (commercial)

Open in Playground

SusKit · Atoms

Props

NameTypeDefault
ModelProp<bool>falsev-model
CloseOnClickProp<bool>truev-model
CloseOnContentClickProp<bool>falsev-model
OpenOnHoverProp<bool>falsev-model
MinWidthProp<float>160fv-model
MaxWidthProp<float>320fv-model
MaxHeightProp<float>0fv-model
OffsetXProp<float>0fv-model
OffsetYProp<float>0fv-model
LocationProp<string>"bottom"v-model
DensityProp<string>"default"v-model
RoundedProp<string>"default"v-model
ElevationProp<string>"default"v-model
TransitionProp<bool>truev-model
TransitionDurationProp<float>150fv-model

Slots

No slots.

Events

NameFieldPayload
ClickOnClick
OpenOnOpen
CloseOnClose
ItemClickOnItemClickstring

Style hooks

USS class contract — override appearance without touching C#. States toggle via these classes:

  • sus-menu
  • sus-menu__content
  • sus-menu__divider
  • sus-menu__item
  • sus-menu__item--disabled
  • sus-menu__item--header
  • sus-menu__item--highlighted
  • sus-menu__item-check
  • sus-menu__item-check--on
  • sus-menu__item-check-icon
  • sus-menu__item-chevron
  • sus-menu__item-header-text
  • sus-menu__item-icon
  • sus-menu__item-label-area
  • sus-menu__item-shortcut
  • sus-menu__item-title
  • sus-menu__submenu
  • sus-menu--density-comfortable
  • sus-menu--density-compact
  • sus-menu--elevation-flat
  • sus-menu--elevation-overlay
  • sus-menu--open-on-hover
  • sus-menu--rounded-pill
  • sus-menu--rounded-sharp

Usage

Items are set in code (List<SusMenuItemData>). Wire an activator with SetActivator.

csharp
var menu = new SusMenu();
menu.Location.Value = "bottom";
menu.Items.Value = new List<SusMenu.SusMenuItemData>
{
    new() { Title = "Edit", Value = "edit", Icon = "pencil", Shortcut = "Ctrl+E" },
    new() { Title = "Duplicate", Value = "dup", Icon = "copy" },
    new() { Type = SusMenu.SusMenuItemType.Divider },
    new() { Title = "Delete", Value = "delete", Icon = "trash" },
};
menu.Model.Value = true; // open for preview
menu.OnItemClick += value => { /* … */ };
menu.SetActivator(activatorButton);
PropRole
ItemsList<SusMenuItemData> — rows / dividers / headers
ModelOpen (true) / closed
LocationPopup side relative to activator
CloseOnClickClose when choosing an item
OpenOnHoverOpen on pointer enter

Notes

  • Item Type: Default · Divider · Header · Checkbox · Radio.
  • Manual mode: skip Items and build content yourself after SetActivator.