小村のポートフォリオサイト開発(2) 共通設定(フォント、v-icon)

  • こんばんは、小村だよ!

  • 前回の記事で作成したWebデザインがこちら!!!

f:id:kom314_prog:20210630233100p:plain


  • そしてここ1週間ほど実装を進めて、ひとまずモックができまちた!!!

  • 作成中のサイト:Little Village

f:id:kom314_prog:20210708231432p:plain


  • みって!!!

  • ほらみって!!!!!マジマジとみて!!!

  • どう!?!?結構いい感じじゃない!?!?!?

  • はい!そんなわけでしばらく、現段階までの苦労した点を記録しまーす!

  • 今回はNuxt.js全体で使用するフォント関係について記載するよ!



目次

  1. Fontの変更方法
  2. v-iconの使用アイコン変更方法



記録

Fontの変更方法

  • まずはFont関連について書いていくね

  • 私はGoogleフォントの下記を使用しています

    • 通常フォント:Note Sans JP (Style : Thin 100)
    • タイトル用 :Roboto Mono
  • Googleフォントを使用したいときは下記公式サイトで探せます

  • 下記画像のように、使用したいフォントを見つけたら使用したいStyleを選択

  • 右側に表示される[Selected Families]の、赤枠の<link href=~が必要になります

f:id:kom314_prog:20210711103047p:plain


  • でね、これらのフォントの設定方法を調べ始めるとけっこー大変!

    • VuetifyやNuxt.jsでのフォント変更方法多すぎィ!!!
  • ベストプラクティスもないようなので、何個か試して下記に落ち着きました

    • 下記1.でデフォルトのフォントやアイコンの設定を解除
    • 下記2.でプロジェクトで対象フォントを使用可能に設定
    • 下記3.でデフォルトで使用するフォントを設定
    • 下記4.でタイトルなど一部のフォントを変更
  • 下手にモジュールとか使わないほうが、簡単に複数のフォント使えるのでよさそう


1.nuxt.config.jsvuetifyに設定追加

f:id:kom314_prog:20210711134133p:plain
~
  vuetify: {
~
    treeShake: true,
    defaultAssets: false,
~


2.nuxt.config.jslinkにフォントのリンクを記述

  • 上記で説明した、必要なフォントをすべて記述します
f:id:kom314_prog:20210708230936p:plain
export default {
  head: {
    ~~~
    link: [
      {
        rel: 'stylesheet',
        href: 'https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100&display=swap',
      },
      {
        rel: 'stylesheet',
        href: 'https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@100&display=swap',
      },
    ],
  },


3.デフォルトで使用するフォントをassets/variables.scssに記載

  • ここに設定することで、すべての文字に対してフォントが指定されます

  • $heading-font-familyというものもありますが、範囲がわからず指定してません。

f:id:kom314_prog:20210708231109p:plain
//------------------
// フォント関連
//------------------
$body-font-family: 'Noto Sans JP', sans-serif;


4.タイトルなど一部のフォントはclassで指定

  • その他のフォントは、classにfont-familyを定義して適用しています
f:id:kom314_prog:20210708231928p:plain



v-iconの使用アイコン変更方法

  • 次にv-iconの設定の説明するね

  • Vuetifyのv-iconはデフォルトでMaterialDesignIcons(以下mdi)が設定されてます

  • ただ私は使いたいアイコンがMaterialIconsにあったので使用アイコンを変更してます

  • これもフォントと同様、nuxt.config.jslinkにリンクを記載します。


MaterialIconsの設定

f:id:kom314_prog:20210708233554p:plain
export default {
  head: {
    ~~~
    link: [
      {
        rel: 'stylesheet',
        href: 'https://fonts.googleapis.com/icon?family=Material+Icons',
      },
    ],
  },



MaterialIconsを使用するうえでの注意点

  • 上記設定をしてv-iconの使用アイコンを変更することによる注意点がありまして

  • vuetifyのコンポーネントを使用する際、一部アイコンが表示されなくなります

  • 例としてv-date-pickerだと下記の赤線のところに出てた矢印が表示されません

f:id:kom314_prog:20210708234305p:plain


  • v-iconをMaterialDesignIconsに変更したことで、mdiが表示されなくなります

  • このようなときは、使用するアイコンをMaterialIconsで指定しなおす必要があります

  • v-date-pickerの場合は下記のように矢印を指定しなおす必要があります

  <v-date-picker
    next-icon="arrow_right"
    prev-icon="arrow_left"
></v-date-picker>
f:id:kom314_prog:20210708234510p:plain
f:id:kom314_prog:20210708235237p:plain



おわりに

  • まだ共通設定で必要なところあるけど今回はここまで!

    • ブログの書き溜め分がなくなっちゃったので水増ししないと
  • 次回はMixinの設定と背景色やテーマカラーについて書いていきます!

  • ではでは、ちゃお~~~!