Skip to content

No.94 · Cards· New

Light Leak Card

A dark glass card with light pouring in through its top edge, a white-hot smoky burst spilling colour down the top half, a glowing mark, a frosted name chip and an outline button; the leak drifts and leans toward the pointer.

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

Build a product card lit by a light leak from its top edge (React + CSS, no libraries). Card: 19.5em × at least 23.8em (16px base), radius 1.6em, clipped, background a vertical gradient from a dim mix of the light colour into a deep base by 62%. A hairline rim in the rim colour at 30%, a slightly brighter inner line along the bottom, and a soft dark drop shadow. Leak (behind the content, centred on a point at the top edge, x 50% y 0): a broad radial wash of the light colour (150% × 120%, blurred 1em, drifting ±3% over 9s); a white-hot elliptical burst (70% × 34%, white to a pale tint, blurred 0.9em, flaring ±6% over 5s); and a smoke layer, an SVG fractal-noise texture in overlay blend masked to a soft ellipse, drifting the other way, so the burst looks cloudy instead of smooth. A fine pointer moves the leak's centre up to 8% sideways and 4% down, eased over 1s. Two small four-point sparkles in a tint of the light colour twinkle at the left and right of the mark. Content, centred, padding 3.5em 1.6em 1.9em: an original glowing mark (6.2em; a broken ring with a small moon on its edge and a spark in the middle, white with two drop-shadow glows), the product name (2.45em, 600, white-to-grey gradient text) on a faint frosted chip, a three-line description (0.8em, #a8acc8, line-height 1.55) and an outline button (2.35em tall, 4px-ish radius, hairline in the rim colour, dark fill) that fills with the light colour and glows on hover. Reduced motion stops the drift, flare and twinkle. Props: name, children (description), action, href, mark, tone {light, deep, rim, page}. Selected variant — Indigo (indigo): Light #3b4dff, deep #0d0f2c, rim #9aa6ff, on a #09092a to black page. 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: A fine pointer pulls the light leak toward it; the button fills and glows on hover. Motion: Wash drift 9s and smoke drift 13s (alternating), burst flare 5s, sparkle twinkle 3s, pointer follow 1s. Accessibility: An article with a real heading, paragraph and link; the leak, mark and sparkles are aria-hidden. Light text on the dark lower half is above 7:1. Visible focus ring on the button. Reduced motion stops every loop. Responsive behavior: Fixed 19.5em width that shrinks to the container; the content stays centred. Touch: No pointer follow on touch; the leak drifts on its own. 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
A fine pointer pulls the light leak toward it; the button fills and glows on hover.
Motion
Wash drift 9s and smoke drift 13s (alternating), burst flare 5s, sparkle twinkle 3s, pointer follow 1s.
Accessibility
An article with a real heading, paragraph and link; the leak, mark and sparkles are aria-hidden. Light text on the dark lower half is above 7:1. Visible focus ring on the button. Reduced motion stops every loop.
Responsive
Fixed 19.5em width that shrinks to the container; the content stays centred.
On touch
No pointer follow on touch; the leak drifts on its own.

Featured

442 components