Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I was amazed by how bright this page could get, on both Macbook and iPhone — https://kidi.ng/wanna-see-a-whiter-white/ — and I want to figure out how to use this superwhite on my interactive tutorials. But as far as I can see, canvas, svg, and webgl can't access it.


Further info: https://prolost.com/blog/edr

What’s nuts is that this also works on displays without the ability to control luminosity on individual parts of the screen. The link you posted works on my 2020 11” iPad Pro, which has an LCD with no local dimming.

However, it slowly ramps up over a second or two, whereas my OLED iPhone (which can of course set luminosity per pixel) enters retina-searing mode immediately.


My iPhone X ramps up as well.


Even on 100% brightness, an iPhone Pro 13 shows the "White" text significantly brighter than the background white.

Some other interesting observations:

- If I zoom in, the over-100%-bright text fades until it blends in with the background. This is expected (OLEDs have higher peak brightness for small areas), but what isn't expected is that it seems to do it in discontinuous steps.

- If I go outside into full sunlight, the contrast between the page and text is lower. This is again an iPhone feature in action where "maximum brightness" is actually further boosted in bright conditions.

- The text takes a few seconds to reach maximum brightness. I expected it to start at full brightness and fade, but it seems to do the opposite...

I can understand why the notion programmers have that "color" is an RGB triple of 8-bit integers from 0 to 255 is so attractive. It's a simple mental model with no complexity. But to get the most out of modern displays, we have to abandon such childishly simple models. Each color channel will need to be 10 bit minimum, 16 if using linear light. Peak brightness becomes this complex many-faceted thing with per channel maximums, all-channel maximums, and variations based on both time and area!


The reason why it acts this way is because of oled heat, power and burn in limits. On a microled display such limits wouldn’t occur nearly as much. HDR color in programming will mostly just be a bigger color value. All the other stuff is display by display model specific. We have such variation in sdr displays too, and most programmers never really think about the color profile of the display either.


> Even on 100% brightness, an iPhone Pro 13 shows the "White" text significantly brighter than the background white.

Same with the new MBP.

The text does fade in over a second or two, and while that happens, I can notice the entire screen flicker ever so slightly. There's clearly some very impressively calibrated interplay between the LCD panel and the backlight going on.

> I can understand why the notion programmers have that "color" is an RGB triple of 8-bit integers from 0 to 255 is so attractive.

Most of the time when dealing with color, it's colors of UI elements. And those are assumed to be sRGB anyway.


> And those are assumed to be sRGB anyway.

You mean the 16 EGA colors, right? /s

But more seriously, I was hugely disappointed to see Microsoft unwind their wide-gamut and HDR GUI capabilities that they introduced as far back as Vista while simultaneously Apple is making wide-gamut (Display P3) and HDR standard across all of their devices.

Someone at Microsoft was forward thinking, and now some idiot is undoing that good work just when displays are catching up to the software capabilities.

Sooner or later, Windows will cap framerates at 60 Hz to make sure 120 Hz monitors don't deliver any visible benefit either...


The way Apple handles HDR clearly suggests that you aren't meant to use HDR colors in UIs. The mouse pointer has a pure white (#FFFFFF) outline, but when you put it over an HDR video, that outline appears grey. Then after you've closed the video, your vision needs some time to readjust back to the UI white level. The APIs (Metal and whatever videos are played through, VideoToolbox?) also suggest that it's for games and media content only.

Now, of course you could circumvent this and add retina-burning-bright controls to your app. Your users would probably hate you for doing this.

And regarding wide gamut, I'm not sure what kinds of benefits this brings to UIs either. It does make photos and videos feel more lifelike, especially when combined with HDR. But I've seen an extension to CSS that allows specifying wide-gamut colors, and you can also use them in native UIs (I've managed to do that in my aforementioned experiments https://news.ycombinator.com/item?id=30219169).

> wide-gamut and HDR GUI capabilities that they introduced as far back as Vista

Wow. That was quite the future proofing at the time when everyone was transitioning from CRTs, and LCDs of the time were noticeably crappier than CRTs.

The thing with Windows though is that it's really hard to get so many companies involved in the chain to agree on something like this. Apple has complete end-to-end control of both the hardware and the software/APIs which allows them to casually pull off this kind of stuff.


One aspect that I haven't seen considered is how useful increasing the brightness for folks who are disabled like myself. I have a rare eye condition where the amount of light omitted really matters to me. It's one reason why I look at nit brightness each year on phones and monitors. I can say it really helps the more light these devices can output and how it impacts my vision. It's why I try to upgrade more frequently.


How long before a plague of brighter-than-white ads, I wonder...


On my iPad mini 5th gen, the message and background appear identical at about 95% brightness.

I think it's pretty weird trying to get more than maximum brightness from an Apple device. I think it would be far more useful to get a spectrum of usable levels of lower than minimum brightness. Apple's maximum brightnesses have always been close or the brightest devices available, but Apple devices minimum brightnesses have always been way too bright with no reason for it.


I think if you zoom in whilst showing a corner of the viewport it works because the hdr videos are still in play but if you zoom so the corners are not visible it will fade out


Isn’t it fading because safari knows the HDR content in the corner is no longer on the screen?


For anybody like me not 'getting it', the for me at least on my m1 pro macbook pro needed to use this in Safari, chrome unfortunately wasn't showing the white text.


Same with Edge/Brave, however they all support HDR videos on Youtube, so I'm not sure what's the reason.

Additionally, the site claims it works (worked?) on 2020 MBA M1.


I have 2020 MBA M1 and it works on its internal screen if I use Safari. External SDR monitor doesn't show it. Chrome/Firefox don't show it.

There seems to be a strange bug in Safari. If I change the tab from/to that page, the mouse cursor jumps to the bottom left corner of the screen.


There seems to be a bug specific to safari, that's why it doesn't "work" on anything else.


By that logic, WebUSB is a bug specific to Blink-based browsers, since it doesn't work on anything else?


I don't understand. WebUSB seems to be a feature/standard.


WebUSB is yet another attempt at turning a hypertext viewer into an operating system. Documents were never meant to be Turing-complete.


HTML is far from the first document format that's turing complete. See Postscript, PowerPoint (No macros needed), Excel (No macros needed), PDF (if you count the embedded JS), Word (If you use macros), etc.


HDR works for the Photos app. Though it doesn’t work for social apps I’ve tried, I’ve seen similarly high brightness static images in Safari. If you can’t do it with canvas, I’m betting you can do it with a Blob object/blob: URL or even just a plain data: URL. You’ll also need to set the appropriate color space, otherwise it’ll default to sRGB. You very well may also need to use some non-web APIs (pick your binary interface of choice), if canvas clamps to 8-bit (which I’m too lazy to look up on mobile at this particular moment, but I’d be surprised if it doesn’t).


Nuts, I clicked the brightness toggle to bring it lower than 100% and it was already at 50%


This was serious cool to see




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: