Context Menu

ContextMenu - Phlex implementation

Examples

Default

Displays a menu to the user triggered by a right click.

Right click this area
<%= render "ui/context_menu" do %>
  <%= render "ui/context_menu/trigger" do %>
    Right click this area
  <% end %>
  <%= render "ui/context_menu/content", classes: "w-48" do %>
    <%= render "ui/context_menu/item" do %>Edit<% end %>
    <%= render "ui/context_menu/item" do %>Duplicate<% end %>
    <%= render "ui/context_menu/separator" %>
    <%= render "ui/context_menu/item", variant: "destructive" do %>Delete<% end %>
  <% end %>
<% end %>

With Shortcuts

Context menu with keyboard shortcuts.

Right click for file options
<%= render "ui/context_menu" do %>
  <%= render "ui/context_menu/trigger" do %>
    Right click for file options
  <% end %>
  <%= render "ui/context_menu/content", classes: "w-56" do %>
    <%= render "ui/context_menu/label" do %>File<% end %>
    <%= render "ui/context_menu/separator" %>
    <%= render "ui/context_menu/item" do %>
      New File
      <%= render "ui/context_menu/shortcut" do %>⌘N<% end %>
    <% end %>
    <%= render "ui/context_menu/item" do %>
      Save
      <%= render "ui/context_menu/shortcut" do %>⌘S<% end %>
    <% end %>
  <% end %>
<% end %>

Features

  • Custom styling with Tailwind classes
  • Keyboard navigation with arrow keys
  • Click outside to close

API Reference

Context Menu

Container for context menus triggered by right-click.

Content

Menu items container with animations and positioning.

Item

Individual menu item that can be rendered as a link or div.

Parameters

NameTypeDefaultDescription
hrefStringnilThe href
insetBooleanfalseThe inset
variantStringdefaultVisual style variant

Label

Non-interactive label for grouping menu items.

Parameters

NameTypeDefaultDescription
insetBooleanfalseThe inset

Separator

A visual divider between menu items.

Shortcut

Displays keyboard shortcut text for a menu item.

Trigger

The element that triggers the context menu on right-click.

Accessibility

Implements the WAI-ARIA Menu pattern with proper roles, states, and keyboard navigation.

Keyboard Shortcuts

KeyDescription
EnterActivates the focused element
EscapeCloses the component
ArrowDownMoves focus to next item
ArrowUpMoves focus to previous item
HomeMoves focus to first item
EndMoves focus to last item

JavaScript

Stimulus Controller

ui--context-menu

Values

NameTypeDescription
openBooleanControls open state

Actions

openclosecloseAllContextMenusteardownKeyboardNavigationfindCurrentItemIndextrackHoveredItempositionContextMenu