- From: Tab Atkins Jr. via GitHub <sysbot+gh@w3.org>
- Date: Thu, 04 Apr 2019 21:17:27 +0000
- To: public-css-archive@w3.org
tabatkins has just created a new issue for https://github.com/w3c/csswg-drafts: == [various] Holistic review/proposal of color-modifying things == @fantasai and I have spent the day reviewing all the various proposals regarding modifying the colors on the page (dark mode, high-contrast, etc), and have come up with an integrated set of proposals that we think address all the use-cases and interact fairly cleanly. "High-contrast" proposal ======================== ``` @media (forced-colors: none | active) {...} forced-color-adjust: auto | none ``` [Undeprecate some System Colors, and add a few new ones](https://github.com/w3c/csswg-drafts/issues/3804) to match with MS's [High Contrast feature](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/HighContrast/explainer.md) (which isn't actually about high contrast, but rather about forcing apps/websites to use a specific, small set of user-chosen colors-- which may or may not be high contrast, and in some cases may specifically be low-contrast). When forced-color-adjust is `auto` and the user is forcing colors, then the [set of properties defined in the MS proposal](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/HighContrast/explainer.md#css-properties) have their colors overridden to use the system colors defined above. Authors are encouraged to use these system colors for properties that aren't overridden to create a coherent page design when colors are forced. If the forced background is dark (based on Lab lightness), (prefers-color-scheme: dark) must match; mutatis mutandi for light. This way, websites that support light/dark color schemes will adjust automatically to more closely match the color scheme implied by the forced colors. (This replaces the white-on-black and black-on-white values of the MSFT high-contrast media query proposal.) The (prefers-contrast) MQ is unrelated and unchanged. (We might further consider folding 'forced-color-adjust' into the existing 'color-adjust' property somehow, but can discuss whether and how to do that later.) Light/Dark color scheme proposal ================================ ``` @media (prefers-color-scheme: light | dark | no-preference) color-scheme: only? && [light | dark | <custom-ident>]+ <meta name=color-scheme content="(same values)"> sets initial value of 'color-scheme' on the root. ``` Processing rules as defined by Rune <https://lilles.github.io/specs/supported-color-schemes.html> If we can change system colors to compute to themselves, then 'color-scheme' changes the used values of the system colors on the element. If not, 'color-scheme' on the root does so for the whole page. In either case, the affected system colors are at least the set defined for "high contrast". 'color-scheme' must also affect input & scrollbar styling. color-filter proposal ===================== * [Sydney 2018 discussion minutes](https://lists.w3.org/Archives/Public/www-style/2018Jul/0023.html) * Issue #2875 for rough proposal This seems like an early attempt at ability to auto dark-mode a page, but doesn't seem particularly useful now that color-scheme/etc has reasonable consensus. It might be useful to expose as a quick-and-dirty way for an author to dark-mode their page, but are there use-cases beyond auto-darkmode-ing? If not, maybe just switch this to a keyword property (adding to 'color-adjust'?) that can do "smarter" inversion based on luminance. inverted-colors proposal ======================== ``` @media (inverted-colors: none | inverted) ``` Supported in Safari; it's not clear whether "inverted" means all-pixels inversion, or color-inversion only, or what? Important to distinguish these, as what authors do in response can vary based on which inversion is performed. (The `img { filter: invert(100%); }` rule in the spec's example, for instance, is only useful for all-pixel inversion; it would be *harmful* for a colors-only inversion.) So, we either need to *specify* what kind of inversion is allowed to be performed, or add more values capturing the distinctions among the types. Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3807 using your GitHub account
Received on Thursday, 4 April 2019 21:17:29 UTC