Component

Volume

Volume slider with mute toggle. Slider expands on hover.

Behavior

The volume slider is hidden by default and expands on hover using a CSS width transition — no JavaScript toggle needed. This keeps the controls bar compact while remaining fully accessible.

Icon states

ConditionIcon
Muted or volume = 0VolumeX (crossed out)
Volume 1–49Volume1 (single wave)
Volume 50–100Volume2 (double wave)

Props

PropTypeDefaultDescription
volume*numberCurrent volume level from 0 to 100.
isMuted*booleanCurrent mute state.
onVolumeChange*(volume: number) => voidCalled with the new volume level (0–100).
onToggleMute*() => voidToggle between muted and unmuted states.