FrameworkStyle

MuteButton

A button component for toggling audio mute state

Features

  • Multi-state icon display (high, low, off)
  • Automatically reflects volume level changes
  • Toggles mute/unmute on click
  • Accessible keyboard navigation

Example

import { MuteButton } from '@videojs/react';
import { VolumeHighIcon, VolumeLowIcon, VolumeOffIcon } from '@videojs/react/icons';
import styles from './MuteButton.module.css';

/**
 * Basic MuteButton example demonstrating:
 * - Multi-state icon switching (high/medium/low/off)
 * - Volume level data attributes
 * - Smooth icon transitions
 *
 * Note: This component must be used within a VideoProvider context.
 * See the usage example in the documentation.
 */
export function BasicMuteButton() {
  return (
    <MuteButton className={styles.button}>
      <VolumeHighIcon className={styles.volumeHighIcon} />
      <VolumeLowIcon className={styles.volumeLowIcon} />
      <VolumeOffIcon className={styles.volumeOffIcon} />
    </MuteButton>
  );
}

Data Attributes

The MuteButton automatically sets data attributes based on volume level:

  • data-volume-level="high" - Volume > 50%
  • data-volume-level="medium" - Volume 25-50%
  • data-volume-level="low" - Volume 1-24%
  • data-volume-level="off" - Volume 0% (muted)

Use these attributes for state-based styling in your CSS.

Props

All standard button props are supported, plus:

Prop Type Description
children ReactNode Button content (typically icons)
className string CSS class name

Accessibility

  • Automatically includes proper ARIA labels
  • Keyboard accessible (Space/Enter)
  • Announces volume state changes to screen readers
VideoJS