Notifications

One card for everything the room should notice. Top-right, newest on top, gone after four seconds.

Tones — the badge and the hold bar carry the colour

Fluffy Otter solved Part 1Loops · 3rd so far
mint · solved
Mira solved it firstLoops · Part 2 · 4:12
sun · first place
12 people are hereEveryone is on slide 18
sky · room news
Connection lostTrying again …
coral · problem

Rules

Title says who and what, in one line: “Mira solved Part 1”. Body says where, muted.

Badge: a person gets their avatar (their animal, or their initial on a colour taken from the name); room messages get an icon.

Stack: at most four; a fifth pushes the oldest out. On slide views it starts below the sync pill. Peek frames show none.

Motion: slides in 1.5rem from the right, 400ms, cubic-bezier(0.22, 1, 0.36, 1); leaves with a 200ms fade; the cards below glide up. The bar runs out over the hold time. A click dismisses.

Code: useToasts().push({ title, body, tone, name }). Never build a one-off notification.

56.3/60