At Qualabs, innovation and collaboration are at the core of our mission. We specialize in enhancing video technology and actively contribute to the developer community through open-source initiatives.
During the MonteVIDEO Tech Summer Camp, Steve Heffernan, creator of Player.style, proposed the idea of building custom themes for video and audio players.
Although this project wasn’t officially selected, we saw its potential and decided to bring it to life, aiming to simplify video player customization and encourage creativity.
Customizing video player interfaces can be complex, requiring deep framework knowledge and extensive coding. Many developers struggle to modify video players to align with branding and design aesthetics.
Our challenge was to create a theme that developers could easily integrate into any video player with minimal effort. The solution needed to be lightweight, customizable, and work across different platforms and frameworks.
To address this challenge, we leveraged Player.style , an open-source project designed to simplify video player UI customization using MediaChrome . This library allows developers to apply and modify player themes using HTML, CSS, or React components.
We developed the X-mas theme, a festive and customizable video player UI that enables developers to apply a holiday-themed design to their players effortlessly.
Making Any Player Compatible with Player.style
To integrate Player.style with a custom video player, developers need to create a web component that behaves like the < video > tag.
What is a Web Component?
A web component is a reusable, encapsulated custom element that functions like a native HTML element. It consists of three core technologies:
For full compatibility, the web component must replicate the functionality of a native < video > element, exposing essential methods, properties, and events.
play(), pause(), load(), canPlayType(type), requestPictureInPicture()
src, currentTime, duration, paused, muted, volume, playbackRate, controls, loop, autoplay, poster, preload, crossOrigin
play, pause, playing, waiting, seeking, seeked, timeupdate, ended, ratechange, loadedmetadata, loadeddata, canplay, canplaythrough, volumechange
By implementing these features, the web component behaves like a standard < video > tag while providing a flexible, customizable player interface compatible with Player.style.
Following the success of the X-mas theme and IETF MoQ Player, we plan to expand our collection of player themes and further integrate Player.style into diverse video workflows.
We encourage developers to explore our work and join us in improving video player UI customization.