--- title: PiPButton frameworkTitle: html: media-pip-button description: Accessible picture-in-picture toggle button with keyboard support and state reflection --- import ApiReference from "@/components/docs/api-reference/ApiReference.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/pip-button/react/css/BasicUsage"; import basicUsageReactTsx from "@/components/docs/demos/pip-button/react/css/BasicUsage.tsx?raw"; import basicUsageReactCss from "@/components/docs/demos/pip-button/react/css/BasicUsage.css?raw"; {/* HTML demos */} import BasicUsageDemoHtml from "@/components/docs/demos/pip-button/html/css/BasicUsage.astro"; import basicUsageHtml from "@/components/docs/demos/pip-button/html/css/BasicUsage.html?raw"; import basicUsageHtmlCss from "@/components/docs/demos/pip-button/html/css/BasicUsage.css?raw"; import basicUsageHtmlTs from "@/components/docs/demos/pip-button/html/css/BasicUsage.ts?raw"; ## Anatomy ```tsx ``` ```html ``` ## Behavior Toggles picture-in-picture (PiP) mode. Detects platform support through `availability` — when PiP is `"unsupported"`, the toggle does nothing. ## Styling You can style the button based on PiP state: ```css /* In PiP mode */ media-pip-button[data-pip] { background: red; } ``` Consider hiding the button when unsupported: ```css media-pip-button[data-availability="unsupported"] { display: none; } ``` ## Accessibility Renders a `