A React video player you can theme to match your product.
Translucent glass chrome, keyboard-first controls, and a small typed surface on a pluggable-provider architecture. Mux is the first provider. Free and open source, on npm as @karnstack/kino.
the real glass UI, playing a public Mux asset. press space to play, f for fullscreen.
what you get
- Themeable glass chrome
- one
accentColorprop drives the scrubber, menus, and ranges. every surface is a CSS custom property on the.kinoroot, so you can retheme corners, blur, and color without forking. - Pluggable providers
- the same chrome sits on any streaming engine through one typed provider contract. the Mux provider is built on the
mux-videocustom element. - Keyboard-first
- space, arrows, number-seek, captions, speed, and fullscreen. the shortcuts ignore inputs and textareas, so they never fight a focused field.
- Capability-gated controls
- quality, picture-in-picture, captions, and fullscreen hide themselves when the provider or platform cannot support them, instead of showing a dead button.
drop it in
pnpm add @karnstack/kinoimport { MuxPlayer } from "@karnstack/kino/mux"
import "@karnstack/kino/styles.css"
<MuxPlayer
playbackId="your-playback-id"
accentColor="oklch(50.8% 0.118 165.612)"
/>kino is auth-agnostic. for signed playback you mint the tokens server-side and pass them through the tokens prop; for public assets you omit them. React 19 is the only peer dependency.
MIT licensed. contributions welcome.