こんにちは、Wolphtypeです。いつの間にか9月が終わっていました。そして10月ももう1/3が過ぎようとしています。恐ろしい。さて、大学の課題で書体を作っていたときは、展示などで何かと見せる機会があり、その度に何となくタイプテスターを実装していました。しかし、今回ホームページを作るにあたって、もう少し使いまわせるような、使いやすいテスターを作りたいと考え、今回 1. OpenType機能が使えること 2. バリアブルフォントが扱えること 3. 既存のスタイル選択もできること を目標にタイプテスターを作りました。結果、まあまあ今後も使えそうなものができたので、同じようにタイプテスターを使いたい人もいるかもしれませんし、CodePenで公開してみようと思います。なお、JavaScriptでも簡単にできるかと思いますが、気分でjQueryで書いてしまいました。仕組みは単純なので書き換えていただければと思います。
See the Pen OpenType & Variable Type Tester by Masaki Ando (@blacktails2) on CodePen.
カスタマイズがしやすいように、デザインは簡素なものになっています。バリエーションは3種類に分かれており、1つ目は「font-weight
とfont-style
でスタイル指定をするもの」、2つ目は「font-family
でスタイル指定をするもの」、3つ目は「バリアブルフォントでスタイルを変更するもの」です。
自分は本来こちらの方が正しいと思いつつもfont-weight
でウェイトを変更するのはあまり好まないのですが(というのも、設定によってはブラウザが太らせた文字が表示されることがあるため)、Google FontsやWebフォントサービスではこの形式で配信されていることもあり、font-weight
とfont-style
バージョンは新しく書きました。
また、バリアブルフォントでは問題ないですが、ドロップダウンでスタイルを選択する場合、選択直後にフォールバックフォントが一瞬表示されて画面がチラチラする場合があります。その時は、<link rel="preload" href="path" as="font" type="font/woff2" crossorigin />
かJavaScriptを使ってプリロードを行うことで解消できます。
基本的にはtypeface
クラスを持っているdiv
のid
を変更すれば使用できますが、OpenType機能を追加したい、バリアブルフォントに別軸を追加したいなどがあると思うので、簡単にカスタマイズ方法を説明します。
1書体のテスターは全体をdiv
で囲い、id='koga'
のように書体名などでid
をつけておき、それをJavaScriptのセレクタにも適用します。CSSではid
単位でfont-family
を指定していますが、UI部分のフォントは変えなくていい、という場合は<textarea>
(もしくは<input>
)部分のみに書体を適用しておくと良いでしょう。
OpenType機能を増やしたり減らしたりするのは簡単で、checkbox
を減らしたり増やしたりすればいいだけです。その際、value
は使用したいOpenType機能のfont-feature-settings
で用いるプロパティを入力してください。プロパティはこちらから確認できます。value
さえ正しければ適用されるので、スタイリングは自由に行って問題ないでしょう。また、kern
やliga
といったデフォルトで適用されるべきOpenType機能はchecked
にしておくと良いでしょう。.typeface__check
クラスを持っているinput
を全部拾うので、特にJavaScriptを変更する必要はありません。
この場合は簡単で、<select>
内の<option>
を変更します。font-weight
およびfont-style
で指定する場合は、一般的なウェイトとイタリックだけが書体にあるならばvalue='400-normal'
のようにウェイトとスタイルをハイフンで繋ぎます(ハイフンで分割され、それぞれがfont-weight
とfont-style
に入るようになっています)。ExpandやCondensedの書体を使いたい場合はおそらくこの方法では指定できないので、font-family
を用いて指定することになります。
font-family
でスタイルを指定する場合は、value='koga-sans-book'
のようにフォント名を指定します。この際、CSSで@font-face
をする際にハイフンなどでフォント名にスペースを含めないようにすると良いでしょう。font-weight
方式、font-family
形式どちらにしても、最初に指定したスタイルのoption
をselected
にしておくことをお勧めします。
この方法だと少しカスタマイズが必要になってきます。ウェイトの指定だけならば今のままでも問題はありませんが、複数軸となると多少追加する必要があります。まず、それぞれの軸を調整するスライダーはid='koga-weight'
のように固有のid
をつけると良いでしょう。min='100' max='900' value='400'
のようにその軸の最小値、最大値、デフォルトの値も指定しておきます(それぞれの値はAdobe Illustratorなどで確認できます)。JavaScript部分では、const weight = $(#koga-weight).val();
のようにしてそれぞれの値を定数に入れ、$('#koga textarea').css('font-variation-settings', `'wght' ${weight}, 'ital' ${italic}`)
のようにそれぞれCSSに適用されるようにします。(4文字のタグはこちらで見られますが、フォントによっては独自のタグを規定している場合もあります。)
だいたいこんなところでしょう。こういった記事を書くのはあまり慣れていないので読みづらいところもあったかもしれませんが、もし何かわからないことなどがあればTwitterなどで気軽に訊いていただけたらと思います。それでは、良いVariable FontとOpenTypeライフを!
Share: Twitter