CSS: highlights static property

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

The static, read-only highlights property of the CSS interface provides access to the HighlightRegistry used to style arbitrary text ranges using the CSS Custom Highlight API.


The HighlightRegistry object.


The following example demonstrates creating multiple text ranges, then creating a Highlight object for them, registering this highlight in the HighlightRegistry, and finally styling the text ranges using the ::highlight() pseudo-element.

const parentNode = document.getElementById("foo");

const range1 = new Range();
range1.setStart(parentNode, 10);
range1.setEnd(parentNode, 20);

const range2 = new Range();
range2.setStart(parentNode, 40);
range2.setEnd(parentNode, 60);

const myCustomHighlight = new Highlight(range1, range2);

CSS.highlights.set("my-custom-highlight", myCustomHighlight);
::highlight(my-custom-highlight) {
  background-color: yellow;
  color: black;


CSS Custom Highlight API Module Level 1
# dom-css-highlights

Browser compatibility

BCD tables only load in the browser

See also