Video.js v10 skin · HTML + CSS

Meniscus

Liquid glass resting on the picture. Every piece bends the film at its rim, floats up when you need it and sinks out of the way when you don't.

Press play, then move the pointer along the glass.

Try it with your own video

You can also drop a video file on the player. It plays only in your browser; nothing is uploaded.

The idea

Most players lay a dark bar over the film. Meniscus lays liquid glass on it. The controls float in three islands, play is a thick drop and the playhead is a glass bead, and the picture shows through every piece: sharp in the middle, bent at the rim, the way light curves at the edge of a drop of water.

Each piece catches a highlight that follows your pointer. When the controls are not needed, the glass sinks below the frame instead of fading away, and rises again when you move.

In Chrome and Edge the rim truly refracts the picture behind it. In Safari and Firefox it is frosted glass with the same shape and light.

What it does

  1. 01

    The glass

    Three islands of glass: playback, the track with the time, and options. Play is a thick drop, the playhead a bead that swells into a lens as you drag it.

  2. 02

    The lens

    Before the film starts, and at the end, a single glass lens sits in the middle of the picture.

  3. 03

    Scene preview

    Move or drag along the track and the scene at that point appears in a small lens, with the time and the chapter.

  4. 04

    Chapters

    Previous and next jump between chapters. Without chapters they skip 10 seconds.

  5. 05

    Stop and frame step

    Stop returns to the start. Frame step moves one frame at a time, forward or back.

  6. 06

    A-B loop

    Mark a start and an end and that part plays on repeat, shown as a band of tinted glass on the track.

  7. 07

    Your own video

    Drop in a file or paste a link. If it has no preview stills, the skin makes them from the video.

  8. 08

    Calm by default

    The glass rests, sinks and rises. Nothing flashes or fades for show.

On a phone

On a small screen the track island moves to the top and the buttons sit under it, each at least 44 px for a thumb. Tap to show the controls, double-tap a side to skip 10 seconds.

For everyone

Every control is a real Video.js component or a labelled button, reachable by keyboard and announced to screen readers. Focus is always visible. With reduced transparency or higher contrast the glass turns solid; with reduced motion it stops moving; forced colors are supported. The skin follows the public Video.js properties such as --media-accent-color and --media-font-family.

Space / K
Play, pause
P / N
Previous, next chapter
S
Stop
, / .
One frame back, forward
A / B
Loop start, loop end
← →
5 seconds
J / L
10 seconds
↑ ↓
Volume
M
Mute
C
Subtitles
F
Fullscreen
I
Picture in picture