- From: Brandon McConnell via GitHub <sysbot+gh@w3.org>
- Date: Mon, 20 May 2024 21:26:52 +0000
- To: public-css-archive@w3.org
Would this pseudo-class counterpart to the `@media` at-rule work directly on selectors or only inside `:is()` and `:not()`? I'd guess both, but I only see examples within other pseudo-class rules on this thread. Assuming this applies to all applicable at-rules, this might also solve the issue/proposal I opened today in #10356. This way, `@starting-style` rules can be applied inline with other selector-based rules to avoid redundancy. One of the spec's authors, @dbaron, also spoke into the discussion and voiced a similar sentiment. > I agree that we ended up with a solution that requires a bunch of repetition that I'm not happy about. Having a way to use these at-rules inline as pseudos would be amazing. I initially preferred the syntax proposed by @jakearchibald (above) and by @jothsa in #8840, but that would also impose some limitations. In the case of `@starting-style`, this would still not allow the at-rule to mix with selector logic in the ways necessary to remove redundancy. However, with a pseudo-class rule counterpart available, much of the redundancy in this example: ```css dialog { transform: translateY(-50%); &, &::backdrop { transition: all 0.25s ease-out allow-discrete; opacity: 0; } &[open] { transform: translateY(0); &, &::backdrop { opacity: 1; } } @starting-style { &[open] { transform: translateY(-50%); &, &::backdrop { opacity: 0; } } } } ``` …can be consolidated, leaving us with this: ```css dialog { &, &[open]:starting-style { transform: translateY(-50%); &, &::backdrop { transition: all 0.25s ease-out allow-discrete; opacity: 0; } } &[open] { transform: translateY(0); &, &::backdrop { opacity: 1; } } } ``` I think @jonathantneal's suggestion of introducing a `:when` pseudo for this could also work well, as long as `starting-style` would be valid within `@when()` rules `:when()` wouldn't pose a significant risk of confusion (between `:where()` and `:when()`). If we did want a way to match the query syntax exactly, we could consider `:matches(@media(…))`, but I think that might be a step backward with the more flexible `@when` on the horizon. --- It might help to organize a comprehensive list of all at-rules that could benefit from a pseudo-class counterpart like this. * `@when` * `@media` * `@supports` * `@starting-style` * any others? Or should we introduce only one new pseudo-class, `:when()` which can be used to test for any of these and others? -- GitHub Notification of comment by brandonmcconnell Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6247#issuecomment-2121238979 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 20 May 2024 21:26:53 UTC