About this set
A full notification centre for an app’s notifications page, with a separate empty state. The header shows a running summary such as 8 notifications, 4 unread and a Settings link. Tabs for All, Mentions and System filter one list and show an unread count each. A toolbar holds a Select all checkbox that turns indeterminate when only some rows are picked, a selected count, Mark as read and Archive buttons that wake up once something is selected, an Unread only switch and a project menu. Each row has its own checkbox, an avatar or system icon, a linked message, an optional quoted mention, a project chip and a time element; unread rows are tinted with an accent bar and a dot. When the tab and filters match nothing, an empty state appears with a button that resets every filter, and a second, static empty state shows the first-run case with a link to settings. Use it as the destination for a bell’s View all link. The tabs follow the ARIA tabs pattern over a single tab panel, and the script keeps state in data attributes and the hidden attribute, so the Bootstrap and Tailwind versions share it unchanged.
What’s included
- All, Mentions and System tabs with unread counts and arrow-key navigation
- Select all with an indeterminate state and bulk Mark as read and Archive
- Unread only switch and a project filter
- Empty state with a reset button, plus a first-run empty state
- Bootstrap .nav-underline, .form-check, .form-switch, .form-select and .list-group without its JavaScript
Accessibility
The tabs use role="tablist" and role="tab" with aria-selected and a roving tabindex; Left and Right arrows, Home and End move between them. Every row checkbox is named after its notification, for example Select: Kai Brennan commented on Pricing table, unread rows carry visually hidden Unread text, and filter changes, bulk actions and archive counts are announced through a polite status region. After archiving, focus returns to Select all. All controls have a visible focus outline and the switch transition is off under prefers-reduced-motion.
Customise it
In plain CSS change --nc-brand, --nc-ink, --nc-text, --nc-muted and --nc-line on .nc. In Bootstrap the same variables feed the --bs-nav-underline-*, --bs-btn-* and --bs-list-group-* variables; in Tailwind edit the hex values in the aria-selected:, data-[unread]: and accent- utilities.






