StealThis .dev

Gym — Classes Overview

A bold, dark-themed marketing page for a performance gym timetable, featuring a high-energy hero, a featured-class spotlight banner, category filter tabs across Strength, Cardio, Cycle, Yoga, HIIT and Mobility, and a responsive grid of class cards with gradient headers, intensity meters, trainer credits and schedule links. Filtering smoothly fades and staggers cards, and a free-trial CTA closes the page. Built with vanilla HTML, CSS and JavaScript — no frameworks or build step.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

Classes Overview

A self-contained marketing page for Ironpulse, a fictional strength-and-conditioning gym. It opens with a high-energy hero (headline, stats, and a free-trial CTA), then a featured-class spotlight banner for a limited HIIT series. The core of the page is a filterable timetable: a row of category tabs (All, Strength, Cardio, Cycle, Yoga, HIIT, Mobility) sits above a responsive grid of class cards.

Each card pairs a category-colored gradient header with the class name, a short blurb, duration, a five-bar intensity meter, the assigned trainer (with initials avatar and role), and a “See schedule” link. The grid uses auto-fill so it reflows from three columns down to a single column at ~360px.

The vanilla JS renders the cards from a data array, then handles filtering: selecting a tab marks the active button (aria-selected), shows the matching cards, and reveals them with a staggered fade so the transition reads as intentional rather than a hard cut. A live count announces how many classes match, an empty state appears when a category has none, and a small toast() helper confirms schedule views and trial bookings. The whole page respects prefers-reduced-motion and keeps WCAG AA contrast on the dark theme.