Sakani

Notifications

Three surfaces for telling someone something: a page-level banner, a feed row, and an inline hint.

Scheduled maintenance tonight, 01:00–02:00 UTC.

Read more

Your card was declined. Update it to avoid interruption.

Which one

Announcement spans the page and interrupts — reserve it for things true of the whole app. NotificationItem is a row in a feed people choose to open. InlineHint sits next to the control it qualifies and never leaves. For transient confirmation of something the user just did, use a Toast instead; for a persistent state of the page itself, an Alert.

Notification rows

Passing description is what switches a simple row into the actionable card — there's no separate variant prop to keep in sync with it.

New lead assigned to you

2m ago

Invoice paid

Yesterday

Review requested

Amara asked you to review “Q3 forecast”.

Inline hints

Changes apply to every member of this workspace.

Lowering the seat count removes the newest members first.

Announcement props

PropTypeDefaultDescription
messagestringThe announcement text.
variant'neutral' | 'urgent''neutral'Urgent drops the link — an urgent banner should carry one action, not a reading detour.
linkLabel / linkHrefstringTrailing link. Neutral variant only.
onLinkClick() => voidHandler if you're routing client-side instead of navigating.
onDismiss() => voidThe dismiss button only renders when this is set.

NotificationItem props

PropTypeDefaultDescription
titlestringWhat happened.
iconReactNodeLeading icon element.
timestampstringPre-formatted time. Simple row only.
readbooleanfalseUnread rows get a tinted background and a dot. Simple row only.
descriptionstringIts presence is what switches the row into the actionable card layout.
actionLabel / onActionstring / () => voidPrimary action on the card.
onDismiss() => voidFires from both the header × and the footer Dismiss.
dismissLabelstringLabel for that footer button.

InlineHint props

PropTypeDefaultDescription
messagestringThe hint text.
variant'neutral' | 'warning''neutral'Warning is for a consequence worth pausing over, not decoration.