SJ blog
frontend
A

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

YakuHanJPと日本語Webタイポグラフィ:約物半角化という地味だが強烈なこだわり

絶滅危惧野菜サイトが読み込んでいるYakuHanJPは、日本語の括弧・句読点だけを半角化するフォントです。一般には知名度が低いですが、日本語サイトの品質を無言で底上げする隠し技です。

一言結論

日本語Webフォントの全文字セットは重すぎて現実的でないが、約物(括弧・句読点)だけを半角化するYakuHanJPなら20KB未満で日本語テキストの見栄えが劇的に改善し、制作意図が細部に宿るサイトかどうかの判別指標になる。

絶滅危惧野菜プロジェクトのHTMLを調べていて気付いたのが、このCDN読み込みです。

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp.min.css">

YakuHanJP は日本語の約物(やくもの)だけを半角幅にするWebフォントです。約物とは、括弧 ()「」 や句読点 、。 など、テキストの構造を示す記号のことです。

問題:全角約物のスカスカ感

日本語のデフォルトフォントでは、約物も漢字やかなと同じ全角幅を持ちます。

全角約物:  「絶滅危惧」の野菜(きゅうり)を守る。
           ↑        ↑   ↑         ↑
           ここに空白が生まれる

括弧の前後に全角分のスペースが入るため、組版としては「ゆるい」印象になります。書籍やポスターの日本語組版では、約物を半角に詰めるのが基本的な処理ですが、Webではフォントの全角幅がそのまま表示されるため、この処理が抜け落ちます。

解決:YakuHanJPの仕組み

YakuHanJPは約物の文字だけを半角幅にしたフォントです。全文字のWebフォントではなく、対象文字は次の約物に限定されています。

、。!?〈〉《》「」『』【】〔〕〖〗
〘〙〚〛()[]{}⦅⦆

これらの文字だけをカスタムフォントで上書きし、残りの文字は font-family のフォールバックで端末のデフォルトフォントが使われます。

/* YakuHanJPの適用例 */
body {
  font-family: YakuHanJP, "Hiragino Sans", "Noto Sans JP", sans-serif;
}

YakuHanJP が約物だけ受け持ち、それ以外は後続のフォントに落ちる。これが 20KB未満 で実現できるのがポイントです。

見た目の差

同じテキストで比較すると差は明確です。

デフォルト:  気候変動の影響で「伝統野菜」が(静かに)消えている。
YakuHanJP:  気候変動の影響で「伝統野菜」が(静かに)消えている。

文字として書くとフォント差は表現しづらいですが、実際のレンダリングでは括弧周辺の不自然な空白が消え、テキストが引き締まって見えます。特に見出しやキャッチコピーでの効果が大きく、10文字程度の短文で「プロが組んだか素人が組んだか」の印象差が生まれます。

なぜ全文字のWebフォントではダメなのか

「Noto Sans JP を丸ごと読み込めばいいのでは?」と思うかもしれませんが、日本語フォントの全文字セットは数MB〜十数MBあります。

Noto Sans JP (Regular):  約1.8MB(サブセット化前)
YakuHanJP:               約15KB

100倍以上の差です。フォントの読み込みはレンダリングブロッキングになるため、全文字Webフォントはパフォーマンスに直撃します。Google Fontsのサブセット化(&display=swap + Unicode Range)で軽減できますが、それでも数百KB単位。

YakuHanJPは「約物だけ直す」という割り切りで、パフォーマンスへの影響をほぼゼロにしつつ品質を上げています。

使い方

導入は1行です。CDNから読み込むか、npmでインストールします。

<!-- CDN -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp.min.css">
# npm
npm install yakuhanjp
/* CSSで適用 */
@import "yakuhanjp/dist/css/yakuhanjp.min.css";

body {
  font-family: YakuHanJP, "Hiragino Sans", sans-serif;
}

バリエーションとして YakuHanJPs(ゴシック体向け)、YakuHanMP(明朝体向け)が用意されています。

このサイトでのこだわり

絶滅危惧野菜サイトがYakuHanJPを入れているのは、**「テキストの品質にも手を抜いていない」**というシグナルです。

Three.jsの3Dレンダリングやスクロール演出に目が行きがちですが、そもそもの日本語テキストの組版が整っていなければ、全体の品格が落ちます。このサイトは:

  • 3D表現 → Three.js + WebGL
  • スクロール演出 → GSAP + ScrollTrigger
  • テキスト品質 → YakuHanJP
  • 画像品質 → プロカメラマン + WebP

映像・演出・文字・画像の全レイヤーに手が入っている。どれか1つでも抜けると没入感が崩れますが、全部揃えてきている。制作チームのこだわりが最も端的に見えるのは、実はこのYakuHanJPの1行かもしれません。


参考: