| ▲ | kickingvegas 4 hours ago |
| FYI, light-dark() in CSS is a thing now. https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/V... |
|
| ▲ | kps 4 hours ago | parent | next [-] |
| And `:prefers-color-scheme` has been supported by all major browsers for seven years. |
| |
| ▲ | cosmotic 4 hours ago | parent | next [-] | | Windows 3 through windows 7 had pervasive support for dark mode as long as application developers didn't custom paint their user interfaces. Application developers started out almost all supporting system colors and gradually over the next 25 years or so started implementing their own custom-drawn interfaces, accelerated by embedded IE/mshtml views and then later even more by Electron. This concluded with practically zero interfaces supporting the system color scheme. | | |
| ▲ | da_chicken 3 hours ago | parent | next [-] | | Yeah but "dark mode" for Win3 through WinXP was primarily to support passive matrix LCDs, which required inverted color schemes to appear with enough contrast to read. That is why the built-in "high contrast" color schemes look so aggressively awful. | |
| ▲ | toyg 3 hours ago | parent | prev | next [-] | | Yeah, when dark mode became "a thing" my first reaction was "...didn't we have this already?" I was a theme junkie back in Windows 98 times, but stopped bothering since it became increasingly clear that Microsoft was not really interested in supporting them after XP. | |
| ▲ | Rohansi 2 hours ago | parent | prev [-] | | Custom painting isn't the only thing that broke it. You can customize the style (colors) of the native widgets to get a desired look but IIRC you could choose from system colors (follows the theme/mode automatically) or exact colors. Some applications used a mix of them which made the UI look awful if you switched away from whatever the default theme was. |
| |
| ▲ | jansan 4 hours ago | parent | prev [-] | | And broken in Chrome since the beginning: https://issues.chromium.org/issues/366412383 | | |
| ▲ | zamadatix 4 hours ago | parent | next [-] | | I wouldn't call this part of the situation a bug. I'm sure everyone has their own opinion about which is the "right" way to handle a mismatch of OS level preference and browser level theme though. The underlying problem is Chrome exposes no (normal) setting to override the OS level setting at all, not necessarily that the preference shall always follow the browser's theme specifically. | | | |
| ▲ | omer_balyali 4 hours ago | parent | prev | next [-] | | This issue is related to appearance setting inside Chrome itself (which sets Chrome's appearance, not how it should work with websites AFAIK). The core feature of prefers-color-scheme (following the OS-level setting) is working as intended. | | |
| ▲ | jansan 4 hours ago | parent [-] | | It is not true that prefers-color-scheme should always follow the OS-level setting. The doc says "The method by which the user expresses their preference can vary. It might be a system-wide setting exposed by the Operating System, or a setting controlled by the user agent."[1] So if the user sets dark mode in the browser, do they not explicitly express their preference for websites? How could they be more explicit about the setting? [1]https://drafts.csswg.org/mediaqueries-5/#prefers-color-schem... | | |
| ▲ | omer_balyali 3 hours ago | parent [-] | | I didn't meant that "only OS-level setting should be respected", what I meant is that Chrome's setting is how Chrome themes should look like, not for websites. Chrome already has a setting to change a specific website's color-scheme, although it's only working when Developer Tools is visible (then with Cmd+Shift+P "Toggle CSS media feature prefers-color-scheme"), so CSS implementation actually follows respecting UA-level preference over OS-level setting. But again, Chrome doesn't have a feature that lets users to choose which color-scheme they want to browse the web (so there is no bug, but it's a UX issue because their Appearance settings doesn't make it clear to the users what this setting changes) other than the setting they gave to developers. Honestly I would love to see all browsers have an option for how color-scheme settings should apply to websites. | | |
| ▲ | omer_balyali 2 hours ago | parent | next [-] | | Yes it's confusing for the end-user, as I said they should improve their UX in that setting page to make it clear what this setting changes. However, your original comment was saying that prefers-color-scheme is bugged in Chrome is not true. It works as intended: it follows both UA-level and OS-level settings correctly. The settings in Appearance tab is not a setting for preference when browsing the web. Many apps have a setting to choose if their app should change appearance when OS setting changed (or to override it), they could simply leave out this setting and let Chrome chrome (app ui) always follow the OS setting or always be in default light mode, instead they gave users to choose "how their Chrome browser will look like", not "how every website they visit should look like". | |
| ▲ | jansan 2 hours ago | parent | prev [-] | | You can set the appearance mode (light, dark, device) under chrome://settings/appearance . If you change the mode, the settings page (which is a website) adopts that mode, so a user would naturally assume this is also the mode for displaying web content. |
|
|
| |
| ▲ | kulahan 4 hours ago | parent | prev [-] | | So I guess it hasn’t been supported anywhere in a sense. Safari and Firefox are pretty small. |
|
|
|
| ▲ | akersten 4 hours ago | parent | prev | next [-] |
| It makes me so angry that they named the CSS function `light-dark` instead of leaving the door open to allowing generic user- or site-specified color schemes. I mean it was right there in all the other mechanisms around this feature, they just had to read and think about why these are structured the way they are, and why "light" and "dark" were always values and not keywords in all of these..: - <meta name="color-scheme" content="light dark">
- :root { color-scheme: light dark }
- @media (prefers-color-scheme: dark) { }
- <picture><source media="(prefers-color-scheme: dark)">
.... and then we've got `light-dark()`, the goofy looking dragon hanging out to the side of these majestic, forward-thinking parts of the specification.Did they not look at the prior art and notice that "one of these things is not like the other?" All the other pieces of this puzzle, conceivably, could have one day had something like `:root { color-scheme: halloween }` or `@media (prefers-color-scheme: supercontrast)` but no, we're just going to cement `light-dark()` as the only two possible color schemes we'd ever want to switch between forever. |
| |
| ▲ | tshaddox an hour ago | parent | next [-] | | I’m not sure what kind of function you’re asking for that would support arbitrary user-defined themes. With the if() function and/or @function declarations you could build pretty much any system you want for defining theme-specific values for arbitrary themes. | |
| ▲ | omer_balyali an hour ago | parent | prev | next [-] | | Color schemes (luminance modes) and color themes (aesthetic styles) are not the same thing. Halloween theme can have light and dark schemes. Also, prefers-contrast media query exists, which can be used in combination with the luminance modes (color-scheme): halloween-light, halloween-dark, halloween-light-high-contrast, halloween-dark-high-contrast. https://news.ycombinator.com/item?id=47832705 | |
| ▲ | have_faith 4 hours ago | parent | prev | next [-] | | It’s always irked me that light and dark are given privileged positions in the namespace. They’re just themes (or schemes if you like), like all the other possible themes. | |
| ▲ | hexasquid an hour ago | parent | prev [-] | | Web standards are discussed in the open aren't they?
I'll see if I can find what reasoning lead to this. | | |
|
|
| ▲ | 4 hours ago | parent | prev [-] |
| [deleted] |