Skip to content

No.240 · Footers· New

Colophon Footer

The small print kept like a book's colophon: what the site was set in, where it was made and when it was last revised, as ruled rows, with the legal line and a way back to the top. True facts instead of a sitemap.

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 quiet page footer that does the job of the last page of a book. No sitemap, no social icons, no newsletter. A small mono caption "Colophon" (11px, 0.16em, capitals, muted), then a description list under a 1px rule. Each row is a term and a value separated by a hairline: the term in mono capitals (what it was Set in, Made in, Last revised, Source), the value in a display serif at 18px with tabular numerals, so dates and versions align. The value may contain a link or a <time> element. Rows use a two-column grid (terms 7 to 11rem), and collapse to stacked term-over-value below 30rem, using a container query. Beneath the rows, a base line in 13px: the legal text in muted ink, a short list of links, and a "Back to top" button with a 14px arrow, pushed to the right (left on narrow widths). Links draw a 1px underline from the left on hover and focus (background-size 0 to 100%, 280ms cubic-bezier(.2,.8,.2,1)); the arrow lifts 2px. Everything has at least a 44px hit area. Back to top scrolls the given scroller (or window) to 0, smoothly unless reduced motion is on. The rows are real facts the site owner would keep up to date, never filler. Paper and Night themes. Selected variant — Paper (paper): Palette for this theme (Paper): --cf-ink #1b1a17; --cf-line rgb(27 26 23 / 0.13); --cf-muted #6b6861. Treat these as the root colour tokens, one value per role, and name them to suit your code. Select it with the theme option set to "paper". Keep every dimension, spacing value, state and motion from the brief unchanged, and keep text at 4.5:1 contrast or better on these surfaces. 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: Hover or focus a link to draw its underline; Back to top returns to the start of the page. Motion: Underline draws in 280ms; the arrow lifts 2px over 240ms; scroll to top is smooth unless reduced motion is on. Accessibility: A footer landmark with a Colophon heading and a real description list; the link group is a labelled nav and the arrow is decorative. Focus rings are visible. Reduced motion removes smooth scrolling and the transitions. Responsive behavior: Container query at 30rem stacks terms over values; links wrap. Touch: Every control is a plain link or button with a 44px target. 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
Hover or focus a link to draw its underline; Back to top returns to the start of the page.
Motion
Underline draws in 280ms; the arrow lifts 2px over 240ms; scroll to top is smooth unless reduced motion is on.
Accessibility
A footer landmark with a Colophon heading and a real description list; the link group is a labelled nav and the arrow is decorative. Focus rings are visible. Reduced motion removes smooth scrolling and the transitions.
Responsive
Container query at 30rem stacks terms over values; links wrap.
On touch
Every control is a plain link or button with a 44px target.

Featured

402 components