Centered 404 Message

404

This page could not be found

The page you are looking for was moved, renamed, or never existed. Check the address, or pick one of the pages below.

About this block

Centered 404 MessageFREE

Minimal centered 404 page with a large error code, a heading, a short explanation, two call-to-action buttons, and a divided row of popular page links underneath.

Error1: Centered 404 Message

A minimal 404 page built around a single centered column: an oversized error code, the heading, a short explanation, a button row, and a divided footer of popular page links. Every string is a prop, so the same block covers 404, 403, and 500 screens.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/error1"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/error1"

This installs the block to components/beste/block/error1.tsx, plus the button shadcn/ui primitive it uses for the call-to-action row.

Quick start

The installed file exports error1Demo alongside the block: the exact props behind the preview above. Spread it into Next.js's not-found.tsx to get a working error page in one line.

tsx
import { Error1, error1Demo } from "@/components/beste/block/error1";

export default function NotFound() {
  return <Error1 {...error1Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { House } from "lucide-react";
import { Error1 } from "@/components/beste/block/error1";

export default function NotFound() {
  return (
    <Error1
      code="404"
      heading="This page could not be found"
      description="The page you are looking for was moved, renamed, or never existed."
      buttons={[
        { label: "Back to home", href: "/", icon: House },
        { label: "Contact support", href: "/support", variant: "outline" },
      ]}
      linksLabel="Popular pages"
      links={[
        { label: "Documentation", href: "/docs" },
        { label: "Pricing", href: "/pricing" },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
codestringOversized status code shown above the heading
headingstringMain page heading, rendered as an h1
descriptionstringExplanatory paragraph under the heading
buttonsActionButton[][]Call-to-action row under the description
linksLabelstringCaption above the quick link row
linksQuickLink[][]Quick links in the footer row
classNamestringExtra classes for the outer <section>
ts
type ActionButton = {
  label: string;
  href: string;
  variant?: "default" | "outline" | "secondary" | "ghost";
  icon?: LucideIcon;
};

type QuickLink = {
  label: string;
  href: string;
};

Behavior notes

  • The whole block is static markup with no client state, so it renders fully on the server and works with JavaScript disabled.
  • Each section is independently optional: the code, heading, description, button row, and the entire link footer only render when their prop is set (or, for arrays, non-empty), so a bare heading plus buttons is a valid configuration.
  • Button icons come from the button data itself (icon is a Lucide component reference), so the icon side is fixed to the left of the label and there is no separate external-link flag.
  • Quick links animate their trailing arrow 2px to the right on hover through the named group/error1 group, so nesting this block inside another hover group will not trigger it.

More Error blocks

View all Error
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.

PRO

error12

404 With Popular Articles

Blog 404 that turns a dead post URL into reading: centered messaging above a three-up article grid with cover images, category badges, dates, and read times.

PRO

error13

404 With Site Directory

404 page that doubles as a sitemap: left-aligned messaging over four columns of grouped section links, so visitors on a large site can jump straight to the area they wanted.

PRO

error3

Split 404 With Image

Two-column 404 page with the error code, heading, explanation, buttons, and a small note on one side, and a full-bleed image that scales on hover on the other. The image side can be flipped with a prop.

PRO

error4

404 With Destination Cards

404 page that recovers the visit with a grid of destination cards, each with an icon, title, description, and hover arrow, followed by a centered row of fallback buttons.

FREE

error7

404 Notice Card

Compact bordered 404 card with a circular icon, status label, heading, one-line explanation, and stacked full-width buttons. Sized for app shells and modals as well as full pages.