Skip to content

No.185 · Heroes· New

Satin Hero

A personal hero on pale draped satin that drifts and catches the light in thin bright streaks. The serif headline looks pressed into the cloth, links sit in bracketed glass chips, and a faint four-column grid runs through it all.

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: Light

Build a personal portfolio hero (a fictional designer, Salma Haddad) over a full-bleed WebGL satin. Cloth: a fragment shader over a height field: two sets of slow vertical drapes (sines bent by lower-frequency sines) plus a sweep of creases (ridged sines, (1 − |sin|)³) radiating from beyond the top-right corner. Take the gradient for a normal, light it from the upper left: a ramp from cornflower (#79aeea) in the folds through ice blue (#a8d2fb) to pale (#d8ecff) where it faces the light, plus a very tight specular (power 220) that draws knife-edge white streaks where folds turn, and a soft wider sheen. The cloth thins to paper white toward the left and bottom edges. It drifts slowly; the pointer adds a faint ring in the fold under it. Render at 0.7× resolution and pause off-screen. Layout: padding about 5.4% of the width; five faint white vertical guide lines at the content edges and the quarter points, full height, fading at the ends. Top: the name left in a soft blue, and links right as '[ Work ]' chips: translucent white with a backdrop blur, about 25px text. Middle: a two-line serif headline (Newsreader 500, up to 170px, tight tracking) pressed into the cloth: a vertical navy gradient clipped to the text, a 1.5px white lip below each stroke and a faint dark edge above, using drop-shadow filters. Under it an intro paragraph (about 26px, 34rem wide), then '↳ Write to me' and a '[ See the work ]' chip. Bottom: © year left, two icon links right. Selected variant — Light (light): Palette for this theme (Light): --satn-bottom #15304f; --satn-chip rgb(255 255 255 / 0.38); --satn-chip-hover rgb(255 255 255 / 0.62); --satn-fallback radial-gradient(120% 90% at 85% 10%, #ffffff 0%, #b7dbfd 30%, #8fc2f3 55%, #d8ebff 85%); --satn-focus #1c3a5e; --satn-hi rgb(255 255 255 / 0.7); --satn-ink #1c3a5e; --satn-ink-soft #2a5a8c; --satn-line rgb(255 255 255 / 0.55); --satn-lo rgb(10 35 70 / 0.28); --satn-top #3a6593. 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 "light". 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: Links and chips brighten on hover; the arrow before the primary link nudges. Moving the pointer stirs the cloth beneath it. Motion: The cloth drifts continuously and slowly, stopping off-screen and in hidden tabs. Reduced motion or motion={false} renders a single still frame. Accessibility: Real nav, h1, paragraph and footer. The brackets are aria-hidden so links read as plain words; icon links have labels. The canvas is aria-hidden; without WebGL a static gradient stands in. Responsive behavior: Type scales with the container; below 40rem the nav wraps and only three guide lines remain. Touch: Without a pointer the cloth just drifts. 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
Links and chips brighten on hover; the arrow before the primary link nudges. Moving the pointer stirs the cloth beneath it.
Motion
The cloth drifts continuously and slowly, stopping off-screen and in hidden tabs. Reduced motion or motion={false} renders a single still frame.
Accessibility
Real nav, h1, paragraph and footer. The brackets are aria-hidden so links read as plain words; icon links have labels. The canvas is aria-hidden; without WebGL a static gradient stands in.
Responsive
Type scales with the container; below 40rem the nav wraps and only three guide lines remain.
On touch
Without a pointer the cloth just drifts.

Featured

373 components