<media-play-button>
The <media-play-button>
component is used to toggle your media playback state.
In simpler terms, it is used to both play and pause your media content.
The contents and behavior of the <media-play-button>
will update automatically
once your media playback state changes.
- When your media begins to play, the component will switch to show the contents of its
pause
slot. - When your media is paused, the component will display the contents of its
play
slot.
Default usage
Section titled Default usageCustomize icons
Section titled Customize iconsYou can modify the contents of the <media-play-button>
component using slots.
This is useful if you’d like to use your own custom play button instead of
the default one provided by media-chrome.
Here’s an example of how you can replace the default play and pause icons with the literal words “Play” and “Pause”:
Styling with attributes
Section titled Styling with attributesThe <media-play-button>
does not expose any configuration attributes.
However, it will be updated with media state attributes any time
your media playback state changes.
You can use these attributes to apply custom styles to
your <media-play-button>
element under different state conditions:
media-play-button[media-paused] {
animation: glow 2s;
}
Reference
Section titled ReferenceSlots
Section titled SlotsName | Description |
---|---|
play |
An element shown when the media is paused and pressing the button will start media playback. |
pause |
An element shown when the media is playing and pressing the button will pause media playback. |
Attributes
Section titled AttributesName | Type | Description |
---|---|---|
disabled |
boolean |
The Boolean disabled attribute makes the element not mutable or focusable. |
mediacontroller |
string |
The element `id` of the media controller to connect to (if not nested within). |
Media UI Attributes
Section titled Media UI Attributes
The media UI attributes will be set automatically by the controller if they are
connected via nesting or the mediacontroller
attribute.
Only set these attributes manually if you know what you're doing.
Name | Type | Description |
---|---|---|
mediapaused |
boolean |
Present if the media is paused. |
CSS Variables
Section titled CSS VariablesName | Default | Description |
---|---|---|
--media-play-button-display |
inline-flex |
`display` property of button. |
--media-primary-color |
rgb(238 238 238) |
Default color of text and icon. |
--media-secondary-color |
rgb(20 20 30 / .7) |
Default color of button background. |
--media-text-color |
var(--media-primary-color, rgb(238 238 238)) |
`color` of button text. |
--media-icon-color |
var(--media-primary-color, rgb(238 238 238)) |
`fill` color of button icon. |
--media-control-display |
`display` property of control. | |
--media-control-background |
var(--media-secondary-color, rgb(20 20 30 / .7)) |
`background` of control. |
--media-control-hover-background |
rgba(50 50 70 / .7) |
`background` of control hover state. |
--media-control-padding |
10px |
`padding` of control. |
--media-control-height |
24px |
`line-height` of control. |
--media-font |
var(--media-font-weight, bold) var(--media-font-size, 14px) / var(--media-text-content-height, var(--media-control-height, 24px)) var(--media-font-family, helvetica neue, segoe ui, roboto, arial, sans-serif) |
`font` shorthand property. |
--media-font-weight |
bold |
`font-weight` property. |
--media-font-family |
helvetica neue, segoe ui, roboto, arial, sans-serif |
`font-family` property. |
--media-font-size |
14px |
`font-size` property. |
--media-text-content-height |
var(--media-control-height, 24px) |
`line-height` of button text. |
--media-button-icon-width |
`width` of button icon. | |
--media-button-icon-height |
var(--media-control-height, 24px) |
`height` of button icon. |
--media-button-icon-transform |
`transform` of button icon. | |
--media-button-icon-transition |
`transition` of button icon. |