HighlightRegistry
        
        
          
                Baseline
                
                  2025
                
                 *
              
        
        Newly available
        
          
                
              
                
              
                
              
        
        
      
      Since June 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
The HighlightRegistry interface of the CSS Custom Highlight API is used to register Highlight objects to be styled using the API.
It is accessed via 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 Highlight object.
Instance properties
The HighlightRegistry interface doesn't inherit any properties.
- HighlightRegistry.sizeRead only
- 
Returns the number of Highlightobjects currently registered.
Instance methods
The HighlightRegistry interface doesn't inherit any methods.
- HighlightRegistry.clear()
- 
Remove all Highlightobjects from the registry.
- HighlightRegistry.delete()
- 
Remove the named Highlightobject from the registry.
- HighlightRegistry.entries()
- 
Returns a new iterator object that contains each Highlightobject in the registry, in insertion order.
- HighlightRegistry.forEach()
- 
Calls the given callback once for each Highlightobject in the registry, in insertion order.
- HighlightRegistry.get()
- 
Gets the named Highlightobject from the registry.
- HighlightRegistry.has()
- 
Returns a boolean asserting whether a Highlightobject is present the registry or not.
- HighlightRegistry.highlightsFromPoint()Experimental
- 
Returns an array of objects representing the custom highlights applied at a specific point within the viewport. 
- HighlightRegistry.keys()
- 
An alias for HighlightRegistry.values().
- HighlightRegistry.set()
- 
Adds the given Highlightobject to the registry with the given name, or updates the namedHighlightobject, if it already exists in the registry.
- HighlightRegistry.values()
- 
Returns a new iterator object that yields the Highlightobjects in the registry, in insertion order.
Examples
>Registering a highlight
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:
HTML
<p id="foo">CSS Custom Highlight API</p>
CSS
::highlight(my-custom-highlight) {
  background-color: peachpuff;
}
JavaScript
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);
Result
Specifications
| Specification | 
|---|
| CSS Custom Highlight API Module Level 1> # highlight-registry> | 
Browser compatibility
Loading…