Re: [csswg-drafts] Exposing navigation/route matching (#12594)

Adding a few principles in conjunction with https://github.com/WICG/declarative-partial-updates/issues/46 and with the F2F minutes:
- routes can be queried combined with their parameters
- routes are potentially scoped, and their conditionals should reflect that
- Routes can either match the current state (whether stationary or navigation), or be reflected a link

So, suggesting something along the following:

```
<route-name> = <ident>
<route-with-params> = <<route-name>> ['[' <<route-param>> [ '*' | '~' | '$' ]? '=' <<route-param-value>> ']']*
<route-affinity> = at | with | from | to
<route-selector> = <<route-affinity>>? [ <<route-name>> || <<url>> ]
<route-query> = <<route-selector>>#
```

```css
@route(<route-query>) { /* document-scoped route */ }
#some-element:route(<route-query>) { /* a matching route is in the element's scope */ }
:link(<route-query>) { /* this link is to a particular route */ }
```

Some more specifics:
- `and`/`or`/`not` etc. can be used like in media/container queries
- The navigation-based routes are valid when from when the navigation starts, and until the navigation ends (all handler callbacks are called), and with the "current" URL changing when the navigation commits.






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


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

Received on Wednesday, 3 September 2025 13:41:23 UTC