Skip to content
WARLOCKEnter the desktopSearch

Popup surfaces

Popup surfaces host shell controls near their opener and keep their own presentation and focus lifecycle.

Current beta & runtime boundary

At snapshot 6e6ad828c (2026-11-02 canonical ledger), 19 of 242 whole EARS requirements and 42 of 417 scenarios hold historical source-bound acceptance (ELM-TEA-001, ELM-TEA-002, and ELM-DEL-010), while ELM-TEA-004 single-root subscription observer coverage remains in preparation. The embedded specimen below runs in-browser over deterministic fixtures, and captures in Evidence come from the frozen bc3daf7b reference baseline. Native Omarchy/Hyprland layer-shell popup placement, focus return, AT/IME, and release acceptance remain OPEN.

Overview

Popup surfaces host shell controls near their opener and keep their own presentation and focus lifecycle.

Anatomy

A heading, status and ordered controls form the surface; placement follows the host allocation.

The popup’s heading and status precede its controls. The same renderer presents different modes, with mode-specific roles such as menu or switcher listbox.

States

A current publication and lease identify the actionable presentation. Dismissal, reflow and replacement can retire it.

  • Published: controls belong to the current presentation and lease.
  • Reflowed: placement follows the latest host allocation.
  • Retired: a replaced or dismissed presentation cannot authorize a stale action.

Specimen

Real Elm interface. Simulated desktop. Client window interiors are fixtures. Load the desktop only when you want to explore this component.

Open the full desktop scenario

Related archived specimens: Frozen v6 popup. Frozen v6 is an archival reference.

Behavior

The controller admits presentation updates and routes actions. Escape or dismissal closes the surface; reflow follows the host, and focus returns through the controller.

Open a surface from its bar or context control. Escape dismisses supported popup modes, and the controller handles return to the opener. Reflow changes placement without inventing a new action.

Accessibility

Opening focus, keyboard ownership and return to the opener are part of the interaction. Controls stay reachable when the surface scrolls.

Content

Use a clear heading and native control labels. Status wording belongs to the surface’s announcement policy.

Headings identify the current surface; status text describes its current facts or outcome. Keep the labels of controls meaningful outside their visual arrangement.

Evidence

Unmodified captures of the running interface record the states below.

Native capture: Applications popup.
Native capture: Applications popup.
Native capture: popup before focus return.
Native capture: popup before focus return.

View Elm source on GitHub

Try it

Explore popup surfaces in context on the simulated desktop.

Enter the popup surfaces scenario