notification: Add configurable width and per-notification placement (#2707)
https://github.com/user-attachments/assets/3131bf7a-43a4-4a45-94b5-b78e352c1522 ## Description Notification sizing and placement were both global-only. This makes the width configurable and lets a single notification pick its own placement. - `NotificationSettings::width` sets the stack width, default `382px` (was a private `356px` constant). - `Notification::placement` overrides the global placement for one notification. Notifications are grouped by their effective placement, and each placement gets its own stack with independent collapse/expand state. - `Root::render_notification_layer` is now a full-size overlay; each stack positions itself from `NotificationSettings::margins`, so `LeftCenter` and `RightCenter` are placed correctly instead of falling back to bottom center. - Each stack is keyed by its `Anchor`. Keying it by position among the mounted stacks meant that dismissing one placement changed the element id of the others, dropping their element state and replaying every enter animation in them, visible as a flicker on the remaining notifications. The story lists all eight anchors, both for the global setting and for the per-notification override. The implementation was written with Claude Code and reviewed by hand.
F
Floyd Wang committed
03b331ca9c45530c05ef7a07a91dd2c091fd27af
Parent: b71acf5
Committed by GitHub <noreply@github.com>
on 8/14/2026, 8:23:29 AM