[HN Gopher] Accessible Palette: stop using HSL for color systems... ___________________________________________________________________ Accessible Palette: stop using HSL for color systems (2021) Author : bpierre Score : 269 points Date : 2023-08-29 13:21 UTC (9 hours ago) (HTM) web link (wildbit.com) (TXT) w3m dump (wildbit.com) | hrydgard wrote: | oklab might be an even better alternative to LCh: | | https://bottosson.github.io/posts/oklab/ | microflash wrote: | I've been happily using OkLab on my site and it is way better | on my eyes than previous color palette which was using CIELAB. | refulgentis wrote: | It's sort of way outrun it's initial premise: it's lightness | channel is inverted compared to every other color space, and | it's L has nothing to do with LCH or LAB. It's success brought | more intellectual poverty, unfortunately. The initial blog post | needs a laundry list of corrections, it goes off the rails when | it starts making claims about accuracy based on gradients using | CAM16 UCS. | AprilArcus wrote: | Have the errata been collected anywhere? | refulgentis wrote: | No, it's a really interesting situation, doesn't _directly_ | claim to have lightness like L _a_ b _/ LCH, or that | there's something fundamentally good about having a blue- | yellow gradient. But the L_ thing is crucial for WCAG (c.f. | article), and designers, and the blue/yellow stuff is | interesting. | | - it's _not bad_ Its better than HSL in that its lightness | is correlated to "true lightness", and it's __much__ | simpler to implement than a more complex thing like HCT's | CAM16 x L _. That 's about 500 LOC, versus 15 I'd guess. | And substantially faster too, few mat muls in each | direction. | | - Oklab L is not L_: The problem for engineers and | designers: no relation to LAB L*/XYZ Y, so no correlation | to WCAG. | | The problem on the designers end: it's not a linear ramp in | dark to light visually. This usually goes unnoticed in a | cross-disciplinary scenario unless you're really going deep | into color, designers are used to working under eng. | constraints. | | - Color space accuracy / blue and yellow gradient: | | It's a warning sign, not a positive sign, if a color space | _isn't_ gray in the middle of a blue to yellow gradient. | They're opposites on the color wheel and should cancel out | to nothing. Better to instead note the requirement that you | don't want gray gradients, and to travel "around" the | colorspace instead of "through" it, i.e. rotate hue to make | the gradient, travelling along the surface of the | colorspace, rather than going into the color space, | reducing colorfulness. | simonair wrote: | This playground provides an incredible visualization of 16 | color spaces, including LCh and OKLAB: https://color- | playground.ardov.me/spaces-3d | brookst wrote: | That's amazing and cool and useful. Thank you! | kevingadd wrote: | While it's not perfect, I've been using oklab and oklch | (depending on the circumstances) for color interpolation in | some scenarios and the results are really visually pleasing | compared to interpolating in RGB or HSL. | bee_rider wrote: | If the CIELAB numbers are based on perceptual changes, how do | they interact with accessibility? Do we need to worry that these | perceptual formulae might be based on standard vision? Could they | be different for different types of color blindness, or is that | not a thing. (FWIW, I try to make my charts as accessible as | possible, but I'm totally uneducated in color stuff, so I'm | limited to just following advice, can't derive anything--there's | every possibility that this is a dumb question!) | whoopsie wrote: | Worked on this. Contrast does change non linearly. You can | apply simulations quite easily. The Machado at al simulations | are just a matrix transform. | lelandbatey wrote: | I'm so excited to see more work in the perceptually uniform | color-choice space. I first saw this discussed by Stripe in 2019, | but the work with "accessible pallets" is a revolution! | | https://stripe.com/blog/accessible-color-systems | ichik wrote: | (2021) should be added to the title, many commenters seem to be | oblivious to that fact. | [deleted] | tempodox wrote: | So, where's the code? I want an algorithm that I can use in any | software, not a web form. | todd3834 wrote: | This is the library the author references. I've used it myself | and it works great | | https://github.com/gka/chroma.js | SubiculumCode wrote: | It would be nice if this was packaged into R...if only I had | time. I really dislike a lot of R color palettes. | jamal-kumar wrote: | Does anyone know off hand how we test whether or not | tetrachromats are able to truly see more colours than your | average person? Not just like the x-rite or whatever but maybe | something that's more advanced than that which goes in the kind | of direction that these more advanced colour space profiles seem | to cover? I pass that test really easily but I really doubt I | have more cones in my eyes or any of that. | eviks wrote: | As this blog and the app demonstrate, we haven't even progressed | past the inscrutable hex codes | bandergirl wrote: | > In practice, samples meeting the WCAG 2.1 recommendations are | harder to read than those with an "insufficient" contrast ratio. | | Happy to see I'm not the only one. This has been bugging me for a | long time, how an "accessibility guidance" formula actually had | the opposite effect. Why was that standardized? | madeofpalk wrote: | IIRC there is movment within W3/WCAG to change the formula for | judging contrast/ Or maybe it was just being called for and | there's been no official pick up yet. | whoopsie wrote: | It's a little sad the most widely used algorithms/guidance for | contrast accessibility do not have peer reviewed evidence | behind them. This goes for 2.1 and the upcoming standard. For | something so impactful, I wish the industry help sponsor rigor | here. | refulgentis wrote: | It's not true, this is a meme that started around 2020 and | color suffers the more for it. | | It's funny, in a sad way, when you dig into it. The | 'scientific' version is about 5 lightness points different | from WCAG, on a scale of 100. That isn't a coincidence. put | somewhat more directly, it sure is funny these people made up | contrast ratio out of thin air without evidence, and the | answer that will save us has basically the same #s | cptcobalt wrote: | This article puts the description of it at the bottom, but APCA | Contrast--which is the readable contrast test in the WCAG 3 Draft | Standard--is much more fair to some colors than WCAG 2.1's | Contrast Ratio was. | | Good reading for the color theory behind perceptual contrast: | https://www.smashingmagazine.com/2022/09/realities-myths-con... | | And a distilled description of APCA: | https://typefully.com/u/DanHollick/t/sle13GMW2Brp | zauguin wrote: | APCA works great, but it has a very weird and restrictive | license. Before you consider it for anything you should | probably take a detailed look at that and consider if it's | really usable for you. | kreskin wrote: | The current license kinda sucks but there is some hope that a | more permissive license will be in place by the end of the | year. | | https://twitter.com/MyndexResearch/status/169550147293769333. | .. | 1-6 wrote: | This is only applicable against a white background. Do the same | rules apply for a black background or other colors? | [deleted] | Springtime wrote: | Came across an article when looking into this issue, about HSY[1] | from a Krita (image editor) dev, which is apparently part of | Krita's advanced color selector and addresses the same issue by | mapping perceived luminosity of colors. | | [1] https://wolthera.info/2014/07/hsi-and-hsy-for-kritas- | advance... | refulgentis wrote: | Friendly plug for HCT -- it's a color space I built to enable | Material You, it weds the lightness measure mentioned here to the | latest and greatest color science space --- LAB/LCH is from 1976! | | It makes design more intuitive, they only need to know that a 40 | difference in 'T' ensures that WCAG standards for buttons are | met, and a difference of 50 meets the standards for text. | seanwilson wrote: | Cool! Any thoughts on how HCT compares with | https://www.hsluv.org/comparison/? (Similar with HCT, the | difference in "L" here makes picking contrasting colors more | straightforward) | | On the same topic, any thoughts on https://www.myndex.com/APCA/ | and approaches if this becomes a standard? The color contrast | value between a pair of colors depends on which color is the | foreground and which is the background, so just comparing the | difference in "T" won't be enough now? | refulgentis wrote: | re: HSLuv, I don't know much of it but I've heard it | mentioned several times, so it must be helpful. This | comment[1] goes into more detail, but TL;DR the core to me | seems to be having L* and whatever H and S measurement works | for you, so I'd say HSLuv is spot on. | | I love APCA, Myndex (Andrew Somers, APCA author) was an | absolute inspiration to me for getting interested in color, I | wouldn't have known 1% of what I do or have done 1% of it | without his deep dives showing how to work in this space. | | It has an interesting effect on the community in that the | general language around it is read too strongly: it is an | important and crucial advance, getting science-backed data on | exactly the right contrast in multiple scenarios is _absurdly | important_ in a world of Ambient Computing(tm). | | The mistake that's made is reading into this too heavily as | _the previous spec or WCAG aren't based on data at all_. | | Yes, the calculation is based on absurd stuff -- 100 nit | monitor, you can't track down a source for every bit of it. | | But there's a _whole separate field_ that spatial frequency | comes from and it is _very_ well known and understood. | | Most importantly: the APCA predictions for contrast were only | about 5-7 L* different last time I checked. This is | important, thats a _lot_ --- but it also isn't a lot, that's | on a scale of 100. What we have today isn't completely | utterly alienly different and broken. | | Comparing the difference in T will be enough as long as the | luminance measure APCA relies on is monotonic to RGB (HSL's | lightness is hilarious, its the max of RGB minus min of RGB) | | [1] https://news.ycombinator.com/item?id=37314700 | pohl wrote: | Are there any good resources to learn how to use it? | | Let's say that I knew that I needed 6 colors in an application: | a red, a yellow, a blue, an orange, a green, and a purple -- | that is, the 3 primary colors and the 3 secondary colors. | Finally, say I didn't care much about which colors I arrived | at, but that I would like to try to equalize for brightness | (maybe saturation, too?) while being somewhat identifiable as | those 6 colors. | | I'm sure there's no exact answer, since Yellow is very bright | and blue is very dark, so I'd probably have to arrive something | approximate. | | How would I do that? Are there tools or tutorials for learning | such a thing? | refulgentis wrote: | That's the sales pitch for HCT, you get to claim you can | normalize along C to get similar colorfulness, or normalize | along T to get similar lightness (with the bonus of T getting | you the WCAG/a11y compatability). And why is yours right? | Because you used the latest and greatest color science for H | (hue) and C (chroma / saturation) and great color science for | T, matches WCAG. | | This isn't quite as helpful as it might sound, i.e. it can't | settle all debates, then design needs to become playing | within the system: ex. lets say you land at you want mostly | pastels. You could settle on lightness 90 -- get nice | yellows, teals, but...no red!?!? It turns out light red is | pink. And then on top of it, the yellows and teals | colorfulness can get crazy high: lets say 80. But red can | only get to 16, this breathy pink. | | This can be extremely aggravating, ex. yellow. It just | doesn't contrast with white, there's absolutely no way to get | any a11y number to tell you that a nice bright yellow can be | a button in light mode. But the system is empowering in that | you know you can't do any better on the implementation, and | you can trust the #s. | drakmaniso wrote: | Is there a public specification somewhere? The only thing I | could find is the code in the "material-color-utilities" on | github. | | Looking at the code, it seems the computations are much more | involved than OkLab, especially in the HCT -> RGB direction? | refulgentis wrote: | 100%, I used to joke the reason for this is its the "nobody | got fired for buying IBM" color system. | | #1 it takes the most modern widely accepted space in color | science, CAM16 for hue and colorfulness. CAM16 is relatively | incredibly complex, about 500 lines of code. #2 it maps it to | L*. | | #1 is because nobody gets fired for basing Google's color | system on CAM16. #2 is for WCAG. | | There was continually interesting conversations on what | exactly the name of the space was and whether it represented | a new color space that precluded more formalization of it, | the code ended up being the spec as it were. I did get a blog | post out: https://material.io/blog/science-of-color-design | AtNightWeCode wrote: | I created a game editor some years ago that had several HSL | alternatives including one contrast corrected bar and two | different light/shadow corrected bars. I used it mostly the other | way around though. Creating suggestive backgrounds with many | colors but with low contrast between them. | jjcm wrote: | I had the pleasure of meeting Eugene during Figma's Config | conference where he gave a ton of similar pro tips to designers. | Really a kind dude who truly has a passion for design and | accessibility. | | One thing I'll give a big shout out to in this article is APCA, | which will likely be a successor to WCAG 2's color contrast | algorithm. We used it internally here at Figma for our own | accessibility revamp for a final result that ended up much better | than it would have otherwise. Eugene provides some great examples | of when WCAG 2 fails, and we were continually running into those. | | That really brings me to my main piece of advice here: color is | really hard to get right - any tool you have can help you along | the way, but that said at some point you also have to trust your | eye. At the end of the day, all of these tools are just providing | some mathematical approximation for how your eye sees color. Your | eye is the final source of truth, not the algorithms. If you're | encountering areas where a tool or an algorithm aren't providing | you the right result, switch it around or fall back to basics. | seanwilson wrote: | > We used it internally here at Figma for our own accessibility | revamp for a final result that ended up much better than it | would have otherwise. | | Can you go into more detail here? Do you mean you use only APCA | and ignore what the WCAG 2 color contrast algorithm flags as | insufficient contrast? | jjcm wrote: | We use a balance of both. All of our body text is WCAG 2 | compliant - we wanted to ensure the primary usability of the | app is accessible towards the current standard. Where we | diverge is when combining saturated colors with desaturated | colors for foregrounds/backgrounds, which WCAG has some | trouble with. Some good examples of this are here: | https://twitter.com/DanHollick/status/1417895151003865090 | | This was relevant for our Figma's brand color, as prior to | our accessibility pass it wasn't compliant when combined with | white text for neither WCAG 2 nor APCA. We modified it | slightly to be #0D99FF, which was close enough to the | original brand color it didn't feel like a rebrand, while | still allowing us a passing APCA color contrasts score. | Notably though it doesn't pass WCAG 2, but you'll see from | this example the contrast is significant: https://image.non.i | o/15ed7558-5337-40fc-9e5b-2392087cc35b.we... | | That's not to say though that APCA is a perfect solution. | Interestingly, should APCA be adopted as the WCAG standard, | Figma and Hackernews both would fail contrast guidelines. | Part of APCA is a guideline for what font size/weight | combinations are allowed for any color contrast level. Even | with #000 and #fff as your colors, fonts under 11.5px are not | allowed (Figma uses 11px for much of the UI). For many expert | tools, 11px fonts are fairly standard due to the amount of UI | you have to have on screen - other examples here where this | is common are tools such as Blender or CAD software. | Hackernews uses black 12px font for the main body text | against a #f6f6ef background, which according to APCA | requires a minimum 15px font at normal font weight. This is a | perfect example of my earlier point that you have to use a | collection of tools at the end of the day to get to a correct | solution, rather than using a single tool or algorithm as a | dogmatic source of truth. You can create poorly accessible | solutions with WCAG and bad user experiences with APCA. | seanwilson wrote: | Thanks! | | > All of our body text is WCAG 2 compliant - we wanted to | ensure the primary usability of the app is accessible | towards the current standard. Where we diverge is when | combining saturated colors with desaturated colors for | foregrounds/backgrounds, which WCAG has some trouble with. | | Why not use APCA only though? Isn't it hard to keep track | of where you're following WCAG 2 for some colors and APAC | for others? | | > Even with #000 and #fff as your colors, fonts under | 11.5px are not allowed (Figma uses 11px for much of the | UI). For many expert tools, 11px fonts are fairly standard | due to the amount of UI you have to have on screen - other | examples here where this is common are tools such as | Blender or CAD software. | | I've encountered this pain too. It feels like the only | solution is the user configures their browser/OS to say | what they find acceptable so the UI can adapt to that, | rather than the default UI for everyone having to conform | to the most restrictive rules. | | > Hackernews uses black 12px font for the main body text | against a #f6f6ef background, which according to APCA | requires a minimum 15px font at normal font weight. | | Do you have any tricks for conforming to APCA when you need | to keep track of font weight, font size, and background vs | foreground color while designing/developing UIs? There's | style guides for reference, auditing tools, and potential | for automation (e.g. CSS variables that pick a contrasting | color for you), but curious if you had some thoughts given | it can be a lot to manage. | | > This was relevant for our Figma's brand color, as prior | to our accessibility pass it wasn't compliant when combined | with white text for neither WCAG 2 nor APCA. We modified it | slightly to be #0D99FF, which was close enough to the | original brand color it didn't feel like a rebrand, while | still allowing us a passing APCA color contrasts score. | | I'm curious how WCAG managed to miss this one during | standardisation given how common blue is for a brand color. | I wonder how many brands this has impacted. | jjcm wrote: | Do you have any tricks for conforming to APCA when you | need to keep track of font weight, font size, and | background vs foreground color while designing/developing | UIs? | | I don't, as for us we set our goal to have a contrast of | >60 _regardless of font size /weight_. Since we already | weren't compliant with our 11px font sizes, we chose to | use the contrast guidelines without the font size | guidelines. Agree it's a lot to manage - we didn't find a | great way to solve for this, which is why we mixed and | matched WCAG, APCA, and general UX principles rather than | relying on a single set of rules. | seanwilson wrote: | > I don't, as for us we set our goal to have a contrast | of >60 regardless of font size/weight. | | That's my general strategy too e.g. I'd rather pick a | single blue that always works for large and small text, | rather than having to keep track of and workaround which | shade to use for different sizes. | | I do wonder if they'll make some compromises to APCA in | this area to make it easier to apply before it's | standardised, as there's much more to track now compared | to WCAG. | zokier wrote: | In addition to missing oklab/oklch, the article is also wrong in | claiming web/css supports only srgb; css color() function | supports many colorspaces | efedorenko wrote: | Author here. The article was published 2 years ago, and when I | started working on the tool the spec for OkLCH didn't even come | out yet (late Dec 2020). Today I'd choose OkLCH over LCH as it | solves a few problems with it. | whoopsie wrote: | Personally worked with oklab and several other LAB spaces. | Oklab is fantastic for cutting into simple computations! | altairprime wrote: | Note that CSS Color Module Level 4 is still at the | Recommendation _Draft_ stage, and "supports" here is more | accurately stated as "supports, except for Microsoft Edge | (chromium) and Pale Moon (goanna)": | | https://test.csswg.org/harness/results/css-color-4_dev/group... | jcranmer wrote: | https://caniuse.com/css-lch-lab is probably a better resource | for support, and it notes that the main layout engines all | supported it earlier this year, and gives an estimated global | support rate of ~85%. | altairprime wrote: | sRGB/ProPhoto/DCI-P3 and HSL/HSLuv/Lch/Lab/OKLab are two | distinct sets of functionality. The former defines the | colorspaces (such as sRGB), the latter defines colors | within a given colorspace. To see a visual demo of this, | visit https://oklch.com/#70,0.1,165,100 and enable Show P3 | and Show Rec2020; two additional thin white lines will be | added showing the colorspace truncation points for the | OKLCH color (70% 0.1 165). | | https://caniuse.com/css-color-function tracks support for | the colorspaces, complementing the above link for Lch/Lab, | and showing essentially the same current data: All desktop | and the two top mobile browsers now support it. | | I'm really glad to see this. Thank you for sharing. That | makes me much more optimistic about what will come of this. | | (Note that all browsers are currently failing LCH and OKLCH | tests 9 and 10, and Firefox failing 15% of the CSS Color v4 | parsing tests, at https://wpt.fyi/results/css/css- | color?label=experimental&lab... -- but this is still a page | full of great success for CSS Color v4! So happy.) | dmarinus wrote: | I use HSL to set the color of my keyboard leds during the day. | For that purpose it's really great because it gives nice bright | colors contrary to cielab which give many dull colors (like | visible in the blog post). | vladstudio wrote: | if you're interested in the topic, a nice article was just | published in Smashing Magazine about Oklch: | | https://www.smashingmagazine.com/2023/08/oklch-color-spaces-... | pbhjpbhj wrote: | So, having just read this about Oklch, it strikes me that I [as | a designer] would want to alter the chroma according to the | ability of the display -- which they show the possibility of at | the end, using @media: @media (color-gamut: | p3){ .some-class { color: oklch(70.9% | 0.195 47.025);}} | | Surely this is the only real option, otherwise you're risking | distributing colours across a gamut that the display simply | won't render? I'd assume that's going to result in non-linear | fades, poor colour distinction, and such like? | hoseja wrote: | A truly correct color system would precisely describe the | spectrum of whatever color you're communicating, interpreting the | mangling eyeballs do to it left as an exercise to the reader. | adrian_b wrote: | That would be too expensive, because the spectrum would need to | be divided in much more channels than the 3 channels that are | enough when they are matched to the average human vision. | | High-resolution spectra (like needed for many scientific | applications) can be recorded only for images with few pixels | or for images with many pixels but with long delays between | successive images (because they are obtained by mechanical | scanning of the pixels), so you must accept a trade-off between | spectral resolution and either spatial resolution or temporal | resolution. | ska wrote: | If you want to do physics, you can do physics. | | That's not what color in this context actually is though. | planede wrote: | A spectrum describes the physical properties of light, color | describes the perception. Colorspaces are about quantifying the | perception of light as observed by most human beings. | PaulHoule wrote: | You run into interesting problems of metamerism | | https://en.wikipedia.org/wiki/Metamerism_(color) | | particularly metameric failure. For instance there are those | RGB lights like Phillips Hue and Lifx which would render | colors in the environment better if the colors were wideband | but would work better at rendering strong saturated colors | (like a display) if the R, G and B were laser-like | monochromats. | | There was this system for stereo films | | https://en.wikipedia.org/wiki/Dolby_3D | | that exploited metamerism by using 6 monochromats and very | glasses with narrowband filters that route 3 of them to each | eye. These were very high performance but were crazy | expensive (needed theft protection) and got trashed in the | marketplace by Lifton's RealD system based on circular | polarization even though RealD doesn't perform quite as well. | SirMaster wrote: | The band filtering glasses type 3D is used today in a lot | of theme park rides, like Avatar Flight of Passage for | example. | | https://variety.com/2012/film/news/transformers-ride- | pushes-... | PaulHoule wrote: | These were withdrawn from the market for Cinema in 2018 | according to Dolby | | https://professional.dolby.com/product/dolby-cinema- | imaging-... | | but there might still be some theme park rides still | using it. | SirMaster wrote: | In my experience many theme park ride seem to use them. | | I have looked at the glasses for rides like Transformers | in my link, and Avatar and Harry Potter Gringotts and | none of the lenses were polarized to my quick tests. | zX41ZdbW wrote: | The best article I've seen on this topic is | https://www.handprint.com/HP/WCL/color1.html | | Warning: super-long read, you will spend a day. | | You'll be surprised, but I use some thoughts from this article in | ClickHouse to color logs nicely: | https://github.com/ClickHouse/ClickHouse/blob/master/base/ba... | high_priest wrote: | I can't find anything specific on how these ANSI colors could | be converted to rgb, other than that they are actually just | color requests and are dependent on terminal configuration. | | Could you share what are your RGB expectations for every | message type you have set in your code? | chiefalchemist wrote: | I'm not a trained designer, and for that reason I would never | attempt to design a color system with six different colors, and | then shades / tones within each. Is that not overkill and | unnecessary? | | Mind you, I appreciate the suggestion to avoid Tool X (i.e., in | this case HSL) but I can't help but believe they did themselves a | disservice by choosing a six-color color system to begin with. In | my eyes, mind and heart accessiblity and simplicity go hand in | hand. | | Fact: There's not a user in the world who wakes up and thinks "My | day will be made if and only if I visit a site with an overly | complicated color system." | PaulHoule wrote: | Once you have a color system, however, it can be very easy to | work within it an maintain the visual "brand promise". | chiefalchemist wrote: | I understand and appreciate brand, identity, marketing, and | so on. And based on that experience, I can say with | confidence: if your brand needs six colors and shades / tones | within each to make a "promise" you need to so rethinking and | redesigning. No "promise" that complicated is going to stick. | PaulHoule wrote: | The very conventional search form for the site I work on | has six colors that are obvious including the white | background. | | I am looking at a picture of an anime character (Kizuna Ai) | on my wall and it has two shades of five colors plus one | shade of blue used in the background for a total of 11 | shades. | kyleyeats wrote: | It's more like: You're going to need six simple colors | eventually, and when you do you want versions that work | with your brand colors. | karaterobot wrote: | You began by saying you aren't a trained designer, and | ended by telling most of the industry it is doing it wrong. | You've come a long way in a short time, congratulations! | chiefalchemist wrote: | Yes and no, but mostly no :) | | As a user of their "doing it right" - and feeling under- | satisfied too often - maybe they should be listening | more, and imposing their will on the rest of us less? Or | do I roll over and play brain dead because I'm told to do | so? | | I happen to believe less is more. And I've seen that work | well / better often enough. If mo' mo' mo' is so great, | why am I not seeing it and feeling it? | seanwilson wrote: | > I'm not a trained designer, and for that reason I would never | attempt to design a color system with six different colors, and | then shades / tones within each. Is that not overkill and | unnecessary? | | At a minimum, most web UIs grow to need: | | - Several greys (borders, headings, body text, boxes), a | primary/accent color (to show what's clickable), green (to show | success), red (for danger) and orange/yellow (for warning). | | - If you then want to show success/danger/warning | alerts/badges/icons/buttons, you'll usually want extra shades | of each for the borders/background/headings/text. | | - For buttons, you'll usually want shades of at least your | primary color for the background of each | normal/hover/clicked/disabled state too. | | - At that stage, you may as well have shades/tones ready for | the other colors in case you need them in the future so you | don't have to keep coming back to it. You could get by for a | while by generating new color variants from existing colors | with shortcuts like using transparency or contrast filters, but | the feel/branding of these probably won't be ideal compared to | more designed palettes. | | - From a light theme, you'll need to tweak the colors to get a | dark theme, usually reducing saturation as the colors become | too bright on a dark background. | | You can get pretty far with a restricted palette though e.g. | https://design-system.service.gov.uk/styles/colour/ and | https://getbootstrap.com/docs/4.0/utilities/colors/. Or use an | existing large palette like | https://www.ibm.com/design/language/color/, https://www.radix- | ui.com/colors or https://designsystem.digital.gov/design- | tokens/color/system-... (these ones have nice rules about which | colors contrast with others). | chiefalchemist wrote: | Yes, but do they grow because they can? Or do they grow | because they should? | | Put another way, how many users are going to understand ALL | those shades and subtle signals in a don't-make-me-think | (i.e., Steve Krug) sort of way? | | And how accessible are all those (too often) lower contrast | combos? | | I appreciate the finer points of your answer but it still | feels to me like designers are imposing their form-over- | function will on the users, and shouldn't we be past that at | this point? | | That is, ultimately, was HSL The Problem? Or was is more | guilt by being in the wrong place, used in the wrong way, at | the wrong time? | seanwilson wrote: | > Yes, but do they grow because they can? Or do they grow | because they should? | | So see Bootstrap's alerts for example (not known for being | overly flashy): | | https://getbootstrap.com/docs/5.0/components/alerts/ | | They've got primary, secondary, warning, danger and info | and alerts. Each one has a unique background, border and | text color, and the text contrast meets accessibility | standards. So that's 15 colors just there. | | Alerts like this are super common for any UI with forms. | You could simplify each alert to use only one or two colors | (which puts limits how you can make them look), but do you | think this example is over designed as is? | | > Put another way, how many users are going to understand | ALL those shades and subtle signals in a don't-make-me- | think (i.e., Steve Krug) sort of way? | | You'd assume the user can tell the danger color from info, | but the different shades of the danger color wouldn't have | a different meaning except for emphasis and to help with | the information hierarchy. Even if your UI was greyscale, | you'd want different shades to help here too. | | Can you point to a UI you like? How many colors and shades | does it have? | chiefalchemist wrote: | My understanding is color alone is not enough as a signal | for alerts. There are enough people who have issues with | color differentiation that color isn't enough. So if we | presume this to be true - and it is :) - well now we've | add all these colors to "the brand" *and* also have too | much confidence in what they can accomplish for all | users. | | Look. I'm not saying there's absolute right or wrong. But | I do believe there's enough myths and false gods kicking | around that someone needs to stand up and say, "Wait a | minute..." I'm that guy today. I'm that person. | PaulHoule wrote: | Nice! | | I'd point out though that with ordinary display and print | systems, saturated reds and blues really are darker than greens. | The exact formula depends on your color space but | Grayscale = 0.299R + 0.587G + 0.114B [1] | | is commonly quoted (I think for sRGB) and in that case the | brightest pure red is about 30% bright and the brightest pure | blue is 11% which makes "bright red" an oxymoron in most cases. | | You can certainly use those colors but they are always going to | be dark. Simply applying contrast rules will make your color | choices accessible but if you want to make something accessible | and that look good the techniques in that article will make you a | winner. | | For that matter, saturated screen greens are nowhere near as | saturated as is possible but are more saturated than most greens | you see in real life: I make red-cyan stereograms | | https://en.wikipedia.org/wiki/Anaglyph_3D | | and one rule of thumb is that trees and grass look great in | stereograms because even though they are green, they actually | have a lot of red so the balance between the channels is good so | you get good stereo _and_ good color. | | [1] https://www.dynamsoft.com/blog/insights/image- | processing/ima... | dylan604 wrote: | This brings back thoughts of the NTSC days and broadcast safe | limits, and the horrible time of clients that loved loved loved | red. Explaining to them how the beautiful red artwork will be | anything but beautiful on TV was never fun, especially if they | wanted it for broadcast. Even when it wasn't for broadcast, an | illegal red could still be seen frames later, and would bleed | like it just had its throat slit. | LocalH wrote: | Red is still a particularly hard color to accurately | represent, just not as hard as it used to be. The bleeding | and chroma crawl that is most visible in NTSC red, has been | replaced with at best half chroma resolution, and depending | on how the viewer's decoder works, red edges may be | especially harsh-looking. | | It's definitely better than it used to be, though. | adrian_b wrote: | The better monitors can be reconfigured to use the DCI-P3 | primary colors instead of the default Rec. 709 primary | colors (a.k.a. sRGB primaries). | | (sRGB combines the Rec. 709 primaries with a certain | nonlinear transfer function, while Display P3 combines the | DCI-P3 primaries with the sRGB nonlinear transfer function | and with the PAL/SECAM white, which is also used by Rec. | 709 and sRGB). | | With the DCI-P3 primaries, it is very noticeable that the | red is much better, allowing the displaying of reddish | colors that are simultaneously more saturated and brighter | than what can be achieved with the Rec. 709 red. | | While DCI-P3 also has a better green than Rec. 709, there | the improvement is much less obvious than in the red area. | PaulHoule wrote: | The monitor has a set of primaries that doesn't change | but the monitor _can_ treat R, G and B signals as if they | are in a particular color space with certain primaries | and do the best that it can to simulate the appearance | specified in the signal. | adrian_b wrote: | For most monitors, as a user you cannot know which are | the true colors of the pixels of the screen and this is | completely irrelevant. | | What matters is which are the colors that will be | reproduced on the display when you send the digital codes | corresponding to pure red, green and blue, through the | DisplayPort or HDMI interfaces of the monitor. | | All the good monitors have a menu for the selection of | the color space that will be used by DisplayPort and | HDMI, and the menu will typically present a choice | between sRGB and Display P3 or DCI-P3. Even when in the | menu it is written DCI-P3, what is meant is Display P3, | i.e. the menu changes only the primaries, without | changing the white or the nonlinear transfer function. | | All monitors will process the digital codes corresponding | to standard color spaces to generate the appropriate | values needed to command their specific pixels in order | to reproduce a color as close as possible to what is | specified by the standard color space. | | The cheapest monitors are able to display only a color | space close to Rec. 709 a.k.a. sRGB, those of medium | price are normally able to display a color space close to | DCI-P3 and a few very expensive monitors and many | expensive TV-sets, which use either quantum dots or OLED, | are able to display a larger fraction of the Rec. 2020 | color space (laser projectors can display the complete | Rec. 2020 color space). | | Even when a monitor can display bright and saturated | reds, as long as it remains in the default configuration | of using sRGB over DisplayPort and HDMI, you cannot | command the monitor to display those colors. For that, | you have to switch the color space used by DisplayPort | and HDMI to a color space with a wider color gamut. | | Some monitors, typically those that are advertised to | support HDR, allow the use of the Rec. 2020 color space | over DisplayPort and HDMI, but most such monitors cannot | display the full Rec. 2020 color space, so the very | saturated colors will either be clipped to maximum | saturation or mapped to less saturated colors. | mrandish wrote: | As someone who also worked within the arcane limitations of | analog video, at both the broadcast and prosumer levels, | today's UHD video standards and colorspaces can be incredible | when correctly applied in a maximal high-end workflow such as | native 4k 10-bit HDR. | | Yet when I look at today's typical "top quality" live | broadcast content such as the 4K Super Bowl as delivered by | mass consumer distribution such as Comcast Xfinity (via their | latest high-end decoder box), it's a visual mess compared to | what the signal chain should be capable of delivering. | | Even though I have top notch viewing gear properly configured | and calibrated (with local video processing 'enhancements' | disabled), it looks terrible. Unfortunately, due to the | layers of compression, conversion and DRM slathered on the | signal before I receive it, it's extremely difficult to | analyze what's going wrong. All I can determine is that it is | a video feed being decompressed into a 4K-resolution, 4:2:2, | 60fps frame buffer. However, examining still frame sequences | reveals extensive motion, color and resolution artifacts. | | The net effect conveys a sense of "sharpness" in the | frequency domain at first glance but on critical viewing over | time it's a weird kind of digital abomination of macro- | blocked chroma splotches, lagged temporal artifacts and | bizarre over-saturation of primary hues. While some pre- | compressed streamed film content looks quite good when | delivered via a streaming service willing to devote | sufficient encoding time and delivery bitrate, it's still hit | and miss. Live broadcast content, especially high-motion | sports, is almost always a mess. We've come so far in | standards and specifications yet still have so far to go in | the actual delivered result to most households. | PaulHoule wrote: | Yes, the visual quality of a sports game can vary a lot and | is frequently a disappointment. I can get an ATSC 3 | multiplex from Syracuse and it is sad that it is not really | better than the ATSC 2 symbol. | mrandish wrote: | That's disappointing to hear because my current residence | came with a large digital-capable antenna installed in | the attic which I've never connected. When more local | stations in my market start ATSC 3 broadcasts next year I | was thinking of hooking up an OTA feed just to see if | it's better than the Comcast XFinity cable-delivered | mess. | | I don't even watch that much TV content but when I do, I | want it to not look like crap. It's frustrating because | I'm sure the four national broadcast networks and top | cable channels (eg ESPN, CNN, etc) are providing pristine | source feeds at their head-end distribution points which | look amazing. Is there even any meaningfully better- | quality alternative these days? Maybe some over-the-top | streaming provider of broadcast and cable channels who | actually delivers 4k sources with guaranteed high-quality | encoding and decent bitrates? If so, I'd cut the Comcast | cord even if it costs more. It's not like Comcast is | cheap but I also hate the idea of paying top dollar for | such a substandard product simply because there are no | better alternatives. | | BTW: I'd be delighted to learn of any viable US-based | content alternatives (eg streaming, direct satellite, | etc). Back in the analog SDTV days I had a C-Band sat | dish and the direct network feeds looked amazing in pure | 6 Mhz analog component compared to local cable and even | local OTA broadcast. | graedus wrote: | Interesting comment, thanks. Two questions out of | curiosity: | | > Even though I have top notch viewing gear properly | configured and calibrated | | Any chance you'd be willing to share a few details about | this? | | > While some pre-compressed streamed film content looks | quite good when delivered via a streaming service willing | to devote sufficient encoding time and delivery bitrate, | it's still hit and miss. | | Which streaming services are doing things right in your | view? | mrandish wrote: | > Any chance you'd be willing to share a few details | about this? | | I have several viewing devices in different rooms | including an LG C2 OLED, a high-end Samsung QLED and in | my dedicated, fully light-controlled home theater room a | native 4K 10-bit HDR+ laser projector and 150-inch | screen. Each of these displays has been professionally | calibrated. To objectively evaluate an input source these | days it's important to try multiple different display | technologies because flat screens can vary between OLED, | QLED, mini-LED, LCD and VA which all have different | trade-offs in contrast, peak brightness, viewing angles, | color spaces, gamma response curves, etc. And that's | before getting into various front projector technologies. | | Most consumer TVs these days come with a pile of post- | processing algorithms which claim to deliver various | "enhancements." In almost all cases you'll want to turn | these options off in the setup menus. For critical | viewing, objective calibration with a suitable | colorimeter is ideal, especially when considering HDR | sources which should be normalized to each display's | native capabilities in Nits. If you don't want to dive | down the rabbit hole of evaluating all this yourself | (which can admittedly get complex), I suggest the TV | reviews at https://www.rtings.com which are credible, | thorough and yet still relatively accessible to non- | experts. Unfortunately, RTings doesn't evaluate front | projectors. For that the best bet is an expert forum like | AV Science (https://www.avsforum.com). | | > Which streaming services are doing things right in your | view? | | Currently, I don't think there's any service I would say | is universally "doing it right." It still varies | depending on the individual piece of content. Amazon, | Netflix, AppleTV and even YouTube each have some | extremely well-encoded, high bitrate content. But I've | also seen examples on each service that aren't great. | | The highest-quality home source will typically be a UHD | Blu-Ray disc player. If you have such a player I highly | recommend the Spears and Munsil UHD Benchmark Discs | (https://spearsandmunsil.com/uhd-hdr-benchmark-2023/). | Just because a disc is UHD format doesn't mean the media | on it has been encoded correctly, from a high-fidelity | source and in appropriate quality. The Spears and Munsil | disc features a comprehensive suite of custom-designed | test signals and specially sourced demonstration content | identically encoded in HD, UHD, HDR, HDR10, HDR10+ and | DolbyVision, including moving-window split screens | allowing you to compare formats. It's extremely | impressive and, as a video engineering geek, I found it | fascinating to explore for hours on my various displays - | while my wife had zero interest in it :-). | dylan604 wrote: | Years ago when deciding to cut the cord, I had to convince | my roommate that an OTA DTV antenna would provide a better | image. We had clear line of sight to the broadcast towers, | so I knew it was a no brainer, but I'm in the video side of | things, and he's not. This makes him a great analog for the | vast majority of viewers. I set the inputs on the TV to the | same channel for the Comcast cable box and the OTA antenna, | and then A/B tested the inputs for him. Even he could see | how bad the image from cable came. Their push-a-button-get- | a-prize style one set of encoding settings for all content | will always mean their low bit rates look bad. | | My favorite cable box sports example was a PGA tournament | was showing a golfer putting on the green. The shot was an | extremely tight close up of the ball sitting there as the | golfer addressed the ball. All of the dimples in the ball | were clear, and every blade of grass was visible until the | golfer swung and made contact with the ball. As the camera | panned to follow, the ball went to this white roundish | shape with no detail and the grass went to this blurry | green smear again with no detail. As soon as the ball went | into the cup and the camera stopped moving, at least one | GOP later the grass snapped into full detail again. | | Their predictive model is tuned for low motion static | content because that's what 90%+ of their content is. Even | something like ESPN is now primarily talking heads of | people talking about sports rather than being sports. Any | sports show in replay and not live so who cares? Looking | back at crappy SD tape captures, it's obvious that anything | was better than nothing. Much like YouTube. People just | want something, doesn't have to be amazing. If it looks | like Picasso instead of Monet, they don't care as long as | their minds don't have to think | Aloha wrote: | I have absolutely blown people socks off with the quality | delivered OTA via ATSC, it looks so good. | dylan604 wrote: | And to think the US government gave anyone that wanted | one a free DTV antenna. By that point, pretty much nobody | used a terrestrial antenna any more, so a very few number | of people took them up on the offer. I can only imagine | cable companies being very please with that. | | Also, the signal was meant to have even more bandwidth. | When the broadcasters decided to bring out the fractional | channels, it didn't exactly fit the idea that Congress | had when allocating the frequencies. Yet another example | of how Congress can be behind the times in pretty much | everything. | [deleted] | sph wrote: | What about HSLuv? | | https://www.hsluv.org/ | tshaddox wrote: | HSLuv starts with a cylindrical representation of CIELUV which | also doesn't "fill the cylinder" in the chroma axis (this might | be what the article briefly refers to as "HCL or LCh(uv)"), and | then stretches its chroma so that you always get a 0-100% | chroma range regardless of hue and lightness. This might be | convenient because you can't accidentally represent impossible | colors, but you obviously lose perceptual chroma uniformity. | xmonkee wrote: | Oof, what a great article. Fucking saved. ___________________________________________________________________ (page generated 2023-08-29 23:00 UTC)