Skip to content

CSS highlight pseudo system #548

@delan

Description

@delan

Request for Mozilla Position on an Emerging Web Specification

Other information

css-pseudo-4 specifies the widely-supported but previously non-standard ::selection as one of several “highlight pseudos”, along with things like spelling/grammar errors and author-defined custom highlights. The highlight pseudos include a more powerful processing model:

  • highlights can now add their own decorations and shadows
  • highlights can now inherit applicable properties from ancestor highlight styles (was also true for Presto!)

This is mostly compatible with older ::selection impls but not completely:

  • originating shadows now paint below the backgrounds of ::selection and other highlights
  • ::selection can no longer remove or (in general) change the color of originating decorations and shadows
  • it was possible (albeit unlikely) for existing content to rely on ::selection styles not being inherited
  • custom properties on :root are no longer visible to ::selection pseudos unless defined on :root::selection

For more details, check out our explainer.

Although this new system is complex, we have successfully implemented it in Blink, and we’re planning to send an intent to ship for it soon. We recently shared our techniques for making it performant at BlinkOn 17. The main Blink features are HighlightOverlayPainting (stable in M105) and HighlightInheritance (stable in M105 for custom highlights only).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Needs proposed position

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions