Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Scheduled Downtime Panel Error Block for React

A maintenance notice for a payroll service as one framed panel: a clock you scrub through the 02:00 to 06:00 UTC window drives the time left, a progress bar and four tasks that read Done, Running or Queued.

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 people exactly where a maintenance window stands, with this scheduled downtime block for React with Base UI. It's the notice of Paystem, a payroll service: a header with the window's date and hours and a Shine Button link to the status page, the only colored control, over one framed panel with a plus mark on each corner. The first band reads out the clock, how much of the window has passed and how much time is to go, above a Progress bar split where each task ends. The second band is a demo control, a Slider that moves the clock through the window in 15-minute steps. The third lists four tasks (backups, the database migration, security patches, verification), each with its own window and a Badge that reads Done, Running with its own percent, or Queued, with a shape beside the word. Nothing ticks on its own: time moves only when you move the Slider. It's built from Slider, Progress, Badge, Shine Button and Guides, with a CSS entrance only. For payroll, billing and any service that publishes its maintenance windows.

FAQ

Why is there a Slider on a notice?

The real notice would show the clock of the moment, which no static demo can. The Slider is a demo control: it pretends the time is any 15 minutes from 02:00 to 06:00 UTC so you can see every state of the panel, and the copy says so. In your app, drop the Slider and set at from the current time (and refresh it every minute if you want the panel live).

How is each task's state worked out?

Each task has a typed start and end in minutes after midnight UTC. At the clock's time a task is Done once its end has passed, Running from its start, and Queued before it. A running task shows how far through its own window the clock is, and the "1 of 4 done" count and the bar are derived from the same list, so the text and the drawing never disagree.

Where do the dates and times come from?

The window's day and its hours are typed constants, written in UTC with Intl.DateTimeFormat and a timeZone: "UTC", so the page reads the same on the server and in every time zone. Nothing calls Date.now() or new Date() with no argument. Show your visitors' own time zone only if they ask for it, and keep UTC visible beside it.

Is the Slider accessible?

It's a real slider with a name ("Pretend the time is") and a spoken value such as "04:15 UTC", operable with the arrow keys, Home and End. A polite status line, present from load, announces the new state half a second after you stop moving it ("04:15 UTC: Database migration is running, 1 h 45 min to go"), so a screen reader isn't flooded while you drag. The bar is decorative; its numbers are in text.

What happens in a right-to-left page?

Times, the Slider and the bar stay left to right, because a clock's axis doesn't flip; the text around them follows the page. The Slider is wrapped in the catalog's direction provider for that, so its keys and thumb agree with its drawing.

What stays local, and where does the link go?

Everything: the clock, the Slider and the list change only this page. The status page link goes to #: point it at yours. It's a Shine Button with render set to an a element and nativeButton={false}.

  • Pro

    A full-height maintenance page for an online bank that shows a five-segment progress bar with the window's start and expected return, and a Check again button that reports a typed result.

  • Pro

    A full-height status page for cloud storage moving an account between regions: a drawn move whose dashes run three cycles, and an accordion of five steps that each say what they do and what stays available.

  • Pro

    A banner stack in an on-call console window: a critical banner that cannot be dismissed, a warning and an info banner that fold away, and a Dismissed row that restores them, in a window that never changes height.

  • Pro

    A full-height page for a web app tab running a retired version: a ruler of five releases with the supported range shaded and You are here marked, a radio group to read each release, three changes in 5.0 and a reload button.

  • Pro

    A full-height holding page for a marketplace that is not open yet: an email form that checks itself and notes the address in place, beside the four phases of the build as a vertical Steps with a bar for the schedule.

  • Pro

    Beta Ended Error

    Maintenance

    A full-screen page for the end of a beta: a drawn tester card with figures counted from dates, a perforated discount ticket with a copyable code, and a Claim 35% off button that recomputes the first-year price from whole cents.