font-smoothingでOSXでのフォントのレンダリング方法を調整する

## Non-standard　であることに注意すべき

> Non-standard
> **This feature is non-standard and is not on a standards track**. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth

MDNにもこう記載があるとおり、正式な仕様策定のトラックからは外れています。
影響範囲や、ブラウザごとに見た目が変わってしまう可能性について十分に理解した上で利用すべきです。

例えば「**このプロパティを設定すると文字が綺麗に見えるぞ！**」 ということではなく、現実に「**アンチエイリアス処理の問題でテキストが読みにくい環境がある**」「**複数の解像度(1ｘ/2x）の端末やモニタに対応しなければならない**」などの状況が起きている際に、明示的にアンチエイリアス処理を指定する目的で利用を考えるべきでしょう。


## 以下の記事のほうがより詳細にアンチエイリアス処理について解説しています :pray:

- [Webブラウザにおける文字のアンチエイリアスの現状の最適解 | dwango creators' blog（ドワンゴクリエイターズブログ）](http://creator.dwango.co.jp/14128.html)

上記の記事が大変詳細に解説されていて、かつ2017年の現状に沿った情報となっていたので是非参照することを推奨します :pray:

---

[Google+](https://plus.google.com/)久々にみてみたら、何かフォントがスッキリして見えてきれい。

<img src="https://qiita-image-store.s3.amazonaws.com/0/123/5d0e3cd5-62b6-b6db-66ae-2f3a1bc1b5eb.png" width="500" />

cssみてみると、以下のプロパティが指定されていた。

```scss
-webkit-font-smoothing: antialiased;
```

## -webkit-font-smoothing

このプロパティには以下の3つの値が用意されている。

```scss
-webkit-font-smoothing: none;
-webkit-font-smoothing: antialiased;
-webkit-font-smoothing: subpixel-antialiased; // Safari での Default値
```

どういうものかというと、
Safari（Webkit）向けに、フォントのレンダリングを調整するもので、特にアンチエイリアスのかけ方を変更できる。
__[追記](http://qiita.com/htomine/private/3086f30ca09adea2f8e0#1-2)に書いたけど、Firefox向けにもプロパティがあった。__


以下の記事がわかりやすかった。

- [-webkit-font-smoothing と Usability - メモログ](http://memolog.org/2013/08/-webkit-font-smoothing_and_usability.html)
- [-webkit-font-smoothing - MAXVOLTAR](http://maxvoltar.com/archive/-webkit-font-smoothing)

確かにChromeやSafariでフォントが少し太く表示され、気になることがある。
`font-weight`での指定とはまた別の挙動になるので、意図通りに表示されないこともあった。
また、animationなどの際に、ちらつきなどの要因になることもあるようだ。

- [Safari,Chromeで文字が太くなる現象の解消](http://qiita.com/artprojectteam/items/7bb1f042d163ebd109a1)

そういった場合に、このプロパティを変更することで問題が解消する可能性がある。

## 注意点など

ちなみに[最初にあげた記事](http://memolog.org/2013/08/-webkit-font-smoothing_and_usability.html)でも指摘されているが、
`antialiased` を設定するとスッキリとした見た目にはなるものの、文字の印象が弱めになり、背景色とのコントラスト等により見難くなる場合がある。

- [Please Stop "Fixing" Font Smoothing](http://www.usabilitypost.com/2012/11/05/stop-fixing-font-smoothing/)

_その他、何か注意点がありそうだったら教えていただきたい_

## 個人的な感想

個人的には、ソリッドでクリーンな印象になり、`font-weight: bold;` との差がはっきりしてメリハリが付く分、レイアウト上のブロックを認識しやすくなったと感じた。
Google+以外にも導入しているサイトを見かけるので、検討の余地はありそう。
ただし、Google+もサービス内では適用されているものの、Googleのサービス全体で採用されているわけではない。
例えば以下のページなど。

[Google+ で、もっとつながる。- Google+](http://www.google.com/intl/ja/+/learnmore/)

ユーザーごとに見やすいと感じるウェイトに差はありそうだし、前述のコントラストの問題もある。
綺麗に見えるならとりあえずつけとけ！とむやみに導入するのではなく、使いどころはよく考えたい。


## 例

分かりにくいかもだけど、Qiita:Teamのテキストを表示したもの。。

### subpixel-antialiased (Default)
![image](https://qiita-image-store.s3.amazonaws.com/0/123/029acaab-d5c5-323b-f8aa-9033c6696192.png)

### antialiased
ユーザー名、日付のあたりがわかりやすいだろうか。
![image](https://qiita-image-store.s3.amazonaws.com/0/123/92a2af00-858d-86ae-90ab-64a87bdada40.png)

### ON/OFFで比べるとわかりやすい
わかりにくいが字体が太く見えるのがDefault状態。
![font-smoothing.gif](https://qiita-image-store.s3.amazonaws.com/0/123/b898fe47-bccd-7806-92f7-b751f778820d.gif)

ヘッダ付近の「記事」と書いたリンクに注目してほしいが、くっきり見える方がDefault状態。
字体が細く見えるようになった結果、**視認しづらくなる**箇所が発生することもよくあるので注意が必要。

## 追記

Firefoxにもあった。

- [Better font-rendering on OSX | Maximilian Hoffmann](http://maximilianhoffmann.com/posts/better-font-rendering-on-osx)
- [857142 – Add CSS property for author control over antialiasing on Mac OS X, for cases where fonts appear too heavy](https://bugzilla.mozilla.org/show_bug.cgi?id=857142)


```scss
-moz-osx-font-smoothing: auto | grayscale // Firefox
```

`grayscale` が -webkit版の `antialiased` に対応するものみたい。


[font-smooth - CSS | MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth)