はじめに・・
Noto Sansをgoogleからダウンロードするたびに・・名称が変わって・・よくわからないから・・
調べてみた・・・
Noto Sansとは
世界中のコンピューターから表示されない文字をなくすために、AdobeがGoogleと共同開発したフォント
書体によって白い四角□マーク表示されることはtofu(豆腐)でno more tofu(ノー・モア・トーフ)でnotoだそうです。
Adobeでは、源ノ角ゴシックという名前...
世界中の言語が入っているので、Webでは、日本語のみに絞らないと厳しい・・・Noto Sans JPは違います..
しらべてみた。。
名称の種類Noto Sans Japanese、Noto Sans CJK JP、Noto Sans JP。。。
Noto Sans Japanese
https://fonts.google.com/earlyaccess#Noto+Sans+Japanese
CSS呼び出し方法
<link rel="stylesheet" href="fonts.googleapis.com/earlyaccess/notosansjapanese.css">
CSSの一部
@font-face {
font-family: 'Noto Sans Japanese';
font-style: normal;
font-weight: 100;
src: url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Thin.woff2) format('woff2'),
url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Thin.woff) format('woff'),
url(//fonts.gstatic.com/ea/notosansjapanese/v6/NotoSansJP-Thin.otf) format('opentype');
}
otfファイルのサイズとファイル名 1つ約2M
2,358,412 NotoSansJP-Black.otf 900
2,256,108 NotoSansJP-Bold.otf 700
2,176,680 NotoSansJP-DemiLight.otf 600
2,172,484 NotoSansJP-Light.otf 300
2,187,728 NotoSansJP-Medium.otf 500
2,182,944 NotoSansJP-Regular.otf 400
2,097,776 NotoSansJP-Thin.otf 100
FontViewerPlusで中身を見てみた。。
FontViewerPlusとは、未インストールのフォントも閲覧できる、フォント閲覧ソフトウェアです。
http://marius.main.jp/software/
各国のASCIIコードは入っている状態で、漢字の部分は日本語のみ有効
反映が変わりやすいように、Boldで見ています。太字は対応文字です。
Noto Sans CJK JP
CJKは中国・日本・韓国が梱包されていることを示し、JPとあるものは、日本語が優先されるらしいです。
3言語分あるのでファイルサイズは大きいです。
現在は、google fontからダウンロードできないので
すでにダウンロード先がないので、下記からNoto Sans CJK JPのサブセットの中のsrcから見てみる
https://github.com/ixkaito/NotoSansJP-subset/
上記は、Noto Sans CJK JPから日本語のみ取り出したものです。
サブセットされた、subsetフォルダー内は、第1水準、第2水準、第3水準一部、NEC文字で常用漢字のみです。
すべて入っていないので注意が必要です。
NotoSansJP-subsetの中に、日本語だけ切り出す前の元ファイルがあるのでそちらで確認
srcフォルダー内
otfファイルのサイズとファイル名 1つ約16M
17,339,212 NotoSansCJKjp-Black.otf
16,998,140 NotoSansCJKjp-Bold.otf
16,368,004 NotoSansCJKjp-DemiLight.otf
16,244,028 NotoSansCJKjp-Light.otf
16,504,512 NotoSansCJKjp-Medium.otf
16,427,228 NotoSansCJKjp-Regular.otf
15,154,292 NotoSansCJKjp-Thin.otf
Noto Sans JP
現在は、表記がNoto Sans Japanese・・・・
DemiLight 600はなし・・
ダウンロード版とunicode-rangeで複数のフォントファイルで別々にCSS定義されたものがあり。これは、unicode-rangeで指定されたウェブページで使用している文字があるものだけ、読み込みされます。
https://fonts.google.com/noto/specimen/Noto+Sans+JP
otfファイルのサイズとファイル名 1つ約4M
4,896,876 NotoSansJP-Black.otf
4,691,408 NotoSansJP-Bold.otf
4,513,776 NotoSansJP-Light.otf
4,564,460 NotoSansJP-Medium.otf
4,548,208 NotoSansJP-Regular.otf
4,243,532 NotoSansJP-Thin.otf
上記のファイルがunicode-range毎にファイルが分割されている分、軽量?!
CSS呼び出し方法
<link rel="stylesheet" href="https://fonts.googleapis.com/earlyaccess/notosansjp.css">
CSSの一部
こちらはすべてのウェイトがすべて含まれています。
/* [0] */
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 100;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F6ofjtqLzI2JPCgQBnw7HFQoggPkENvl4B0ZLgOquiXidBa3qHiDcp2RQ.0.woff2) format('woff2');
unicode-range: U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4;
}
/* [1] */
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 100;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F6ofjtqLzI2JPCgQBnw7HFQoggPkENvl4B0ZLgOquiXidBa3qHiDcp2RQ.1.woff2) format('woff2');
unicode-range: U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8;
}
別の呼び出し Ver1
引数指定でウェイトなど指定でき、ブラウザー判定で適切なフォントを選択します。
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+JP:100;300;400;500;700;900&display=" rel="stylesheet">
wght@はありません。
最近の・・Ver2
引数指定でウェイトなど指定でき、ブラウザー判定で適切なフォントを選択します。
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=" rel="stylesheet">
これはウェイトはフルで読んでいます。
v1 v2で使える引数&text=
これは使用する文字だけ取り込めます。
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+JP:100&display=swap&text=使用する文字" rel="stylesheet">
&subset=japaneseまれにこのオプション見ますが使用しているファイル名は変わりませんでした・・・Ver1、Ver2ともに
notosansjp.cssで呼び出す場合、すべてのウェイトがすべて呼び出しされますが、family=Noto+Sans+JPで呼び出しする場合では参照するファイルは同じでした。
wght@など、引数によって、ウェイトなどの呼び出しが可変してファイルサイズが異なります。
Ver1、Ver2の分割ファイル名は微妙に違います。。。
display=swapとすることで font-display: swap;をつけることができます。
フォントの拡張子
.ttf TrueTypeフォント otfと同様
.eot Embedded OpenTypeフォント IE6以降 IEのみ
.otf OpenTypeフォント IE6~8非対応 IE9からIE11* ios4.2以降 andorid 2.2以降
.woff Web Open Font Format IE6~8非対応、IE9からIE11 ios5以降 andorid 4.4以降
.woff2 WOFF File Format 2.0 IE未対応 ios10以降 andorid105以降
.svg IE6~8非対応、IE9からIE11* ios3.2以降 andorid4.4以降
font-display:swap IE非対応 ios11.3以降 andorid76
rel="preload" IE非対応 ios11.3以降 andorid76 Firefox非対応
*は制限あり
下記をIE5-10まで呼び出しした場合下記が割り当てされました。
こちらの呼び出しはgoolge側でブラウザー判定してeot、woff2を判定してくれるようです。ver1 ver2で異なります・・
https://fonts.googleapis.com/css2?family=Noto+Sans+JP
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F62fjtqLzI2JPCgQBnw7HFYwQgL.eot);
}
IEではunicode-rangeが非対応のでダイレクトでwoff,eotが読み込みされます。
IE11で呼び出し
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 100;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F6ofjtqLzI2JPCgQBnw7HFQoggJ.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 300;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F6pfjtqLzI2JPCgQBnw7HFQaioq0Q.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 400;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F62fjtqLzI2JPCgQBnw7HFoxQ.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 500;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F6pfjtqLzI2JPCgQBnw7HFQMisq0Q.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 700;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F6pfjtqLzI2JPCgQBnw7HFQei0q0Q.woff) format('woff');
}
@font-face {
font-family: 'Noto Sans JP';
font-style: normal;
font-weight: 900;
src: url(https://fonts.gstatic.com/s/notosansjp/v42/-F6pfjtqLzI2JPCgQBnw7HFQQi8q0Q.woff) format('woff');
}
v1 v2での分割したフォントファイル、CSSは下記から落とせるようです。woff2のみです。
https://github.com/jfcherng/Noto-Sans-JP-CSS
分割された文字と分割番号の確認は下記から・・・できます。
http://ksk1015.github.io/google-fonts-subset-demo/
その他、自前サーバーへ置く場合、分割なし
https://google-webfonts-helper.herokuapp.com/fonts
サブセットとは
日常的によく使われる文字のみにして軽量化したもの
JIS第1水準漢字、JIS第2水準漢字の一部、ひらがな、カタカナ、記号、アルファベット
ファイル名とウェイト関係
FontName| CSS Font Weight
Thin | 100
Light | 300
Regular | 400 (default)|
Medium | 500
Bold | 700
Black | 900
フォントをJSで読み込み制御するやつ・・
https://github.com/typekit/webfontloader
例)https://github.com/jfcherng/Noto-Sans-JP-CSSここから落としたやつで・・
<script type="text/javascript" src="/common/js/webfontloader.js"></script>
<script>
WebFont.load({custom: {families: ['Noto+Sans+JP'],urls: ['/common/font/notosan/noto_sans_jp_light/css.css']}});
WebFont.load({custom: {families: ['Noto+Sans+JP'],urls: ['/common/font/notosan/noto_sans_jp_regular/css.css']}});
WebFont.load({custom: {families: ['Noto+Sans+JP'],urls: ['/common/font/notosan/noto_sans_jp_bold/css.css']}});
</script>
さいごに
Noto Sans Japaneseはearlyaccess(早期アクセス)版で日本語のみ、
Noto Sans CJK JPは中国・日本・韓国が梱包されているバージョン1ウェイト16Mもあるので日本語のみのサブセット版がgithubに多数あり。
現在ダウンロードできる。フォントファミリー名Noto Sans JP、は表記がNoto Sans Japaneseとなっており、日本語のみで
fonts.googleapis.com/cssの呼び出し方法で、ブラウザー判定でフォント拡張子が自動で判断され、使用しているページの文字のみフォントが読み込みされる・・
ただ、ページに使用される文字量にもよるが1ウェイトあたり、1秒はかかってしまいます・・・
あと、バージョンアップがされいるようで、最新を使用したほうが良さそうですね・・
Noto Sans JPからオリジナルのサブセットを使うのが良さそう・・・