Maintenance Window Notice
Full-height maintenance screen: a square status-code chip next to a "Maintenance" eyebrow, a bold accent headline, three bordered cells showing the maintenance window (Start / End / Duration), a real email signup that swaps to a confirmed state on submit, and a link to a (decorative) live progress page.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/maintenance-window-notice.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/error/error17.tsx instead.
Usage
The file also exports error17Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Error17, error17Demo } from "@/components/blocks/error/error17"; export default function Page() { return <Error17 {...error17Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| eyebrow | string | "Maintenance" | Label shown next to the status-code chip. |
| statusCode | string | "503" | Status code shown inside the square chip. |
| heading | ReactNode | "We're doing some quick maintenance" | Main headline. |
| description | string | "Scheduled upgrades are underway..." | Supporting copy under the headline. |
| window | MaintenanceWindow | none | Start time, end time, and duration shown in the three bordered cells. |
| progressHref | string | "#" | Link target for the "View live progress" link. |
| progressLabel | string | "View live progress" | Label for the live-progress link. |
| className | string | none | Extra classes for the outer section element. |
Types
type MaintenanceWindow = { start: string; end: string; duration: string };
Behavior notes
- The email signup form is real client state (useState for the email value and a submitted flag): submitting swaps the form for a confirmed "You're on the list." message, exactly like a working notify-me form, but nothing is actually sent anywhere.
- "View live progress" is a plain next/link with no real status data behind it, purely decorative navigation.
- The three window cells (Start / End / Duration) are static demo data, not a live countdown.
More Error Blocks
View all →centered-404-message
Centered 404 Message
Minimal centered 404 with two CTAs and a divided row of popular page links.
404-with-site-search
404 With Site Search
404 screen with a working search box and a bordered list of suggested pages.
split-404-with-image
Split 404 With Image
Two-column 404 with the message on one side and a full-bleed photo that scales on hover on the other.
404-with-destination-cards
404 With Destination Cards
404 screen with a grid of icon destination cards plus fallback CTA buttons.
404-support-panel
404 Support Panel
Card-style 404 echoing the requested URL, with a real back button and a support/status link row.
inline-404-line
Inline 404 Line
The smallest possible 404: code and message on one divided line with one button underneath.