StealThis .dev
Pages Moyen

Salon — Day Spa Landing

A serene, full marketing landing for Verdé Day Spa, dressed in a soft sage, sand, and bronze wellness palette with airy whitespace and Cormorant Garamond display type over Inter. It pairs a translucent sticky nav and active-link scroll spy with a calm serif hero, count-up stats, a six-ritual services menu, a dark how-a-visit-flows three-step band, a tranquil mosaic gallery, an interactive gift-card builder with live totals and validation, a live open or closed hours indicator, and gentle reveal-on-scroll throughout.

Ouvrir dans Lab
html css vanilla-js
Targets: JS HTML

Code

Day Spa Landing

A complete marketing landing for the fictional Verdé Day Spa, tuned for stillness rather than spectacle. The palette trades the library’s default rose-gold for a soft sage, warm sand, and muted bronze, with light serif Cormorant Garamond headings floating over a clean Inter UI and a great deal of unhurried whitespace. A translucent sticky nav blurs the page beneath it, gains a hairline on scroll, and quietly underlines the active section as you move down. The hero opens with a low-contrast serif headline — Pause. Breathe. Renew. — over a diffuse botanical glow, two calls to action, and a row of stats that count up the first time they enter view.

Below the fold, a six-card menu lays out the spa’s rituals — massage, botanical facials, body wraps, the sauna and thermal circuit, a couples suite, and a half-day retreat — each card lifting and revealing a sage-to-bronze top rule on hover or focus. A dark how-a-visit-flows band walks guests through arriving, their ritual, and lingering, followed by a tranquil mosaic gallery of the spa’s spaces. The gift-card section is genuinely interactive: pick a preset or type a custom amount, add an optional note with a live character count, and watch the total update before a validated submit confirms with a tasteful toast.

The closing hours block renders the full week, marks today, and shows a live open or closed indicator that computes whether the spa is open right now and, if not, when it next opens. Every section reveals on scroll with a gentle stagger via IntersectionObserver, the mobile nav collapses into an accessible toggle, and reduced-motion preferences are respected. It is pure vanilla HTML, CSS, and JavaScript — no frameworks, no build step — responsive down to 360px.