Notifications
Inboxes and activity, read and unread.
- 5 blocks
- 2 free
- 3 Pro
- Light and dark
- Responsive
Unlock 55 Pro blocks and every template
Every preview is open. With Pro you get the code, copy-paste ready, with every update for good.
A plain list, newest first.
notifications-list.tsx
import { AlertTriangle, CreditCard, UserPlus, Wallet } from "lucide-react";
import { cn } from "@waveinno/ui";
const ITEMS = [
{ icon: <AlertTriangle />, tone: "bg-danger-subtle text-danger", title: "Gate 2 camera is offline", line: "Plates are not being read at Gulshan.", when: "2 min", unread: true },
{ icon: <CreditCard />, tone: "bg-primary-subtle text-primary", title: "Refund approved", line: "৳450 to DHA-GA 12-3456 for a double charge.", when: "18 min", unread: true },
{ icon: <Wallet />, tone: "bg-success-subtle text-success", title: "Payout sent", line: "৳1,24,500 to the account ending 4410.", when: "1 h" },
{ icon: <UserPlus />, tone: "bg-warning-subtle text-warning", title: "Sadia joined the team", line: "As an attendant at Banani Tower.", when: "3 h" },
];
export default function NotificationsList() {
return (
<div className="bg-surface px-4 py-10 sm:px-6">
<div className="mx-auto max-w-2xl">
<div className="flex items-center justify-between">
<h1 className="disp text-[22px] font-bold leading-8 text-text">Notifications</h1>
<a href="#" className="text-[13px] font-semibold text-primary hover:underline">
Mark all as read
</a>
</div>
<ul className="mt-5 divide-y divide-border overflow-hidden rounded-[18px] border border-border bg-raised shadow-[var(--lit)]">
{ITEMS.map((n) => (
<li key={n.title} className={cn("flex gap-3.5 px-5 py-4", n.unread && "bg-primary-subtle/30")}>
<span className={cn("grid size-9 shrink-0 place-items-center rounded-full [&_svg]:size-4", n.tone)}>{n.icon}</span>
<div className="min-w-0 flex-1">
<p className="text-[14px] font-semibold text-text">{n.title}</p>
<p className="mt-0.5 text-[13px] text-muted">{n.line}</p>
</div>
<div className="flex shrink-0 flex-col items-end gap-1.5">
<span className="text-[12px] text-muted">{n.when}</span>
{n.unread ? <span className="size-2 rounded-full bg-primary" aria-label="Unread" /> : null}
</div>
</li>
))}
</ul>
</div>
</div>
);
}Tabs, unread markers, actions in place.
Bell with panel
ProA bell that opens today and earlier, grouped.
Activity feed
ProA timeline of who did what, with comments and files.