Skip to content

No.254 · Pricing· New

Haze Tier Card

One pricing tier in a dark card whose edges glow with a soft, smoky haze that drifts and leans toward the pointer, with a bright top-edge highlight, info tooltips and a gradient button.

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

Build a single pricing-tier card (React + CSS, no libraries): a dark card about 400px wide whose edges glow with a soft, smoky haze, leaving the middle dark for the content. Shell: 16px radius, background #050507, a 1px ring of the highlight colour at 22% and a soft drop glow underneath. Haze layer (behind the content, clipped to the radius): seven blurred radial puffs of the glow colour hugging the edges (a big one over the top-left corner, one along the rest of the top, tall ones down the left and right sides, one along the bottom and one in the bottom-right corner), each blurred 18px and drifting on its own 16–23s alternate loop (±3% translate, 0.96–1.06 scale). Over them, a rounded rectangle of the card colour inset 9% and blurred 22px punches a dark hole, so the light only lives along the border and reads as patchy mist. Edge layer: an inset 1px ring, an inset 24px glow, a 1px highlight line along the top from 8% to 70% with a soft bloom, and a shorter highlight into the bottom-right corner. A fine pointer leans the whole haze up to 9px toward it, eased over 0.9s. Content, centred: the tier name (1.8rem, 400, pale grey-violet), the price as a raised currency sign (1.8rem), a big amount (3.6rem, 500, tight tracking, tabular figures, cents set smaller) and "/mo" on the baseline, then a muted line "Billed yearly or $24 billed monthly". Then a left-aligned list of features with 0.75rem gaps: each has a filled grey check circle (15px) and the label; some end in a small outline "i" button. Hovering, focusing or clicking it shows a dark tooltip above it (role="tooltip", linked with aria-describedby while open), and Escape closes it. Last, a full-width 2.4rem button with a 100° gradient between two accent tones, a 1px inner top highlight and 4px radius; on hover it lifts 1px, brightens and casts a coloured glow. Copy is yours: a tier called Studio at $18/mo, eleven features. Reduced motion stops the drift and transitions. Props: name, price, monthly, currency, features [{label, info?}], cta, href, tone {glow, hi, from, to, ink}. Selected variant — Lavender (lavender): Tone {glow #7a6fc4, hi #c3b8f5, button #957cf0 → #6b4fd6, ink #ece8fb}: lavender haze with a violet button. 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, focus or tap an info button to read its tooltip; Escape or moving away closes it. A fine pointer pulls the edge haze toward it. The button lifts and glows on hover. Motion: Haze puffs drift on 16–23s alternate loops; the pointer lean eases over 0.9s; tooltips fade and rise 4px in 0.16–0.2s; the button lifts 1px in 0.25s. Accessibility: An article labelled with the plan name and a real heading. Info buttons are labelled 'About …', expose aria-expanded and point at their tooltip with aria-describedby while it is open; Escape closes it. Text contrast on the dark middle is above 7:1 for the list and price. Reduced motion stops the drift. Responsive behavior: Fills up to 25rem; under 420px the padding and list text tighten so long labels still fit on one or two lines. Touch: Tap an info button to open its tooltip and tap elsewhere to close it; the haze drifts on its own without the pointer lean. 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, focus or tap an info button to read its tooltip; Escape or moving away closes it. A fine pointer pulls the edge haze toward it. The button lifts and glows on hover.
Motion
Haze puffs drift on 16–23s alternate loops; the pointer lean eases over 0.9s; tooltips fade and rise 4px in 0.16–0.2s; the button lifts 1px in 0.25s.
Accessibility
An article labelled with the plan name and a real heading. Info buttons are labelled 'About …', expose aria-expanded and point at their tooltip with aria-describedby while it is open; Escape closes it. Text contrast on the dark middle is above 7:1 for the list and price. Reduced motion stops the drift.
Responsive
Fills up to 25rem; under 420px the padding and list text tighten so long labels still fit on one or two lines.
On touch
Tap an info button to open its tooltip and tap elsewhere to close it; the haze drifts on its own without the pointer lean.

Featured

425 components