-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Text blurry in popover when zoomed in Chrome #394
Comments
We deal with Chrome's subpixel font rendering issues constantly (particularly with icons) and the best attitude seems to be "oh well." You just can't win every half pixel. There's basically nothing we or Tether can do about the occasional render on the half-pixel, particularly if you're gonna go zooming the browser window. Sorry! |
@Binck360 does disabling the gpu acceleration fix things for you? The |
Experiencing the same problem that @styu mentions on Chrome 55 for Mac. Normal zoom level. It doesn't completely fix itself when I zoom out/in, but it does get a little better. |
I'm seeing this as well. Safari is more pronounced than Chrome. Latest versions. |
As suggested before I'd really like to solve this issue by extending the Popover API with
are you guys happy with this suggestion? If we can agree on this approach, then I'll create a PR |
@Binck360 I think it'd be better to add a |
Latest On Safari:On non-Retina display:On Retina display:On ChromeOn non-Retina display:On Retina display:On FirefoxOn non-Retina display:On Retina display:Latest @Binck360 LMK if I'm not capturing the severity of this issue to its full extent. But absent further information, this issue feels more like a |
@cmslewis agree with you. I personally can't repro now, and also don't see the issue with your latest screenshots. Sounds like another Chrome bug that was fixed, so I'm okay with deprioritizing |
Why deprioritize instead of close? |
This issue looks eminently closable so I'm going to do that. It'll always be here if we need it. 🚢 |
Still can't repro on Mac, but was able to repro on Windows with Chrome 57 at 100% zoom. I only saw the issue with popovers and tooltips. Table and dialogs, which also use I was able to fix it in the inspector by giving FWIW, Chrome on Mac doesn't require even values. Simple rounding is fine. |
Might be a Chrome bug still, looks like the Framer folks are hitting the same problem: https://bugs.chromium.org/p/chromium/issues/detail?id=740459 |
Just wondering if this has a recommended resolution, of if there are any better alternative React menu systems out there. I'm getting blurry text in Chrome, but only for this component, so I don't think it's just an issue with Chrome. Nothing else appears blurry. Maybe it's related to Tether/Popper? |
Definitely hitting this in Chrome 64 on Windows 10. I use a system-wide text zoom, as do many people these days because screen resolutions are getting higher and higher, so I don't think this can be dismissed with "Oh too bad, you use a zoom." As @rheinheimer mentioned, I see this only with Popover, so blaming it on Chrome doesn't feel right either. I first noticed the issue with the dropdown menu here: http://blueprintjs.com/docs/v2/#core/components/menu.dropdown-menus If I open the menu, the text is noticeably blurry: If I hover over "Settings", the text gets clear (well, clearer): |
Since this is still an issue (see #2391), I just want to note for others that my definitive solution (for 2.x) is to turn off gpuAcceleration in Popovers, like thus:
Short of somehow setting the global popper.defaults (not sure how to do this), it's easy enough to create wrapper components that inject these props each instance. Something like:
|
@rheinheimer thanks for the comment! awesome to know this can be resolved. you can quite easily change the default prop values (and the code should handle merging with a given Popover.defaultProps.modifiers = { computeStyle: { gpuAcceleration: false } }; |
I just want to (finally) confirm @giladgray's solution, and that you just need to set this once in your main js file. Edit: As far as I can tell, this also propagates to anything that takes popoverProps as an argument. |
Note that if a modifiers props is given to a |
I also have the same issue as @KagamiChan with Tooltips. @giladgray I recommend re-opening this issue until it can be definitively resolved. |
Yep. This solution does not work for |
My popover text is blurry at regular scale and becomes sharper when I zoom in actually. Running latest chrome on windows 10. |
@adidahiya Is there an update on this? I'm on Windows 10, latest Chrome and I'm seeing blurry text on the docs site with no zoom. |
hacked the popper code to get it to work. prepended if (gpuAcceleration && prefixedProperty) {
styles[prefixedProperty] = `translateZ(0) translate3d(${left}px, ${top}px, 0)`;
styles[sideA] = 0;
styles[sideB] = 0;
styles.willChange = 'transform';
} it's still a thing for popper... floating-ui/floating-ui#682 |
Any update or fix? |
Bug report
Steps to reproduce
Actual behavior
The text in the dropdown menu is blurry
Expected behavior
The text should be crisp
Discussion
I've done some research and found that Chrome just doesn't handle subpixel font rendering very well when GPU optimization is enabled. Tether uses the transform attribute to enable GPU optimization for positioning the element but it can be disabled by passing a config option:
There's some discussion here: shipshapecode/tether#163 but no definite solution. The simplest solution from a blueprint perspective is to expose the Tether gpu option on the popover component but one might also argue this is something Tether should fix.
What do you guys think?
The text was updated successfully, but these errors were encountered: