<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/custom-highlight-universal-selector-highlight--f416uv98z" -->

---
title: Custom Highlight Universal Selector ::highlight(*)
description: A new universal selector, ::highlight(*), has been added to the CSS Pseudos specification and implemented in Chromium, shipping in Chrome 158 (scheduled...
canonical: https://daily.dev/posts/custom-highlight-universal-selector-highlight--f416uv98z
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Custom Highlight Universal Selector ::highlight(*) | daily.dev
og:description: A new universal selector, ::highlight(*), has been added to the CSS Pseudos specification and implemented in Chromium, shipping in Chrome 158 (scheduled...
og:url: https://daily.dev/posts/custom-highlight-universal-selector-highlight--f416uv98z
og:image: https://api.daily.dev/og/posts/F416uv98z.png
og:image:alt: Custom Highlight Universal Selector ::highlight(*)
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom Highlight Universal Selector ::highlight(*)

**[Planet Igalia](https://daily.dev/sources/planet-igalia)** · 4 min read · 0 upvotes · 0 comments

## Summary

A new universal selector, ::highlight(*), has been added to the CSS Pseudos specification and implemented in Chromium, shipping in Chrome 158 (scheduled November 4, 2026). It lets developers write shared styles for all CSS Custom Highlights instead of duplicating declarations across every named ::highlight() rule. The selector has zero specificity so named highlights always override it, and it acts as a default fallback for any registered highlight lacking a matching rule. The author authored both the spec PR and the Chromium implementation, with work funded by Bloomberg and done at Igalia.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.seokho.dev/development/2026/10/20/CSS-Custom-Highlight-Universal-Selector.html>

## Questions this post answers

### What does the ::highlight(*) universal selector do in CSS Custom Highlights?

It is a universal selector that matches every named custom highlight, letting developers write shared styles once instead of duplicating them across each ::highlight(name) rule. It also acts as a fallback, so any registered highlight with no matching named rule still gets painted using the universal rule's styles. It was merged into the CSS Pseudos spec and ships in Chrome 158.

_Track how new CSS selectors land in browsers before they break your styling assumptions, on daily.dev._

### Does ::highlight(*) have the same specificity as a named ::highlight() rule in CSS?

No, ::highlight(*) has zero specificity, the lowest possible, so any named custom highlight like ::highlight(foo) always wins when both set the same property. This was implemented explicitly in Chromium's CSSSelector::SpecificityForOneSelector by returning 0 when the argument is the universal selector. Note that p::highlight(*) ties with ::highlight(foo) since the tag selector p carries equivalent specificity.

_Developers debugging cascade conflicts can use daily.dev to stay current on CSS specificity rule changes._

### When did Chrome add support for the ::highlight(*) CSS selector and what version ships it?

Chrome ships ::highlight(*) in version 158, scheduled for release on November 4, 2026. The Intent to Ship received three LGTMs from Blink API owners on October 20, 2026, and the spec PR adding the feature to CSS Pseudos was merged on September 30, 2026.

_Following exact browser version rollouts like this helps teams on daily.dev plan safe adoption of new CSS features._

## Similar posts on daily.dev

- [How to Style the New ::search-text and Other Highlight-y Pseudo-Elements](https://daily.dev/posts/how-to-style-the-new-search-text-and-other-highlight-y-pseudo-elements-trqriqyie) · CSS-Tricks · 2 upvotes · 1 comments
- [Working with ::highlight\(\) using progressive enhancement](https://daily.dev/posts/working-with-highlight-using-progressive-enhancement-svttq0eh5) · Piccalilli · 1 upvotes · 0 comments
- [css custom highlight api javascript Tutorial](https://daily.dev/posts/css-custom-highlight-api-javascript-tutorial-zer4jpppo) · SitePoint · 5 upvotes · 1 comments
- [Chrome for Developers](https://daily.dev/posts/chrome-for-developers-hjcy7dv8r) · Chrome Developers · 211 upvotes · 3 comments
- [There's no place like Chrome](https://daily.dev/posts/there-s-no-place-like-chrome-5hw6yg7ql) · Bytes by ui.dev · 1 upvotes · 0 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#css](https://daily.dev/tags/css), [#google-chrome](https://daily.dev/tags/google-chrome)

[View this post on daily.dev](https://daily.dev/posts/custom-highlight-universal-selector-highlight--f416uv98z)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Custom Highlight Universal Selector ::highlight(*)","url":"https://daily.dev/posts/custom-highlight-universal-selector-highlight--f416uv98z","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/custom-highlight-universal-selector-highlight--f416uv98z"},"datePublished":"2026-10-20T10:04:31.805Z","dateModified":"2026-10-20T10:04:55.462Z","description":"A new universal selector, ::highlight(*), has been added to the CSS Pseudos specification and implemented in Chromium, shipping in Chrome 158 (scheduled...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/f08ac59bb13af1246b0f9aae0ed7741b?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/f08ac59bb13af1246b0f9aae0ed7741b?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Planet Igalia","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Planet Igalia","logo":"https://media.daily.dev/image/upload/s--84VSWNwZ--/f_auto,q_auto/v1789890204/logos/planet-igalia?_a=BAMAMicg0","url":"https://daily.dev/sources/planet-igalia"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/custom-highlight-universal-selector-highlight--f416uv98z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"webdev,css,google-chrome","timeRequired":"PT4M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Planet Igalia","item":"https://daily.dev/sources/planet-igalia"},{"@type":"ListItem","position":3,"name":"Custom Highlight Universal Selector ::highlight(*)"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/custom-highlight-universal-selector-highlight--f416uv98z#faq","mainEntity":[{"@type":"Question","name":"What does the ::highlight(*) universal selector do in CSS Custom Highlights?","acceptedAnswer":{"@type":"Answer","text":"It is a universal selector that matches every named custom highlight, letting developers write shared styles once instead of duplicating them across each ::highlight(name) rule. It also acts as a fallback, so any registered highlight with no matching named rule still gets painted using the universal rule's styles. It was merged into the CSS Pseudos spec and ships in Chrome 158. Track how new CSS selectors land in browsers before they break your styling assumptions, on daily.dev."}},{"@type":"Question","name":"Does ::highlight(*) have the same specificity as a named ::highlight() rule in CSS?","acceptedAnswer":{"@type":"Answer","text":"No, ::highlight(*) has zero specificity, the lowest possible, so any named custom highlight like ::highlight(foo) always wins when both set the same property. This was implemented explicitly in Chromium's CSSSelector::SpecificityForOneSelector by returning 0 when the argument is the universal selector. Note that p::highlight(*) ties with ::highlight(foo) since the tag selector p carries equivalent specificity. Developers debugging cascade conflicts can use daily.dev to stay current on CSS specificity rule changes."}},{"@type":"Question","name":"When did Chrome add support for the ::highlight(*) CSS selector and what version ships it?","acceptedAnswer":{"@type":"Answer","text":"Chrome ships ::highlight(*) in version 158, scheduled for release on November 4, 2026. The Intent to Ship received three LGTMs from Blink API owners on October 20, 2026, and the spec PR adding the feature to CSS Pseudos was merged on September 30, 2026. Following exact browser version rollouts like this helps teams on daily.dev plan safe adoption of new CSS features."}}]}
```

