Video Players — free UI pack by uiCookies

Video Players is a pack of eight sets of custom HTML video players, designed and maintained in-house by uiCookies. Every player drives a native video element with real buttons and range inputs and a few lines of vanilla JavaScript, and every set comes in three versions that look the same: plain CSS, Bootstrap 5 on top of .btn, .form-range, .card, .list-group and .ratio, and Tailwind CSS 4. The sets run from full control bars and minimal overlay players to chapters and an interactive transcript, course playlists, video cards that open a dialog lightbox, background video heroes with a pause button, a dark streaming-style player and a set built on container queries and :has(). The demos play original short films and soundtracks generated for the pack, with WebVTT captions and chapters.

A good video player keeps the browser in charge of the video and only replaces the controls. The video element should keep its controls attribute in the markup, so the native player still works if the script fails, and captions should come from a WebVTT track that is on by default and printed where the control bar cannot cover it. Play is a button whose label says what it will do next, the seek bar is a range input that reports its position as text such as 1:05 of 2:30, and shortcuts such as Space, K, the arrow keys, M and F should work only while the player has focus, never for the whole page. Nothing should start with sound on its own, a background loop needs a visible pause button, and controls that fade during playback must come back the moment a keyboard user tabs into them.

Free download Browse live demos All snippets

The sets

1. Custom Video Control Bars

Custom Video Control Bars — free video player snippet in CSS, Bootstrap and Tailwind by uiCookies

An overlay control bar and a control panel below the picture, each with play, skip, seek with buffered range, mute, volume, speed, captions and full screen.

Use them as the default player for a page. The overlay bar fades out during playback and returns on pointer movement or keyboard focus.

Live Demo CSS, Bootstrap & Tailwind code

2. Minimal Overlay Video Players

Minimal Overlay Video Players — free video player snippet in CSS, Bootstrap and Tailwind by uiCookies

A big centred play button with a slim bar, corner pills with an edge seek line, and a square tap-to-play clip with captions always on.

Pick these when the picture matters more than the controls. When the centre button hides, focus moves to the bar’s play button.

Live Demo CSS, Bootstrap & Tailwind code

3. Video Chapters and Transcript

Video Chapters and Transcript — free video player snippet in CSS, Bootstrap and Tailwind by uiCookies

A player whose chapters come from a WebVTT chapters track, drawn as cards and seek bar gaps, and a player with an interactive transcript beside it.

Transcript lines are buttons with a time in seconds; clicking one seeks there, and the current line is highlighted and kept in view inside its panel.

Live Demo CSS, Bootstrap & Tailwind code

4. Video Playlists and Courses

Video Playlists and Courses — free video player snippet in CSS, Bootstrap and Tailwind by uiCookies

A course player with a lesson list showing durations, progress and completed ticks, and a playlist with a scrolling thumbnail strip.

Each list item is a button holding the video’s source, poster and captions; selecting it loads it into one video element, and the next item starts when one ends.

Live Demo CSS, Bootstrap & Tailwind code

5. Video Cards with Lightbox

Video Cards with Lightbox — free video player snippet in CSS, Bootstrap and Tailwind by uiCookies

A grid of video cards and a featured card that open one shared player in a native dialog element.

Focus moves into the dialog on open; Esc, the close button or the backdrop closes it, pauses the video and returns focus to the card.

Live Demo CSS, Bootstrap & Tailwind code

6. Background Video Heroes

Background Video Heroes — free video player snippet in CSS, Bootstrap and Tailwind by uiCookies

A full-bleed hero and a split hero with a muted looping background video, a poster fallback and a visible pause button.

The video starts only when reduced motion is not requested and pauses while off screen; the button meets WCAG 2.2.2 for moving content.

Live Demo CSS, Bootstrap & Tailwind code

7. Dark Streaming Video Players

Dark Streaming Video Players — free video player snippet in CSS, Bootstrap and Tailwind by uiCookies

A streaming-style player with a title overlay, centre controls and an up next rail with continue-watching bars, plus a compact dark card.

Built for dark interfaces; selecting an episode resumes where its bar left off. The Bootstrap version runs under data-bs-theme="dark".

Live Demo CSS, Bootstrap & Tailwind code

8. Modern CSS Video Players

Modern CSS Video Players — free video player snippet in CSS, Bootstrap and Tailwind by uiCookies

One player shown in a wide, a narrow and a resizable container, whose control bar sheds controls as it gets narrower.

Container queries handle the layout, :has() reacts to control state, @starting-style fades controls in, and picture in picture appears where supported.

Live Demo CSS, Bootstrap & Tailwind code

Frequently asked questions

Are these video players free to use?

Yes. All eight sets are free for personal and commercial projects under the uiCookies licence. Attribution is optional but always welcome. The demo clips and soundtracks were generated for the pack, so replace them with your own videos.

Do the video players need JavaScript?

Yes, a little. The video itself is a native element, but custom play buttons, seek bars, captions printing and playlists need a short vanilla JavaScript block to connect them to it. Each set has its own script with no libraries, scoped to that set’s players, and the video keeps its native controls if the script does not run.

Are the players accessible?

Every control is a real button or range input, so it works with Tab, Enter, Space and the arrow keys. Play buttons change their label between Play and Pause, seek sliders announce text such as 0:05 of 0:16, toggles use aria-pressed, and captions are on by default. Shortcuts work only while the player has focus, controls stay visible while they hold keyboard focus, nothing autoplays with sound, and background video has a pause button and respects prefers-reduced-motion.

Which frameworks are covered?

Every set comes as plain HTML and CSS, as Bootstrap 5.3 using .btn, .form-range, .ratio, .card, .list-group and grid classes with a small stylesheet for the rest, and as Tailwind CSS 4 with utility classes plus a few lines of custom CSS for the range slider parts and the dialog animation. The three versions share the same script and look the same.

How do I add captions and chapters to my own videos?

Write a WebVTT file for each and add it with a track element: kind set to captions for the captions and kind set to chapters for the chapters. The players read the cues through the browser’s TextTrack API and build the caption text and the chapter list from them. Serve the page over http or https, because Chrome and other browsers block text tracks on a page opened as a local file.

Aigars Silkalns

Designed & written by Aigars Silkalns

Aigars Silkalns is a Latvian entrepreneur and web developer who founded Colorlib, a hub for distinctive WordPress themes. Trained in technology and design, he began as a freelancer and launched Colorlib in 2013, earning acclaim for user-friendly, modern, responsive themes. A champion of open source, Silkalns shares insights on web trends and entrepreneurship. His mission is to make web design simple and accessible, empowering people worldwide to build professional sites with ease.

XLinkedInMore about uiCookies →

uiCookies content is free. When you buy through links on our site, we may earn an affiliate commission.