Feedback

ComponentRoleDashboard pair
ErrorPanelCause-chain + next-steps failure cardalert-destructive
WarningPanelNon-fatal caution cardalert (warning)
SuccessCelebrationTypewriter + ASCII-art delighttoast-success
StickyBannerViewport-pinned upgrade / notice bannersticky
DidYouKnowPure render of a tier hintDYK widget
TierBadgeShape-based tier indicator (FREE / ★ PREMIUM)tier chip
EmptyState”Nothing here yet” affordanceempty-state pane

All feedback components are pure: they depend only on primitives + tokens and do not touch IPC, disk, or domain state. The animation in SuccessCelebration is driven by external tick() calls — never thread::sleep.