Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Passport Stamp Collection Features Block for React

A customs declaration drawn as a page with four round stamps inked across it, over a band of four cells that say what earns each stamp and lift it on the page.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

A stamped-document feature section for React with Base UI. A centred header says "Every declaration, stamped as it clears". Under it, a framed customs declaration for a road shipment shows the parties, the route and a table of three lines of goods, with four round stamps inked at slight angles in its "For customs use" boxes: Cleared, Duty paid, Inspected and Released. Each stamp is a foreground ring with its name set on an arc. Below the page, a band of four cells on shared hairlines says what earns each stamp, and choosing a cell, or moving focus onto it with the arrow keys, lifts its stamp on the page. It's built from Guides with CSS for the stamps, the arcs and the lift, and your theme's tokens for every colour. For customs, logistics and compliance products, and for any workflow where a document earns its marks one step at a time.

FAQ

How do I change the stamps?

Edit STAMPS at the top of the file. Each entry has an id, a name, the label the arc spells, the rule that earns it, an icon for its cell, the path of the glyph in its middle, the box caption of its place on the form and its place, the turn and nudge it takes. The key cells and the stamps are both drawn from that list.

How does a cell lift its stamp without a script?

The four cells are one group of radio buttons, and the section holds a CSS rule for each: when the radio with a stamp's value is checked or has keyboard focus, the stamp with the same name gets a ring and turns solid. Nothing is stored in state, so the block is a server component. Pressing an arrow key inside the group moves the choice, as it does for any radio group.

Is the page readable by a screen reader?

The page and its stamps are decoration and are hidden from assistive technology, with a short description of the page as the figure's caption. The four cells hold the same facts as text, each a heading and a sentence, so nothing is lost, and the radio group is named "Choose a stamp to lift it on the page".

How does it fit on a phone?

The four "For customs use" boxes go two by two, each stamp has its name written beneath it, and the arc lettering is hidden because the stamps are small there. The goods table drops its code column, and the four cells stack one per row.

Does it work right-to-left?

Yes. The page is a document in Latin script, so it keeps its own direction and the stamps stay where they are, while the header, the cells and the radio group follow the page's direction.

Does anything move on its own?

No. Only the header fades in once on load, and the lift is a short transition when you choose a cell. Reduced motion turns both off.

  • Pro

    A wall of eight milestone badges for a language-learning app: unlocked ones solid, locked ones muted with a lock and a progress bar, a header count, and a tooltip with each unlock rule.

  • Pro

    Six pillars for an infrastructure kit as a grid of cards with large outlined numerals stamped behind the title, each with its owner and its check in a description list.

  • Pro

    Invoice Line Item Features

    Documents and objects

    An invoice drawn as a framed sheet: a header with terms, a table of six line items where the seat count is a live number input, and a subtotal, tax and total that recompute as it changes.

  • Pro

    A shipping-ops console drawn in greyscale with six numbered pins that open a popover on click, tap or Enter, and a legend of six rows in shared hairlines that opens the same popovers.

  • Pro

    Badge Counter Wall Features

    Metrics and charts

    A wall of eight channel counters for a unified inbox, with a two-button toggle that switches between every channel and only those with unread messages.

  • Pro

    Six control cards for a privacy-operations tool, each with a coverage ring counted from the data, a sentence of counts and a Passing or open-items badge.