Re: [csswg-drafts] [css-scoping] Inclusive vs exclusive lower boundary (#6577)

I agree. We could technically merge the two syntaxes completely. The 'Selector Scoping Notation' would fit fine in an at-rule (the other direction is a bit more difficult). In that case we don't have parenthesis to separate the two selector lists, and keywords (to/until) are indistinguishable from element selectors, so we use a symbol. The two most obvious solutions from there are either: 

1. A different symbol for inclusive/exclusive (for example, using `/` for inclusive and `//` for exclusive)

```css
/* inclusive scope rule */
@scope ([data-scope='main-component'] / [data-scope]) { .a { ... } }

/* exclusive selector syntax */
([data-scope='main-component'] // [data-scope]) .a { ... }
```

2. A function name on the outer parenthesis

```css
/* inclusive scope rule */
@scope inclusive([data-scope='main-component'] / [data-scope]) { .a { ... } }

/* exclusive selector syntax */
exclusive([data-scope='main-component'] / [data-scope]) .a { ... }
```

Since the selector syntax requires a symbol anyway, I lean towards giving that symbol some power (option 1) to keep things compact. But option 2 has the advantage of being more explicit. Also open to other options here.

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


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

Received on Wednesday, 23 March 2022 16:34:49 UTC