StealThis .dev
Pages Medium

LMS — Course Catalog

A friendly, focused e-learning course catalog with a sticky filter rail for level, category, duration and price, plus an instant search that narrows the grid as you type. Sortable course cards show thumbnails, instructors, ratings, level pills and live progress bars for enrolled classes. Active filters appear as removable chips, a sort dropdown reorders results, and enrolling fires a calm confirmation toast. Built with semantic, accessible, responsive vanilla HTML, CSS and JavaScript.

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

Code

Course Catalog

A calm, light-themed course catalog for an online learning platform. A sticky left rail combines level pills, category checkboxes with counts, duration and price radios, and an “enrolled only” toggle, while a rounded search field in the top bar filters by course title, instructor or category as you type. The right column shows a responsive grid of course cards, each with a tinted thumbnail, level pill, rating, learner count, duration and price.

Every control updates the grid live. Active filters render as removable chips above the results, the sort dropdown reorders cards by popularity, rating, recency, length or price, and the result count stays in sync. Enrolled courses surface a green progress bar and an “Enrolled ✓” state; clicking Enroll on any other card marks it enrolled and fires a friendly confirmation toast.

The whole screen is built from semantic landmarks with aria-pressed pills, labelled radios and a live region for the toast. It uses WCAG-AA contrast, keyboard-focusable controls, and a layout that collapses the rail above the grid and drops to a single column down to ~360px — no frameworks, just vanilla HTML, CSS and JavaScript.

Illustrative UI only — fictional courses, not a real learning platform.