Re: [csswg-drafts] [css-fonts-5] Make `unicode-range` syntax suck less (#7921)

> Were you expecting that `unicode-range: greek, not japanese` would do something different from just `unicode-range: greek`? If so, what? (I'm assuming that the `greek` and `japanese` character ranges don't intersect... though maybe that's an incorrect assumption.)

I was just trying to show syntax, but I agree that is a poor example. They definitely don't intersect! The fact that I can't easily think of examples that _do_ intersect probably proves that `not` should just apply to the whole value. We should however design the syntax so that it can be extended in the future if such use cases emerge. The syntax @tabatkins proposes cannot be extended in the future, and is confusing to read due to the precedence of commas vs words in natural language (and most places in CSS as well):

```css
unicode-range: not greek, japanese, U+A5;
```

It looks like `not` applies to `greek`, but it actually applies to the whole value. A functional syntax can fix this and make the syntax both clearer and more extensible:

```css
unicode-range: not(greek, japanese, U+A5);
```

-- 
GitHub Notification of comment by LeaVerou
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7921#issuecomment-1285553190 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 20 October 2022 13:36:35 UTC