Skip to content
GetUrUI

404 Pages

5 variantsPro
.md

Five full-screen 404 pages, from digits that fall and stack on springs to a split-flap departure board, stretchy pointer-following type, a terminal route trace and a searchable signpost.

404not founderror pagepage kitphysicssplit flapterminalsearch

Falling blocks

falling-blocks.tsx

The 404 digits and a few word blocks drop into a pile on bouncy springs; drag any block and it springs back, press it to bump it.

$npx shadcn@latest add @geturui-pro/not-found-pages-falling-blocks
PropTypeDefaultDescription
brandstring"Kiln"Name in the top bar and buttons.
pathstring—The path that wasn't found, shown in the copy.
headingstring—Main heading.
descriptionstring—Supporting paragraph.
homeHrefstring"/"Where the brand and back button point.
onSearch() => void—Called when the search button is pressed.
links{ label: string; href: string; hint?: string }[]—Helpful pages listed beside the pile.
classNamestring—Classes for the outer section.

Flip panels

flip-panels.tsx

An airport split-flap board where every cell rattles through the alphabet to spell the cancelled route, with live departures to pick instead.

$npx shadcn@latest add @geturui-pro/not-found-pages-flip-panels
PropTypeDefaultDescription
brandstring"Meridian"Brand in the header.
pathstring—Missing path, spelled out on the board.
widthnumber18Characters per board row.
headingstring—Main heading under the board.
descriptionstring—Supporting paragraph.
departures{ path: string; label: string; status: string }[]—Alternative destinations listed as departures.
homeHrefstring"/"Where the brand links.
classNamestring—Classes for the outer section.

Elastic type

elastic-type.tsx

Giant 404 glyphs stretch, skew and lean toward the pointer, then snap back on jelly springs; a wobble button pokes them from the keyboard.

$npx shadcn@latest add @geturui-pro/not-found-pages-elastic-type
PropTypeDefaultDescription
brandstring"Pliant"Brand in the header.
homeHrefstring"/"Where the brand links.
codestring"404"Characters rendered as stretchy type.
headingstring—Line under the digits.
descriptionstring—Supporting paragraph.
primaryAction{ label: string; href: string }—Volt button.
secondaryAction{ label: string; href: string }—Secondary button.
links{ label: string; href: string }[]—Header navigation links.
classNamestring—Classes for the outer section.

Terminal trace

terminal-trace.tsx

A terminal types out a route trace that fails with HTTP 404, then lists ranked suggestions and accepts real `cd`, `ls` and `help` commands.

$npx shadcn@latest add @geturui-pro/not-found-pages-terminal-trace
PropTypeDefaultDescription
brandstring"Gantry"Product name in the copy.
homeHrefstring"/"Where the back button points.
hoststring"gantry.dev"Host shown in the trace.
pathstring—The missing path being traced.
suggestions{ path: string; title: string; match: number }[]—Closest pages, with a 0–100 match score.
typingSpeednumber18Milliseconds per typed character.
onNavigate(path: string) => void—Called when a suggestion is picked or `cd <path>` is run.
classNamestring—Classes for the outer section.

Wayfinder

wayfinder.tsx

A trail signpost whose arms swing in and sway on hover, beside a search combobox that filters pages with highlighted matches.

$npx shadcn@latest add @geturui-pro/not-found-pages-wayfinder
PropTypeDefaultDescription
brandstring"Switchback"Brand in the header and search label.
homeHrefstring"/"Where the brand links.
headingstring—Main heading.
descriptionstring—Supporting paragraph.
signs{ label: string; href: string; direction: "left" | "right" }[]—Arms on the signpost.
pages{ title: string; href: string; section: string; keywords?: string[] }[]—Searchable pages.
onSelect(page: WayfinderPage) => void—Called when a result is chosen with Enter or a click.
classNamestring—Classes for the outer section.

Install the whole set

Installs every 404 pages variant at once. Each section above has its own command for a single variant.

Pro installs use your private registry token. Add the @geturui-pro registry once — setup guide. The command works after you get Pro.

$npx shadcn@latest add @geturui-pro/not-found-pages

Accessibility

  • Every page has a real h1 that states the error; decorative digits and art are aria-hidden or labelled as a single image.
  • Interactive pieces (draggable blocks, suggestions, signposts, the search combobox) are buttons or links reachable by keyboard, with arrow-key navigation where lists are involved.
  • Under reduced motion, falls, flaps and stretches are skipped and content renders in its final state.

Related