A stamp prints when the visitor or the site did something. The impression is inked art: capitals on Anybody's condensed width, masked by the ink tile and roughened by a filter, blended into the stock and resting at the volume's angle. Seal is the same stamp at half size in a slot the host reserves, never under words. useStampLand() lands it with a thump, specks, the stamp sound and a pulse of the ink field.
Example#
To land a stamp on a card when something happens, call the hook from a client component:
import { useStampLand } from "@maxgrits/overprint-react/print";
const { land } = useStampLand();
land(stampElement, { host: cardElement, seal: true });Usage#
Use a stamp for something that just happened because someone did it: a form sent, a project shipped, a quote approved (D-E4: caused only). It lands with a thump, a few specks and, with sound on, a THUNK.
- Server and client.
Stamprenders the impression;useStampLand()lands it on a host when the event happens;Sealprints a small one in a slot the host reserves. - Words.
wordis one of the stamp words (Sent, Shipped, Launched, Approved, Booked, Printed, Done, Live) andlineadds a short line such as a date. - The state also lives in text nearby, in the reading layer: the stamp decorates it.
- Big.
bigis for the moment itself, such as the sent screen.
Layer and volume#
Art impression: it may tilt (Quiet 0°, Studio −3°, Press −6°, Rave −9°, clamped to the tilt cap). Quiet: no fall, no specks. Studio: one landing per user action. Press and Rave add specks. Under more contrast it prints solid (no mask, no rough filter).
Anatomy#
- WordAnybody condensed 900, capitals by CSS.
.mk-stamp-word - LineA date or a reference.
.mk-stamp-line - ImpressionInked, masked and roughened; art at its rest angle.
.mk-stamp
Volume#
Quiet
Studio
Press
Rave
Content#
- Use the stamp words; they are literal status words (D-I2), not jokes.
- The line is a fact: a date, an invoice number.
Do and don't#
Do
Sent. It is in my inbox now.
Don't
A "Welcome" stamp on the home page, where nothing happened.
Accessibility#
role="img"witharia-label="{word} {line}"; the face inside isaria-hidden.- The state also exists as reading text nearby; status words stay literal.
- Reduced motion: it lands at rest at once, with no specks and no pulse.
Props#
| Prop | Type | Default | Description |
|---|---|---|---|
word required | string | none | One stamp word, sentence case in the source (`STAMP_WORDS`: Sent, Shipped, Launched …). |
line | string | none | A small second line ("23 Oct 2026"). |
big | boolean | none | The big stamp (border 0.375 rem, word 4.75 rem). |
ink | "ink" | "stamp" | none | The stamp ink (default) or the key. |
rotate | number | none | Degrees; default by volume; clamped to ±`--mk-v-tilt-max`. |
seed | number | none | |
children | undefined | none |
Tokens#
System tokens (21)
--mk-blend--mk-dur-seal--mk-dur-seal-delay--mk-dur-specks--mk-dur-stamp--mk-dur-thump--mk-ease-out--mk-ease-stamp--mk-font-display--mk-ink--mk-space-1--mk-space-2--mk-space-3--mk-space-4--mk-space-6--mk-stamp-ink--mk-v-specks--mk-v-tilt-max--mk-w-press--mk-w-rave--mk-w-studio
Its own properties (19)
--mk-dx--mk-dy--mk-n--mk-stamp-blend--mk-stamp-border--mk-stamp-colour--mk-stamp-filter--mk-stamp-gap--mk-stamp-k--mk-stamp-leading--mk-stamp-line-size--mk-stamp-line-track--mk-stamp-pad-x--mk-stamp-pad-y--mk-stamp-rot--mk-stamp-size--mk-stamp-track--mk-stamp-wdth--mk-tile-ink-mask
Changelog#
Arrived in 0.1.0.
- The print and comic kits, P0 (21 P2-T11 to P2-T15): the art core (seeded halftone, bursts, balloons, lines, krackle, printer's marks, SFX layers, the texture tiles and
gen-print-tiles), the print kit (Halftone,Overprint,PrinterMarks,Sticker,Stamp,Seal,useStampLand,Tape,Grain,Misregistrationand the.mk-ovsecond ink,GiantGlyph,ShapeGlyph), the dataCover(grid and score,coverAlt,CoverLegend), the comic registers and kit (Panel,PanelGrid,Balloon,Caption,CornerBox,EditorsNote,ContinuedIn,SFX,SfxBurst,SpeedLines,FocusLines,ImpactStar,KeyPop). - A ruler range keeps its two values apart, a slider's end figures stay inside it, ComparisonTable and the segmented ThemeToggle name their radios per instance (two on a page no longer uncheck each other), and a Stamp's second line wraps, with the big stamp at 0.6× below 30rem. Read the whole entry