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
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.