--- title: MuteButton frameworkTitle: html: media-mute-button description: Accessible mute/unmute button with keyboard support and volume state reflection --- import ComponentReference from "@/components/docs/api-reference/ComponentReference.astro"; import FrameworkCase from "@/components/docs/FrameworkCase.astro"; import StyleCase from "@/components/docs/StyleCase.astro"; import Demo from "@/components/docs/demos/Demo.astro"; {/* React demos */} import BasicUsageDemoReact from "@/components/docs/demos/mute-button/react/css/BasicUsage"; import basicUsageReactTsx from "@/components/docs/demos/mute-button/react/css/BasicUsage.tsx?raw"; import basicUsageReactCss from "@/components/docs/demos/mute-button/react/css/BasicUsage.css?raw"; {/* HTML demos */} import BasicUsageDemoHtml from "@/components/docs/demos/mute-button/html/css/BasicUsage.astro"; import basicUsageHtml from "@/components/docs/demos/mute-button/html/css/BasicUsage.html?raw"; import basicUsageHtmlCss from "@/components/docs/demos/mute-button/html/css/BasicUsage.css?raw"; import basicUsageHtmlTs from "@/components/docs/demos/mute-button/html/css/BasicUsage.ts?raw"; {/* React demos — Volume Levels */} import VolumeLevelsDemoReact from "@/components/docs/demos/mute-button/react/css/VolumeLevels"; import volumeLevelsReactTsx from "@/components/docs/demos/mute-button/react/css/VolumeLevels.tsx?raw"; import volumeLevelsReactCss from "@/components/docs/demos/mute-button/react/css/VolumeLevels.css?raw"; {/* HTML demos — Volume Levels */} import VolumeLevelsDemoHtml from "@/components/docs/demos/mute-button/html/css/VolumeLevels.astro"; import volumeLevelsHtml from "@/components/docs/demos/mute-button/html/css/VolumeLevels.html?raw"; import volumeLevelsHtmlCss from "@/components/docs/demos/mute-button/html/css/VolumeLevels.css?raw"; import volumeLevelsHtmlTs from "@/components/docs/demos/mute-button/html/css/VolumeLevels.ts?raw"; ## Anatomy ```tsx ``` ```html ``` ## Behavior Toggles mute on and off, and exposes a derived `volumeLevel` based on the current volume and mute state. ## Styling Style the button based on muted state: ```css media-mute-button[data-muted] .icon-muted { display: inline; } media-mute-button:not([data-muted]) .icon-unmuted { display: inline; } ``` React renders a `