Content

Video Player
v0.2.20
Documentation Under Review

A Brightcove video player component with customizable controls and comprehensive styling options. Built on Brightcove React Player Loader with full support for captions, chapters, audio tracks, and picture-in-picture.

Prefer AI-assisted development?

This documentation is available via the Catalyst MCP Server. Learn how to connect →

Catalyst Video Player wraps Brightcove's React Player Loader with PMI design-system tokens, responsive control-bar styling, and VideoPlayerIconSlot for injecting Catalyst icons into any player control — giving you a fully branded, accessible video experience with zero custom CSS.

Preview

Installation

npm install @pmi/catalyst-video-player
import { VideoPlayerRoot, VideoPlayerIconSlot } from '@pmi/catalyst-video-player';

Add the preset to your tailwind.config.ts:

import tailwindVideoPlayerPreset from '@pmi/catalyst-video-player';

export default {
  presets: [tailwindVideoPlayerPreset],
  // ...
};

Common Patterns

With Captions

A video with closed captions and subtitle support:

Preview

With Chapters

A video configured with chapter markers for navigation:

Preview

With Audio Tracks

A video with multiple audio language options:

Preview

Size Variants

Pass size ("xs" | "sm" | "md" | "lg") to VideoPlayerRoot to control the big play button overlay size. Defaults to "md".

API Reference

The Brightcove player requires the following CSP directives. Add these to your application headers:

{
  'connect-src': ['https://*.brightcove.com', 'https://*.boltdns.net', 'https://*.brightcovecdn.com'],
  'script-src': ['https://*.brightcove.net', 'https://vjs.zencdn.net', "'unsafe-inline'", "'unsafe-eval'"],
  'style-src': ["'unsafe-inline'"],
  'font-src': ['https://*.brightcove.com', 'https://cdn.fontshare.com', 'data:'],
  'style-src-elem': ['https://*.brightcove.com', 'http://*.s3.amazonaws.com', 'https://api.fontshare.com', "'unsafe-inline'"],
  'img-src': ['https://*.brightcove.com', 'https://*.boltdns.net'],
}

The unsafe-inline and unsafe-eval directives are required by the Brightcove player. If your security policy restricts these, consult your security team about nonce-based CSP.

API Reference

VideoPlayerRoot

Prop

Type

VideoPlayerIconSlot

Prop

Type

PlayerState

Prop

Type

Accessibility

The Brightcove player is WCAG 2.2 AA compliant. Always provide closed captions for all video content and test keyboard navigation across all controls.

Keyboard Interactions

KeyAction
Space / KToggle play/pause
MToggle mute
FToggle fullscreen
Arrow Up / Arrow DownAdjust volume
Arrow Left / Arrow RightSeek backward / forward
0--9Jump to percentage of video
CToggle captions
HomeJump to beginning
EndJump to end

ARIA and Screen Reader Support

  • All player controls have ARIA labels provided by the Brightcove player
  • Caption and subtitle tracks are announced on activation
  • Volume and seek changes are announced as live region updates
  • Focus indicators are visible on all interactive controls

Choosing the Right Component

ScenarioRecommendation
PMI-hosted Brightcove videoVideoPlayerRoot -- first choice
Third-party embed (YouTube, Vimeo)Native <iframe> with title attribute
Short animated illustrationRiveCanvas
Static image with play affordanceStandard <img> or <picture> element
  • Icons -- Catalyst icons used in player control slots
  • Aspect Ratio -- Container for responsive video sizing

On this page