::cue
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
The ::cue
CSS pseudo-element matches WebVTT cues within a selected element.
This can be used to style captions and other cues in media with VTT tracks.
Try it
The properties are applied to the entire set of cues as if they were a single unit. The only exception is that background
and its longhand properties apply to each cue individually, to avoid creating boxes and obscuring unexpectedly large areas of the media.
In the example above, the ::cue(u)
selector selects all the <u>
elements inside the cue text.
Syntax
::cue | ::cue(<selector>) {
/* ... */
}
Permitted properties
Rules whose selectors include this element may only use the following CSS properties:
background
background-attachment
background-clip
background-color
background-image
background-origin
background-position
background-repeat
background-size
color
font
font-family
font-size
font-stretch
font-style
font-variant
font-weight
line-height
opacity
outline
outline-color
outline-style
outline-width
ruby-position
text-combine-upright
text-decoration
text-decoration-color
text-decoration-line
text-decoration-style
text-decoration-thickness
text-shadow
visibility
white-space
Examples
Styling WebVTT cues as white-on-black
The following CSS sets the cue style so that the text is white and the background is a translucent black box.
::cue {
color: #fff;
background-color: rgb(0 0 0 / 60%);
}
Styling WebVTT internal node objects
Cue text can include internal node objects as the tags (similar to HTML elements) <c>
, <i>
, <b>
, <u>
, <ruby>
, <rt>
, <v>
, and <lang>
.
The ::cue()
selector can be used to apply styles to content inside these tags to customize how the WebVTT track is displayed.
Consider the following cue text that uses the <u>
tag to underline some text:
00:00:01.500 --> 00:00:02.999 line:80% Tell me, is the <u>lord of the universe</u> in?
The following CSS rule customizes the text inside the <u>
tag with a color and a text-decoration:
::cue(u) {
color: red;
text-decoration: wavy overline lime;
}
Specifications
Specification |
---|
WebVTT: The Web Video Text Tracks Format # the-cue-pseudo-element |
Browser compatibility
BCD tables only load in the browser