- One island
- The store holds a record or nothing at all. No stack, no queue, no limit, no second outlet — a new call replaces the live one, even mid-exit.
- Objects only
- Every creation method takes one options object. There is no string form and no positional second argument, so a call reads the same everywhere.
- Latest invocation wins
- Each call mints a new instance. A stale timer, exit or promise settlement is dropped rather than applied to the notification that replaced it.
- Physical refresh
- An open island collapses before it changes what it says, then opens again. Same DOM node, one continuous silhouette, never a card swapped for a card.
- Timers that hold
- Hover, focus, a hidden document and an explicit pause are separate reasons. The countdown resumes only when the last one is gone.
- Accessible by construction
- A structural li, one polite live region, a real button as its sibling, and no control nested inside another. Focus never moves on its own.
- No animation dependency
- The silhouette is an SVG filter, the morph is the Web Animations API on measured values, and the rest is CSS. Interruptible, and zero runtime deps.
- Yours to style
- A stylesheet you import, tokens you override, a class per slot, per-call styles, or unstyled. Never coupled to a CSS framework.