files/en-us/web/api/highlightregistry/index.md
{{APIRef("CSS Custom Highlight API")}}
The HighlightRegistry interface of the CSS Custom Highlight API is used to register {{domxref("Highlight")}} objects to be styled using the API.
It is accessed via {{domxref("CSS.highlights_static", "CSS.highlights")}}.
A HighlightRegistry instance is a Map-like object, in which each key is the name string for a custom highlight, and the corresponding value is the associated {{domxref("Highlight")}} object.
{{InheritanceDiagram}}
The HighlightRegistry interface doesn't inherit any properties.
Highlight objects currently registered.The HighlightRegistry interface doesn't inherit any methods.
Highlight objects from the registry.Highlight object from the registry.Highlight object in the registry, in insertion order.Highlight object in the registry, in insertion order.Highlight object from the registry.Highlight object is present the registry or not.Highlight object to the registry with the given name, or updates the named Highlight object, if it already exists in the registry.Highlight objects in the registry, in insertion order.The following example demonstrates how to create ranges, instantiate a new Highlight object for them, and register the highlight using the HighlightRegistry, to style it on the page:
<p id="foo">CSS Custom Highlight API</p>
::highlight(my-custom-highlight) {
background-color: peachpuff;
}
const text = document.getElementById("foo").firstChild;
if (!CSS.highlights) {
text.textContent =
"The CSS Custom Highlight API is not supported in this browser!";
}
// Create a couple of ranges.
const range1 = new Range();
range1.setStart(text, 0);
range1.setEnd(text, 3);
const range2 = new Range();
range2.setStart(text, 21);
range2.setEnd(text, 24);
// Create a custom highlight for these ranges.
const highlight = new Highlight(range1, range2);
// Register the ranges in the HighlightRegistry.
CSS.highlights.set("my-custom-highlight", highlight);
{{ EmbedLiveSample("Registering a highlight") }}
{{Specifications}}
{{Compat}}