Staaarter

Oversized Numeral 404

A monochrome 404 screen led by the status code set as an oversized display numeral, with a hairline rule below it splitting the content into two columns that stack on mobile: a statement and pill CTA on one side, an explanation and a couple of display-type text links on the other.

By Staaarter Team
Error
Docs
Live preview

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/oversized-numeral-404.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/error/error29.tsx instead.

Usage

The file also exports error29Demo, 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 { Error29, error29Demo } from "@/components/blocks/error/error29";

export default function Page() {
  return <Error29 {...error29Demo} />;
}

Props

PropTypeDefaultDescription
statusCodestringnoneOversized numeral shown at the top, e.g. "404".
headingstringnoneHeadline in the left column.
descriptionstringnoneShort copy under the headline in the left column.
ctaLabelstringnoneLabel for the pill-shaped CTA button.
ctaHrefstringnoneHref for the pill-shaped CTA button.
explanationstringnoneCopy shown at the top of the right column.
linksDisplayLink[]noneDisplay-type text links listed in the right column.
classNamestringnoneExtra classes for the outer section element.

Types

interface DisplayLink {
  label: string;
  href: string;
}

Behavior notes

  • Fully static server component: no client state, hooks, or interactivity of any kind.
  • The CTA button and every link in the right-hand list render as real Next.js Link components via the Button's render prop, but none point anywhere but "#" in the demo.
  • The two columns are a single grid that becomes two columns with a divider at the sm breakpoint and stacks full-width on mobile, matching the brief's stacking requirement.