Nuxt.js v3, Storybook v7の環境にWeb Fontsを追加する(Google Fonts, Adobe Fonts)
Nuxt.js v3の環境でWeb Fontsの導入を行なったため、導入方法について紹介します。 また、Storybookについても同様に追加したため、その方法についても紹介します。
前提
今回は以下のFontを追加していこうと思います。
Google Fonts
Adobe Fonts
また、使用するバージョンについても以下になります。
- Nuxt.js: 3.8.1
- Storybook: 7.5.3
Google Fontsの追加
1. Google Fontsの情報を取得
Google Fontsの該当サイトで以下のような設定を行います。
- 使用するフォントを選択
<link>
か@import
の選択ができるので、今回は<link>
を選択します。(@import
の方でも問題ありません。)- 「CSS rules to specify families」の部分をコピーしておきます。
2. Nuxt.jsに追加
注意: ここで紹介する方法よりも追記の方が適切なため、そちらをご覧ください。
直接読み込む方法を見てみる
nuxt.config.ts
のapp.head
のエリアに<link>
から取得してきた内容を記載することで使用することができます。
・nuxt.config.ts
export default defineNuxtConfig({ app: { head: { link: [ { rel: 'preconnect', href: 'https://fonts.googleapis.com', }, { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '', }, { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css2?family=Manrope:wght@400;700&display=swap', }, ], }, }, })
追記
上記の方法でも問題なくできますが、@nuxtjs/google-fonts
のモジュールを使用する方がフォントをプリロードできたり・フォント周りをローカルのプロジェクトにダウンロードしてくれたりと便利なので、@nuxtjs/google-fonts
のモジュールを使用する方をお勧めします。
基本、以下の通りに行えば問題ありません。
パッケージのインストール
$ yarn add -D @nuxtjs/google-fonts
以下のコードを記載
・nuxt.config.ts
export default defineNuxtConfig({ modules: ['@nuxtjs/google-fonts'], googleFonts: { families: { Manrope: [400, 700], }, }, })
・該当のscssファイルなど
$fontFamily: 'Manrope', sans-serif; body { font-family: $fontFamily; }
3. Storybookに追加
storybookでGoogle Fontsの読み込みを行いたい場合、以下の設定を行うことで読み込まれるようになります。
・.storybook/preview-head.html
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;700&display=swap" rel="stylesheet">
・Storybook用のSCSSファイル
/* Nuxt.jsと共有のcssを使用している場合は記載を行わなくてもよいです。 */ $fontFamily: 'Manrope', sans-serif; body { font-family: $fontFamily; }
Adobe Fontsの追加
Adobe Fontsの詳細はこちらをご覧ください。
1. Adobe Fontsの情報を取得
webプロジェクトに追加
をクリック- 追加するプロジェクトを選択した後に、「決定」をクリック
- 出力される
script
やstyle
をそれぞれコピーしておきます。
2. Nuxt.jsに追加
参考記事
nuxt.config.ts
に以下を記載。
・nuxt.config.ts
export default defineNuxtConfig({ app: { head: { script: [ { src: 'https://use.typekit.net/{プロジェクト ID}.js', }, ], }, }, }
全体で読み込みを行なっているファイルに対して、以下を記載。
onMounted(() => { Typekit.load({ async: true }) })
・該当のscssファイルなど
$fontFamily: "kinto-sans", sans-serif; body { font-family: $fontFamily; }
3. Storybookに追加
storybookについてもGoogle Fontesの時とほぼ同様に以下のファイルにscriptを追記すればフォントが適応されます。
・.storybook/preview-head.html
<script src="https://use.typekit.net/{プロジェクト ID}.js"></script> <script async> Typekit.load({ async: true }) </script>
・該当のscssファイルなど
/* Nuxt.jsと共有のcssを使用している場合は記載を行わなくてもよいです。 */ $fontFamily: "kinto-sans", sans-serif; body { font-family: $fontFamily; }