[csswg-drafts] [css-highlight-api] Should priority be expressed on ::highlight instead of HighlightRangeGroup? (#4613)

sanketj has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-highlight-api] Should priority be expressed on ::highlight instead of HighlightRangeGroup? ==
It occurred to me while thinking about #4579 that ::selection and ::inactive-selection are an example of two pseudo elements that target the same set of ranges.

To emulate this with custom highlights, we would currently have to do something like:
```
:root::highlight(active-selection-ranges) {
  /* active selection style */
}
:root::highlight(inactive-selection-ranges) {
  /* inactive selection style */
}
```
Here, `active-selection-ranges` and `inactive-selection-ranges` are HighlightRangeGroups. In order for inactive selection highlights to layer on top of active selection highlights, we can assign `inactive-selection-ranges` the higher priority of the two. Then, if our custom selection transitions from active to inactive, we could either add ranges from `active-selection-ranges` to `inactive-selection-ranges` - which is cumbersome - or we could use the inline style attribute to reverse the styles - which is ugly because `active-selection-ranges` will then have inactive styles.

If we could express priority on the ::highlight pseudo instead of the HighlightRangeGroup, then we could do the following:
```
:root:highlight(selection-ranges) {
  /* active selection style */
  /* assign lower priority */
}
:root::highlight(selection-ranges) {
  /* inactive selection style */
  /* assign higher priority */
}
```
Now we can just have one HighlightRangeGroup that doesn't need to be modified as we transition from one selection state to another.

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/4613 using your GitHub account

Received on Wednesday, 18 December 2019 07:48:14 UTC