StealThis .dev

LMS — Lesson Player Controls

A polished e-learning lesson player control bar with a draggable scrubber that shows buffered and played ranges, a hover time tooltip, volume slider with mute, a playback-speed menu, captions and quality toggles, fullscreen, and a next-lesson button. Full keyboard shortcuts drive play, seek, volume, mute, captions, fullscreen and skip. Built with semantic landmarks, ARIA slider roles and AA contrast, it stays usable from wide desktop down to narrow mobile screens.

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

Code

Lesson Player Controls

A complete lesson player control bar for a course platform. A stylized video surface sits above a control row with play/pause, next-lesson, a volume slider, the running time, a playback-speed menu, a captions toggle, a quality picker, and fullscreen. A course-progress meter and an up-next lesson list frame the player so it reads like a real learning screen rather than a bare widget.

The scrubber is fully interactive: a muted buffered range trails behind the brand-colored played range, the knob grows on hover, and dragging anywhere on the track seeks while a tooltip follows the pointer with the target timestamp. The speed and quality menus open as floating popovers with check-marked selections, captions paint timed lines onto the screen, and a speed badge appears whenever playback runs faster or slower than normal. “Mark complete” check-offs and clickable lesson rows mirror the progress conventions learners expect.

Everything runs on vanilla JavaScript with a small simulated playback clock — no media file, no libraries. Keyboard shortcuts cover the whole surface (Space to play, arrows to seek and adjust volume, and M/C/F/N for mute, captions, fullscreen and next), the sliders expose ARIA slider roles, and a tiny toast() helper confirms each action.

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