Drawer

Modal panel that slides in from the side or from the bottom (Side: "bottom"). Same primitive as Modal — trapped focus, locked scroll, inert content behind. A side panel that lets Tab escape is even worse than a dialog that does, because the page behind still looks usable.

Left and right

Open it and try to Tab out: focus cycles inside. Escape closes it and returns focus to the button. While it is open, the page behind does not scroll.

@components.Drawer(components.DrawerProps{ID: "nav", Title: "Navigation"}) {
  @components.Menu(components.MenuProps{Entries: entries})
}
// trigger, inside an Alpine scope:
// x-on:click="$dispatch('open-drawer', 'nav')"

From the bottom

@components.Drawer(components.DrawerProps{ID: "share", Title: "Share", Side: "bottom"}) { ... }