Oversized Numeral 404

Monochrome 404 led by the status code set as an oversized numeral, with the statement and pill call to action on one side of a hairline rule and the explanation plus display-type links on the other.

PRO

Error29: Oversized Numeral 404

The status code set as an oversized numeral carries this page: under a hairline rule the statement and its pill call to action sit on one side, the explanation and a row of display-type links on the other.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/error29?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/error29?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/error29.tsx, plus the two design-system primitives it renders through: badge7 for the parenthetical eyebrow and button12 for the pill call to action.

Quick start

The installed file exports error29Demo alongside the block: the exact props behind the preview above. Spread it to get a working error page in one line.

tsx
import { Error29, error29Demo } from "@/components/beste/block/error29";

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

Then replace the demo with your own props. Keep the link labels to one word each, since they render at display size:

tsx
import { Error29 } from "@/components/beste/block/error29";

export default function NotFound() {
  return (
    <Error29
      badge={{ label: "Four Oh Four" }}
      code="404"
      heading="Nothing was ever kept at this address."
      description="No redirect, no archive copy, no quiet replacement."
      button={{ label: "Begin again", href: "/" }}
      labels={{ linksTitle: "Elsewhere" }}
      links={[
        { label: "Work", href: "/work" },
        { label: "Writing", href: "/writing" },
        { label: "Contact", href: "/contact" },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Parenthetical eyebrow above the numeral
codestringStatus code set as the oversized numeral
headingstringStatement under the rule, rendered as an h1
descriptionstringExplanatory paragraph in the right column
buttonActionLinkPill call to action under the statement
labels{ linksTitle?: string }{}Eyebrow above the link row
linksActionLink[][]Display-type links in the right column
classNamestringExtra classes for the outer <section>
ts
type ActionLink = {
  label: string;
  href: string;
};

Behavior notes

More Error blocks

View all Error
PRO

error19

Typographic 404 Index

Monochrome 404 built on oversized display type: a parenthetical eyebrow, a display headline with a muted emphasis clause, a pill call to action, and a ruled index of every section on the site.

PRO

error14

Editorial 404 Section Index

Editorial 404 with a square eyebrow and status code over a hairline rule, an oversized accent-highlighted headline, and a ruled index of the sections visitors reach for next.

PRO

error15

500 Incident Report

Server error page with a square eyebrow and status code over a hairline rule, a bold accent headline, a bordered incident table of reference, timestamp and service rows, and a retry seal button beside a status page link.

PRO

error32

404 With Recent Writing

Monochrome 404 for a renamed article: a display headline and pill call to action above three recent entries, each a full-colour image tile with a plain date line and a bold title.

PRO

error24

404 With Featured Work

Studio 404 that recovers a dead project URL: a square eyebrow and status code over a hairline rule, an accent headline and seal button, then two large project cards with category lines and hover arrow chips.

FREE

error6

Inline 404 Line

The smallest possible 404: the status code and the message sit on one line separated by a vertical rule, stacking on mobile, with a single outline button underneath.