Skip to content

No.300 · Feedback· New

Underside 404

A blank sheet with one corner turned up. Turn the page — drag the corner or press the button — and the back is printed with an index of the places that exist.

The prompt

Copy this text

Automatic copying is unavailable. Copy the selected text using your device’s copy command.

Written for the variant you picked above: Paper

Build a not-found page as a single sheet of paper lying on a flat desk colour. The sheet is 30rem wide at most, about 4:3 tall, with a soft layered shadow. Front (recto): a hairline-ruled mono header 'No. 404' left and 'Recto' right; vertically centred, a 36–52px Instrument Serif headline 'This page is blank.' and a muted 15px line 'Nothing was ever printed on it. The way back is on the other side.'; at the bottom, a pill outline button 'Turn the page over ↶'. The bottom-right corner is cut away with clip-path along a 40px diagonal and a flap in the back's tone is folded over it, with a darker copy of the flap offset 3px as its shadow; the fold grows to 54px when the corner or the button is hovered or focused. Back (verso): the same ruled header reading 'Index' and 'Verso', then a nav with an ordered list of entries: an Instrument Serif label, a dotted leader that fills the gap, and a mono folio number, each a 44px link whose label and leader turn the accent colour on hover. A footer rule holds a pill 'Turn back ↷' button and a small uppercase home link. Both faces share one grid cell inside a sheet with preserve-3d; the back is pre-rotated 180°, both hide their backface, and the sheet rotates by --turn × −180° around the vertical axis. Selected variant — Paper (paper): Paper theme: desk #e3dfd6, sheet #fbfaf6, back of sheet #f3f0e8, ink #1f1d19, muted #6e695f, faint leaders #aaa498, hairlines rgb(31 29 25 / 0.12), accent brick #a2361f. This selection takes precedence over references to other themes or options in the general brief. Implement this selected appearance; do not add a variant picker or alternative appearances unless requested. Implementation requirements: Use React and TypeScript. Keep the component self-contained, with uniquely scoped CSS and no animation libraries. Include required imports, styles and font setup in the result. Interaction: The button turns the page and moves focus to the first index entry; Turn back returns and focuses the turn button. Dragging the turned corner leftwards turns the page live in proportion to the drag (pointer capture); releasing past 35% completes the turn, otherwise it settles back. A plain tap on the corner also turns it. The hidden side is inert and ignores pointers. Motion: The page turn is a 720ms rotateY with a soft ease-out, tracked 1:1 during a drag with transitions off. The corner fold grows on hover. With reduced motion the sheet never rotates: the two sides cross-fade in place. Accessibility: The section is labelled by the front headline. The turn button has aria-expanded and aria-controls pointing at the back; the drag corner is decorative and hidden, so the button is the accessible path. The back is a labelled nav with an ordered list, and the side facing away is inert. Focus moves deliberately on each turn. Responsive behavior: The sheet is fluid to 320px, sized with container units so the headline and padding scale; the index keeps a minimum leader width and labels wrap rather than overflow. Touch: Drag the corner with a finger (touch-action is disabled on it), tap it, or use the button. Preserve keyboard access, visible focus and reduced-motion behavior. Keep fictional demo data and simulated service calls in a separate usage example; expose callbacks for real actions and recover from rejected requests. Keep usage-example links inside the demo: use local buttons or prevent navigation. Demonstration links must not navigate to Vitrine routes or open other pages; preserve real URL support in the reusable component itself. Verify the result at narrow and wide viewport sizes, with keyboard input and reduced motion enabled.

Notes

Interaction
The button turns the page and moves focus to the first index entry; Turn back returns and focuses the turn button. Dragging the turned corner leftwards turns the page live in proportion to the drag (pointer capture); releasing past 35% completes the turn, otherwise it settles back. A plain tap on the corner also turns it. The hidden side is inert and ignores pointers.
Motion
The page turn is a 720ms rotateY with a soft ease-out, tracked 1:1 during a drag with transitions off. The corner fold grows on hover. With reduced motion the sheet never rotates: the two sides cross-fade in place.
Accessibility
The section is labelled by the front headline. The turn button has aria-expanded and aria-controls pointing at the back; the drag corner is decorative and hidden, so the button is the accessible path. The back is a labelled nav with an ordered list, and the side facing away is inert. Focus moves deliberately on each turn.
Responsive
The sheet is fluid to 320px, sized with container units so the headline and padding scale; the index keeps a minimum leader width and labels wrap rather than overflow.
On touch
Drag the corner with a finger (touch-action is disabled on it), tap it, or use the button.

Featured

333 components