light-dark()

63 points by clairity 1 year ago | 12 comments
  • 6510 1 year ago
    No offense but how about bothering to finish Alternative Style Sheet selection?

       <link href="css.css" rel="stylesheet" title="Default Style" />
       <link href="a.css" rel="alternate stylesheet" title="light" />
       <link href="b.css" rel="alternate stylesheet" title="dark" />
    
    Or is this not precisely the same thing?

    https://html.spec.whatwg.org/multipage/links.html#rel-altern...

    edit: with finish I mean use this for light/dark mode and fix it so that the preference chosen by the user is not immediately discarded after navigation. One doesn't discard user selected preferences. It is not done.

    • cantSpellSober 1 year ago
      What if, in the future, we have more than two options (light and dark)?

      @media (prefers-color-scheme: [name]) seems more extensible, but this feels simpler and easier to read.

      Glad the function accepts custom properties (CSS "variables").

      Should probably add a color property that doesn't use this function as a fallback for browsers that don't support it.

      • romellem 1 year ago
        prefers-color-scheme only [accepts two values][0] at the moment: light and dark. However, they acknowledge this may not be fixed to this enum forever

        > The values for this feature might be expanded in the future (to express a more active preference for light color schemes, or preferences for other types of color schemes like "sepia"). As such, the most future-friendly way to use this media feature is by negation such as (prefers-color-scheme: dark) and (not (prefers-color-scheme: dark)), which ensures that new values fall into at least one of the styling blocks.

        [0]: https://drafts.csswg.org/mediaqueries-5/#prefers-color-schem...

        • cantSpellSober 1 year ago
          That's what I was getting at, thanks for the reference!
        • Kiuhrly1 1 year ago
          There is already a media query for contrast preferences (increased or decreased) IIRC
        • davidkunz 1 year ago
          I think `black` and `white` should be switched here:

          color: light-dark(black, white);

          • 8n4vidtmkvmk 1 year ago
            I don't think so. You want black text on a light theme/background.
            • davidkunz 1 year ago
              Sorry, I misread your answer. You're right. I automatically assumed setting some background color for which `color: light-dark(white, black);` would be right.
              • davidkunz 1 year ago
                But why is the order switched below?

                Functional notation: light-dark(light-color, dark-color)

                • whiskers 1 year ago
                  It's not.. `light-color` refers to the colour you want presented if the user's preference is for a "light" theme.

                  It's not declaring the relative brightness of the two colours - I agree it could be documented a little less ambiguously with something like `light-theme-color`.