目次

06.vuetifyでアイコンを利用

Vuetifyで利用することが多いアイコンは、以下の3つとなります。

  1. Vuetify公式のMaterial Icons
  2. Font Awesomeアイコン
  3. Material Design Icons(名前がMaterial Iconsとそっくりですが、別物で、こちらの方が欲しいものが揃っている印象があります)

https://vuetifyjs.com/ja/framework/icons

https://vuetifyjs.com/ja/components/icons
v-iconコンポーネント
Vuetifyのアイコンは、GoogleのMaterial Iconsライブラリを使用します。 全ての利用可能なアイコンのリストは、公式のMaterial Iconsページをご覧ください。

(1)公式のMaterial Icons
https://material.io/tools/icons/

(2)Font Awesomeアイコン
https://fontawesome.com/icons?from=io
Font Awesome のアイコンの利用をサポートしています。アイコン名にfa-プレフィックスを付与するだけで使用できます。あなたのプロジェクトにFont Awesomeを導入しておく必要があるので注意して下さい。

(3)Material Design Icons
https://www.npmjs.com/package/vue-material-design-icons
Material Design Iconsのアイコンの利用をサポートしています。アイコン名にmdi-プレフィックスを付与するだけで使用できます。あなたのプロジェクトにMaterial Design Iconsを導入しておく必要があるので注意して下さい。

1. Vuetify公式のMaterial Iconsを設定する方法

Vuetify公式サイトに記載されている方法でVue.jsにVuetifyをインストールすると、自然に使えるようになっています。

Material Iconsのリスト
https://material.io/tools/icons/

Vue.jsにVuetifyを導入するためには、以下の3つが必要です。

  1. Vuetifyをnpm install(CodeSandboxでは、Add DependencyからVuetifyをインストール)
  2. index.htmlの<head></head>内に、“Material+Icons”を読み込む
  3. src/main.jsで、vuetifyとvuetify.cssをimportして、Vue.use(Vuetify);する。

index.htmlの追加コード

// </head>の直前に以下を挿入
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons" rel="stylesheet"/>

src/main.jsの追加コード

import Vuetify from "vuetify";
import "vuetify/dist/vuetify.css";

Vue.use(Vuetify);

上記の3つの作業を行えば、src/App.vueや、その配下のcomponentで、Vuetifyを使用できるらしいです。

2. Font Awesomeアイコンの導入方法

通常のhtmlファイルで利用する場合は、
https://fontawesome.com/start
へ行き、リンクをindex.htmlのhead内に記載する。

実際にアイコンを使用するときは、
https://fontawesome.com/icons?d=gallery
からアイコン(フリーのもの)を探してから、以下を参考に記載。

https://qiita.com/JotarO_Oyanagi/items/541ea88870ee3b6888e9
@JotarO_Oyanagi
2018年01月05日に投稿
シングルファイルコンポーネント内で Font Awesome をクラス指定で使う
→Vue.jsで用いる場合は、この方法がお勧めです。

  1. codesandboxの場合、Add Dependencyから、@fontawesome/fontawesome-free-webfontsをインストール
  2. main.jsでimport
// Font Awesome のメインファイルを import

import '@fortawesome/fontawesome-free-webfonts/css/fontawesome.css'

// 使用するカテゴリーのファイルを import

import '@fortawesome/fontawesome-free-webfonts/css/fa-brands.css'
import '@fortawesome/fontawesome-free-webfonts/css/fa-regular.css'
import '@fortawesome/fontawesome-free-webfonts/css/fa-solid.css'
  1. アイコンを使用したいコンポーネントのtemplate

内で以下のように記載

<template>
  <div>
    <i class="fab fa-accessible-icon"/>
  </div>
</template>

fabとかfasとか書く必要があるそうです。farも使えますが、fal(Light)だけは有料なのでフリー版では使用できないとのことです。

その他のリンク

https://fontawesome.com/how-to-use/on-the-web/referencing-icons/basic-use

https://vuetifyjs.com/ja/components/icons#examples

https://qiita.com/kurararara/items/d76776a7dc2d763a068b
@kurararara
2018年11月07日に更新
Font awesome を Vue.js で使ってみよう

3. Material Design Iconsアイコンの導入方法

実際にアイコンを使用するときは、
https://materialdesignicons.com
からアイコンを探してから、以下を参考に記載。

https://www.npmjs.com/package/vue-material-design-icons

https://stackoverflow.com/questions/51792391/vue-cli-3-material-design-icons-installation
→英語ですが、非常にわかりやすい説明です。

vue-material-design-iconsを使用してみたいと思います。

  1. Add Dependencyからvue-material-design-iconsをインストール
  2. src/main.jsの変更
  3. src/App.vueでimport

src/main.js

import "vue-material-design-icons/styles.css"

src/App.vue

// template内
<codepen-icon />

// script内
import CodepenIcon from "vue-material-design-icons/Codepen.vue"
 
components: {
  CodepenIcon
}


参考:https://www.npmjs.com/package/vue-material-design-icons
アイコンのリスト:https://materialdesignicons.com/
Importするときの名前の付け方は、以下を参考。

MDIのインストール方法その2?

https://dev.materialdesignicons.com/getting-started/webfont
→この通りにやってうまくいくのか、いまいち分かりません、、、

Nuxt.js+Vuetifyでアイコンの利用方法

https://qiita.com/high-u/items/b8c708cd3795d2ab4a13
@high-u
2018年05月05日に更新
Nuxt.js で CSS フレームワークを 3 つ試した。
→fontAwesomeとMaterial icons両方を同時に使う方法が説明されています。

リンク

目次:

前:

次: