Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Notification Centre Testimonials Block for React

A reverse split: a notification window in a hairline frame where customer praise arrives as unread rows, with a new-count badge, rows that mark themselves read and a Mark all as read button, beside a header with a Shine Button.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Customer praise shown the way your own product delivers news. On a desktop the window is on the left, in a frame with + marks on its corners, and on the right a header for Handrail, a workspace for design handoff, with a Shine Button and two figures pinned to the foot. The window has a title bar with a "3 new" badge and a "Mark all as read" button above five rows, each with the customer's initials, name, role, a one-line quote, how long ago it arrived and a blue dot while it is unread. Pressing a row marks that one read, and pressing the button clears them all, so the badge counts down to "All read" and the button turns into "Restore unread" to run it again. Nothing is saved: it is a demo of a feature, for product pages whose audience already lives in an inbox. On a phone the header and button come first, then the window. It's built from Guides, Item, Avatar, Status, Badge, Button and Shine Button, with CSS only and your theme's tokens.

FAQ

How do I change the notifications?

Edit NOTES at the top of the file: each has a quote, the customer's name, role and initials, and a relative time. SEEN lists the ids that start out read; every other note starts unread, and the badge is worked from the list, so adjust the header sentence ("Five notes… three of them still unread") if you add or remove rows. FACTS holds the two figures under the header.

How do I operate it with the keyboard?

Each row has a check button, named "Mark as read" with the customer's name, which reports whether it is pressed; press Enter or Space on it to toggle that row. With a mouse or a finger you can press anywhere on the row, because the button stretches over it. The "Mark all as read" button at the top works the same way and keeps focus when it turns into "Restore unread".

What do screen readers hear?

Every row is a figure with the customer as its caption and the words as a blockquote, and an unread row starts with the word "Unread". The dot is decorative. After each change one polite status line says what happened, for example "Marked read: Lena Hoffmann. 2 new."

Is anything saved or sent?

No. Read and unread live in the component's state and reset when the page reloads, which is why the button can restore them. To make a real inbox, load the notes from your own API and call it from toggle and toggleAll.

Does the window change size when I mark things read?

No. The badge and the button reserve the room of their longer text, and the unread dot only hides, so the rows and the window keep their size. The title bar wraps onto two lines on a very narrow phone.

What about reduced motion?

The section fades up once on load using a CSS transition, which switches off with reduced motion. Marking a row read changes colour and weight only, with no movement, and the Shine Button's light fades in place instead of sweeping.

  • Pro

    A reverse split on drafting lines: a group chat of five dispatchers in a hairline frame, alternating message bubbles with a name, role and relative time above each, beside a header and one Shine Button.

  • Pro

    A launch-week chat in a split: the headline and a Shine Button in a rail, and four messages ruled apart by hairlines, each with celebrate, love and ship-it reaction pills that really toggle and count.

  • Pro

    An email-style thread for a tracing tool that turns a sceptic into an advocate, in a framed window beside a hairline divider: a subject line, earlier messages folded behind a disclosure row, the two latest open, and a Shine Button.

  • Pro

    Six customer testimonials styled as social posts in cells with overshooting lines: initials avatar, verified tick, handle and age, the post and compact reply, share and like counts, with a Shine Button in the header.

  • Pro

    A card-in-card call to action for a team inbox with a working notification tray: the pitch and a Shine Button beside a tray where a button fires toasts, newest on top, each with Undo and close.

  • Pro

    A split testimonial for a build tool: the headline and a Shine Button on the left, and on the right one customer quote written as a code docblock in an editor window framed by hairline corners, with line numbers, comment colours and the author as @author and @role tags. It follows the theme.