Two-column 404 in a quiet monochrome language: a parenthetical eyebrow, a two-line display headline, a pill call to action and an oversized report-the-link email on the left, a tall captioned photograph on the right.
A quiet two-column 404: a short display headline, a pill call to action and an oversized report-the-link email address on one side, a tall captioned photograph on the other.
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.
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
npx shadcn add "https://ui.beste.co/r/error20?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/error20?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/error20.tsx, plus the two design-system primitives it renders through: badge7 for the parenthetical eyebrow and button12 for the pill call to action.
The installed file exports error20Demo alongside the block: the exact props behind the preview above. Spread it to get a working error page in one line.
import { Error20, error20Demo } from "@/components/beste/block/error20";
export default function NotFound() {
return <Error20 {...error20Demo} />;
}Then replace the demo with your own props. The contact link is rendered at display size, so keep the label short:
import { Error20 } from "@/components/beste/block/error20";
export default function NotFound() {
return (
<Error20
badge={{ label: "Not Found" }}
heading="Empty room, <strong>wrong door</strong>."
description="There is nothing behind this address. If a link of ours sent you here, tell us."
button={{ label: "Take me back", href: "/" }}
contactLink={{ label: "hello@beste.co", href: "mailto:hello@beste.co" }}
labels={{ caption: "Studio floor, late afternoon", contactTitle: "Report the broken link" }}
image={{
src: "https://images.unsplash.com/photo-1569342195780-46e0e695da6e?w=1000&h=1250&fit=crop",
alt: "Quiet studio interior with soft afternoon light",
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string } | – | Parenthetical eyebrow above the headline |
heading | string | – | Headline HTML, rendered as an h1; <strong> marks the muted clause |
description | string | – | Explanatory paragraph under the headline |
button | ActionLink | – | Pill call to action |
contactLink | ActionLink | – | Oversized contact link under the hairline rule |
labels | Error20Labels | {} | Image caption and the lead-in above the contact link |
image | { src: string; alt: string } | – | Tall photograph in the second column |
className | string | – | Extra classes for the outer <section> |
type ActionLink = {
label: string;
href: string;
};
type Error20Labels = {
caption?: string;
contactTitle?: string;
};4:5 aspect box with object-cover, so any source ratio crops to the same tall tile. There is no hover treatment on the image: it neither zooms nor changes contrast.contactLink is set; labels.contactTitle on its own renders nothing.lg breakpoint up.heading is injected with dangerouslySetInnerHTML and accepts inline HTML; text inside <strong> drops to muted grey. Keep the value under your own control, never user input.error19
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.
error32
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.
error14
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.
error21
Monochrome server-error page: a parenthetical eyebrow over a display headline, a retry pill beside a status link, and a ruled two-column record of the reference, timestamp, subsystem and state.
error33
Monochrome page for deliberately removed content: a display headline, a ruled record of when it was published, retired and why, then a pill link to the replacement beside an archive link.
error22
Monochrome maintenance page: a parenthetical eyebrow over a display headline, the downtime window as a ruled three-column record, and a rounded notify-me field with a confirmed state.