Skip to content

No.168 · Heroes

Letterform Hero

A portfolio hero where the name is a set of windows: the work shows through the letters, and pointing at a project wipes its view across them.

The prompt

The design brief behind this component — reuse it to regenerate, remix, or explain it.

Build a portfolio hero where a short word (a first name) is set enormous in a condensed display face (Anton, uppercase, about 27% of the container width) and the letters are windows onto the work: each project has a cover (any CSS background, usually a screenshot) painted into the letters with background-clip: text. Below the name, an index of projects: mono number, serif title, kind and year, separated by hairlines. Pointing at a row (or focusing it) changes the view through the letters: the new cover wipes in from left to right over the old one with a clip-path inset animation (900ms expo-out) while the previous cover stays underneath, so the letters are never empty. A caption under the name reads 'Through the letters — Vitrine, 2026'. The active row's title brightens and steps right, and a rule draws across its top. A faint outline of the letters (1px text-stroke) always sits beneath, so the word reads even before the covers load. The pointer shifts the cover inside the letters by up to 18px, like looking through a window; the layer box is padded so a shifted image never shows its edge inside a glyph. On phones (no hover) the view cycles every 4 seconds until the visitor touches the list. The heading's accessible text is the full name; the layered copies are aria-hidden.

Notes

Interaction
Point at or focus a project to see it through the letters. Move the pointer to shift the view. Rows are links.
Motion
Cover wipe 900ms expo-out; first arrival rises 1.1s; caption and row changes 300–600ms; parallax eases 900ms.
Accessibility
The h1's text is the full name (visually hidden); the letter layers are aria-hidden. Projects are a list of real links, and focusing one changes the view just like hovering. Reduced motion swaps covers instantly, without parallax or cycling.
Responsive
Letter size follows the container (container query units). Below 520px the kind column hides; the auto-cycle replaces hover on touch screens.
On touch
Without hover, covers cycle on their own every 4.2 seconds until the visitor touches the list; tapping a row opens it.

Featured

301 components