-
Notifications
You must be signed in to change notification settings - Fork 669
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[css-env] Allow authors to configure a few settings from within CSS (CSS @config
)
#9109
Labels
Comments
Another issue where this could be useful: #6323 – to determine the order/priority of unlayered styles when using cascade layers. |
To me, this feels like it should be handled together with environment variables as part of css-env. |
bramus
changed the title
Allow authors to configure a few settings from within CSS (CSS
[css-env] Allow authors to configure a few settings from within CSS (CSS Jul 3, 2024
@config
)@config
)
Another feature where @config {
interpolate-size: allow-keywords;
} |
Another one: Flow-relative syntax for @config {
flow-mode: relative | physical;
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
(This was originally presented during the lightning round at the 2023 F2F in Cupertino)
This is a bit of controversial idea that has been lingering in the back of my mind. Basically, I’ve seen the need for authors to configure some things on a page, and it would be nice if they could do that from within CSS.
I am thinking of configuration settings like MPA View Transitions or other things that typically go into a meta tag. An example here is the switch to control the viewport resizing behavior when the virtual keyboard gets shown (see https://drafts.csswg.org/css-viewport/#interactive-widget-section)
I haven’t thought this entirely through (insert chuckle by some of you here) but am thinking of an
@config
at-rule for that. In it, you could put some things like theinteractive-widget
configuration.To make it a bit more controversial – because why not? – maybe it could also be extended to include some global rendering settings/switches? I am thinking of things like being able to choose the type of scrollbars, change where PosFixed should be laid out against, or maybe even crazy things like disabling margin collapsing entirely (:evil:)?
There of course should be some requirements concerning this at-rule. Most values in it should only be set once, and cannot be changed on the fly. For example, you don’t want to change the scrollbar type during the lifetime of a page. Some descriptors otoh might be eligible to being changed. I am thinking of the MPA view transitions settings. For that to work properly, the at-rule would need to be able to cascade.
I know something similar has been suggested in the past. There’s a
@css3
entry in the FAQ on the wiki – https://wiki.csswg.org/faq#versioning-css-fixing-design-mistakesIt was discarded at the time, but I think this might work in todays browsers;
@config
block, only config-descriptors.at-rule()
, which allows them to sniff out support for certain config-descriptorsOn the downside, I do definitely see that things like changing margin collapsing would but a burden on devs, as they would need to maintain two code paths for quite some time. Don’t let such a descriptor discard all possible other ones that might make more sense.
The text was updated successfully, but these errors were encountered: