facett-menu — a uniform, theme-aware overlay menu system that sits
above any facet: right-click [context_menu]s, a floating [CommandPalette]
overlay (Ctrl-K / Ctrl-Shift-P), and classic dropdown [menu_bar]s. See
.nornir/design/facett-menu.md.
One command set, three surfaces
A single [Command] type drives all three: the same action is reachable by
right-click, by typing in the palette, and by id from a headless test
([CommandPalette::invoke]) — the house rule that nothing is pointer-only.
Commands carry a stable id, a label, a group (section / top-level menu),
an optional shortcut hint, an optional icon glyph, and an enabled flag.
Theming
Every surface reads the facett Theme from the egui
context ([facett_core::theme]) — panel_bg / panel_stroke / accent /
glow / text / text_dim — so menus match every component and the sci-fi
look. The selected palette row is painted with the theme accent plus a
layered glow bloom; nothing is hardcoded.
# use facett_menu::{Command, CommandPalette, menu_bar, context_menu};
let cmds = vec![
Command::new("copy", "Copy", "Edit"),
Command::new("case.new", "New case", "Case"),
];
let mut palette = CommandPalette::default();
// each frame, after drawing the deck:
# let ctx = egui::Context::default();
if let Some(id) = palette.ui(&ctx, &cmds) {
// dispatch `id` ...
}