Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Notification Channels Settings Block for React

A destinations window for alerts: a rail of Slack, email, PagerDuty, webhook and SMS destinations with a status word, beside the chosen one's routing by severity, a pause switch and a simulated test.

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

Show where alerts go and let people route them, with this notification channels window for React with Base UI. It is a fixed-height window with its own top bar: a rail of five destinations (a Slack channel, an email list, a PagerDuty service, a webhook and a phone for SMS), each with a two-letter tile and its status in words with a small dot (Active, Paused or Needs attention), beside the chosen destination. The detail names it and where it goes, shows its last test, pauses or resumes it with a Switch and routes by severity with a Toggle Group of Info, Warning and Critical that never goes empty, with the sentence that routing amounts to ("Warning and Critical events go here"). The top bar's one Shine Button sends a test to the chosen destination: it waits a moment, says the test was accepted in this demo and updates the last test, and a paused destination refuses and says why. Every change applies at once and a status line at the window's foot says so. On a phone the rail and the detail are one pane at a time, with a Button to go back. It's built from Switch, Toggle Group, Badge, Button, Shine Button and Guides, with a CSS entrance only. For a monitoring product, an incident tool or any app that notifies other services.

FAQ

How do I fill it with my own destinations?

Edit the constants at the top. DESTINATIONS lists each destination with its kind, the two letters of its tile, its name and where it goes (an address, a channel or a service; ltr marks the ones that read left to right in any language). START is what the account has stored when the page opens: whether each destination is active, the severities routed to it and the result of its last test. The status words, the routing sentences and the rail are all worked out from those, so a status is never typed. Put your own logos in the tile slot if you have the rights to use them; the block ships only lettermarks.

Where do Active, Paused and Needs attention come from?

A paused destination is Paused, whatever its last test said. An active one whose last test failed is Needs attention, shown with a warning dot, the only coloured mark in the window; any other active destination is Active. Sending a test that is accepted updates the last test, so a destination that needed attention becomes Active again in the same press. Nothing is stored between visits.

What does Send test do, and what stays local?

Nothing leaves the page and no service is contacted. The button waits about 0.7 seconds with its spinner, then the status line says "Accepted in this demo. Nothing was sent", the last test becomes today and focus returns to the button. A paused destination refuses and says to resume it first, and the button stays focusable, marked aria-disabled, so the reason is there to be read. To make it real, post a test event to the destination in the handler and show its real result, failures included, in the same places.

Why can't a destination have no severities?

A destination that receives nothing is a paused one, and Pause is its own switch, so the group keeps at least one chip pressed: choosing the last pressed chip is ignored and the status line says to keep one. Each chip is pressed or not, named for its destination ("Severities sent to #deploys"), and the sentence under the group is written from what is pressed.

How does it look on a phone?

The window keeps its height and shows one pane at a time: the rail first, and choosing a destination replaces it with the detail, moving focus to the destination's name, under a Back button that returns to the rail with focus on the row you left. The top bar keeps the title and shows Send test once a destination is open. The detail scrolls inside the window, never the page.

Is it accessible?

The rail is a list of real buttons, the chosen one marked aria-current, and each says its status in words, never only with a dot. The status line at the foot is a polite live region present from the start, so every change, test and refusal is spoken. The rail and the detail are separate regions with their own scrolling, the destination's name is a heading that takes focus when the panes swap, and the window's height never changes, so nothing moves under the pointer.

  • Pro

    A notification settings panel: a channel strip with all-or-nothing checkboxes, a matrix of switches by activity and channel with a locked security email, quiet hours, and a save bar that counts unsaved changes.

  • Pro

    Alert Rules Settings

    Alerts and audit

    An alert rules panel where each rule is a sentence you edit in place with menus and a number field, beside a framed chart of its metric with the threshold line and a computed count of how often it would have fired.

  • Pro

    An escalation policy on a vertical rail whose axis is the clock: tiers with a target, a channel group and a timeout, cumulative minutes on every node, add, move and remove, and a re-page switch.

  • Pro

    A push settings panel that leads with a 24-hour strip of quiet hours, a critical-alerts switch, and per-device Push, Sound and Badge toggles with a save bar that counts unsaved changes.

  • Pro

    Usage Alerts Billing

    Plan and usage

    Usage alert settings: percentage thresholds as switches with number inputs, recipients as email chips, and a choice between email and a webhook, with a save that checks them.

  • Pro

    Audit Log Settings

    Alerts and audit

    A settings change history in a fixed-height window: changes grouped by area in folds with counts, an actor filter, and a detail pane with the before and after values, who and when, and a Revert that undoes only the latest change to a setting, marks the original and adds a revert event at the top.