Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any "font smoothing" in Google Chrome?

I'm using google webfonts and they fine at super large font sizes, but at 18px, they look awful. I've read here and there that there are solutions for font smoothing, but I haven't found any where that explains it clearly and the few snippets I have found don't work at all.

My h4 looks awful in pretty much every browser, but Chrome is the worst. In Chrome, pretty much all of my fonts look terrible.

Can anyone point me in the right direction? Perhaps you know of a resource that explains this clearly? Thanks!

EXAMPLE SCREENSHOT #1

This screenshot shows the homepage of https://www.dartlang.org/, a programming language that is made by Google (so we can imply that this website is also build by Google) and uses Google Webfonts.

Screenshot shows Google Chrome on the left, Firefox/Internet Explorer on the right.:

google chrome on the left, firefox/internet explorer on the right

EXAMPLE SCREENSHOT #2

This screenshot shows a product info page on Adobe.com, using webfonts provided by Typekit. Adobe & Typekit are professionals when it comes to fonts.

Screenshot shows Google Chrome on the right, Firefox/Internet Explorer on the left:

google chrome on the left, firefox/internet explorer on the right

like image 359
imakeitpretty Avatar asked Jul 14 '12 21:07

imakeitpretty


People also ask

How do I make my font look smoother?

Double-click the Display icon. In the Display menu, click the Effects tab and check the box on smooth edges on-screen fonts. After that, click Apply and then click Ok.

Why are my fonts messed up in Chrome?

Go to advanced system settings. Click the settings button in the performance group. Check the box for "Smooth edges of screen fonts" Restart computer and your fonts will be back to normal.

Should I enable font smoothing?

The Font Smoothing feature is beneficial to a better font appearance but it requires extra processing, and in other words, it may decrease your computer performance. So, disabling Windows 10 Font Smoothing can increase your computer performance.


2 Answers

Status of the issue, June 2014: Fixed with Chrome 37

Finally, the Chrome team will release a fix for this issue with Chrome 37 which will be released to public in July 2014. See example comparison of current stable Chrome 35 and latest Chrome 37 (early development preview) here:

enter image description here

Status of the issue, December 2013

1.) There is NO proper solution when loading fonts via @import, <link href= or Google's webfont.js. The problem is that Chrome simply requests .woff files from Google's API which render horribly. Surprisingly all other font file types render beautifully. However, there are some CSS tricks that will "smoothen" the rendered font a little bit, you'll find the workaround(s) deeper in this answer.

2.) There IS a real solution for this when self-hosting the fonts, first posted by Jaime Fernandez in another answer on this Stackoverflow page, which fixes this issue by loading web fonts in a special order. I would feel bad to simply copy his excellent answer, so please have a look there. There is also an (unproven) solution that recommends using only TTF/OTF fonts as they are now supported by nearly all browsers.

3.) The Google Chrome developer team works on that issue. As there have been several huge changes in the rendering engine there's obviously something in progress.

I've written a large blog post on that issue, feel free to have a look: How to fix the ugly font rendering in Google Chrome

Reproduceable examples

See how the example from the initial question look today, in Chrome 29:

POSITIVE EXAMPLE:

Left: Firefox 23, right: Chrome 29

enter image description here

POSITIVE EXAMPLE:

Top: Firefox 23, bottom: Chrome 29

enter image description here

NEGATIVE EXAMPLE: Chrome 30

enter image description here

NEGATIVE EXAMPLE: Chrome 29

enter image description here

Solution

Fixing the above screenshot with -webkit-text-stroke:

enter image description here

First row is default, second has:

-webkit-text-stroke: 0.3px; 

Third row has:

-webkit-text-stroke: 0.6px; 

So, the way to fix those fonts is simply giving them

-webkit-text-stroke: 0.Xpx; 

or the RGBa syntax (by nezroy, found in the comments! Thanks!)

-webkit-text-stroke: 1px rgba(0,0,0,0.1) 

There's also an outdated possibility: Give the text a simple (fake) shadow:

text-shadow: #fff 0px 1px 1px; 

RGBa solution (found in Jasper Espejo's blog):

text-shadow: 0 0 1px rgba(51,51,51,0.2); 

I made a blog post on this:

If you want to be updated on this issue, have a look on the according blog post: How to fix the ugly font rendering in Google Chrome. I'll post news if there're news on this.

My original answer:

This is a big bug in Google Chrome and the Google Chrome Team does know about this, see the official bug report here. Currently, in May 2013, even 11 months after the bug was reported, it's not solved. It's a strange thing that the only browser that messes up Google Webfonts is Google's own browser Chrome (!). But there's a simple workaround that will fix the problem, please see below for the solution.

STATEMENT FROM GOOGLE CHROME DEVELOPMENT TEAM, MAY 2013

Official statement in the bug report comments:

Our Windows font rendering is actively being worked on. ... We hope to have something within a milestone or two that developers can start playing with. How fast it goes to stable is, as always, all about how fast we can root out and burn down any regressions.

like image 144
15 revs, 2 users 92% Avatar answered Sep 20 '22 04:09

15 revs, 2 users 92%


I had the same problem, and I found the solution in this post of Sam Goddard,

The solution if to defined the call to the font twice. First as it is recommended, to be used for all the browsers, and after a particular call only for Chrome with a special media query:

@font-face {   font-family: 'chunk-webfont';   src: url('../../includes/fonts/chunk-webfont.eot');   src: url('../../includes/fonts/chunk-webfont.eot?#iefix') format('eot'),   url('../../includes/fonts/chunk-webfont.woff') format('woff'),   url('../../includes/fonts/chunk-webfont.ttf') format('truetype'),   url('../../includes/fonts/chunk-webfont.svg') format('svg');   font-weight: normal;   font-style: normal; }  @media screen and (-webkit-min-device-pixel-ratio:0) {   @font-face {     font-family: 'chunk-webfont';     src: url('../../includes/fonts/chunk-webfont.svg') format('svg');   } } 

enter image description here

With this method the font will render good in all browsers. The only negative point that I found is that the font file is also downloaded twice.

You can find an spanish version of this article in my page

like image 45
Jaime Fernandez Avatar answered Sep 23 '22 04:09

Jaime Fernandez