anchor-list
Builds AnchorList Avatar Button Checkbox CommandPalette ContextMenu DescriptionList Divider EmptyState Icon List Menu Popover ProgressBar Tag Timeline


The code that drew it
A still frame holds a repeating animation at its first frame and a one-shot at its last, because a still of a moving thing is not reproducible. Run the gallery to review motion.
fn anchor_navigation(window: &mut Window, cx: &mut App) -> AnyElement {
if !cx.has_global::<SceneAnchorList>() {
let label = cx.strings().text(StringKey::AnchorMoreSections);
let overflow = cx.new(|cx| Menu::new("scene.anchor-list.menu", window, cx).trigger(label));
cx.set_global(SceneAnchorList { overflow });
}
let theme = cx.theme().clone();
let overflow = cx.global::<SceneAnchorList>().overflow.clone();
stack(&theme)
.w(px(700.0))
.child(caption(
&theme,
"section intents only; the declared overflow moves anchors into a menu",
))
.child(
AnchorList::new("scene.anchor-list")
.anchors([
Anchor::new("summary", "Summary"),
Anchor::new("inputs", "Inputs"),
Anchor::new("constraints", "Constraints"),
Anchor::new("verification", "Verification"),
Anchor::new("history", "History").disabled(true),
])
.active("inputs")
.overflow_after(3)
.overflow_menu(overflow)
.on_navigate(|_, _, _| {}),
)
.into_any_element()
}