Status Page Footer
openstatus/status-page-footerFreeBlock
Presentation-only footer chrome (powered-by, action cluster). Embed/white-label gating, switchers, and tRPC fetch stay in the wrapping app
Install it
npx shadcn@latest add https://openstatus.dev/r/status-page-footer.jsonSource
1"use client";23import { useStatusBlocksLabels } from "@/components/blocks/status-i18n";4import { cn } from "@/lib/utils";56/**7 * StatusPageFooter — presentation-only footer chrome.8 *9 * Compose with `StatusPageFooterContent`, `StatusPagePoweredBy`, and10 * `StatusPageFooterActions`. Embed / white-label gating, locale + theme11 * switchers, and the tRPC fetch all stay in the wrapping app.12 */13export function StatusPageFooter({14 className,15 ...props16}: React.ComponentProps<"footer">) {17 return (18 <footer19 data-slot="status-page-footer"20 className={cn(className)}21 {...props}22 />23 );24}2526export function StatusPageFooterContent({27 className,28 ...props29}: React.ComponentProps<"div">) {30 return (31 <div32 data-slot="status-page-footer-content"33 className={cn(34 "mx-auto flex max-w-2xl items-center justify-between gap-4 px-3 py-2",35 className,36 )}37 {...props}38 />39 );40}4142/**43 * StatusPagePoweredBy — "powered by …" line. The link element (with href,44 * target, utm params, app-specific Link wrapper, etc.) is supplied as45 * children so the block stays routing-agnostic.46 */47export function StatusPagePoweredBy({48 children,49 className,50 ...props51}: React.ComponentProps<"p">) {52 const labels = useStatusBlocksLabels();53 return (54 <p55 data-slot="status-page-powered-by"56 className={cn(57 "text-muted-foreground font-mono text-xs leading-none sm:text-sm",58 className,59 )}60 {...props}61 >62 {labels.poweredBy} {children}63 </p>64 );65}6667/**68 * StatusPageFooterActions — right-side cluster (last-updated, locale,69 * theme). Pass actions as children; the block is layout-only.70 */71export function StatusPageFooterActions({72 className,73 ...props74}: React.ComponentProps<"div">) {75 return (76 <div77 data-slot="status-page-footer-actions"78 className={cn("flex items-center gap-2", className)}79 {...props}80 />81 );82}
What it pulls in
Other registry items
Files it writes
More from openstatus
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Status Bannerstatus-banner | openstatus | Blocks | Free | no deps | |
| Status Barstatus-bar | openstatus | Blocks | Free | 1 dep | |
| Status Blank Statesstatus-blank | openstatus | Blocks | Free | no deps | |
| Status Calendarstatus-calendar | openstatus | Blocks | Free | 3 deps | |
| Status Page Chromestatus-chrome | openstatus | Blocks | Free | no deps | |
| Status Page (Complete)status-complete | openstatus | Blocks | Free | no deps | |
| Status Componentstatus-component | openstatus | Blocks | Free | 2 deps | |
| Status Component Groupstatus-component-group | openstatus | Blocks | Free | no deps |
