Sampleを見る

Font Awesomeとは?

Font AwesomはWebサイトにアイコンフォントを簡単に表示させることができるWebサービスです。 提供されているアイコンフォントは商用利用可能です。また、名前にフォントとあるようにフォント同様にサイズ・色変更をCSSで調整することができます。使い方は簡単で、CDNを使って読み込むだけです。

以下のように「fax-xxxx」で始まるクラスがアイコンのデザインを指定している部分です。

class="fas fa-save"

faの後ろの1文字には以下の意味があります。

- fas:(Font Awesome Solid): 塗りつぶされたアイコンです。太くてしっかりしたデザインが特徴で、シルエットがはっきりしています。ボタンの中で使用してもはっきり認識できます。
- far :(Font Awesome Regular): アウトラインのみのデザインが特徴です。Solidアイコンに比べて軽やかで、シンプルなデザインです。テキストの中で使用しても悪目立ちしません。
- fab`:(Font Awesome Brands): ブランドやロゴのアイコンです。企業やサービスのロゴを表現するために特化されています。

アイコンの使い方

Font Awesomeのアイコンは、<i>タグや<span>タグで使用します。クラス名にはアイコンのスタイルと名前を指定します。

以下にいくつかの例を示します。

<!-- solidアイコン -->
<i class="fas fa-camera"></i> カメラアイコン

<!-- レギュラーアイコン -->
<i class="far fa-paper-plane"></i> 紙飛行機アイコン

<!-- ブランドアイコン -->
<i class="fab fa-github"></i> GitHubアイコン

サイズの変更

アイコンのサイズはクラスで指定できます。fa-xsからfa-10xまであります。

<i class="fas fa-camera fa-2x"></i> <!-- 2倍のサイズ -->
<i class="fas fa-camera fa-5x"></i> <!-- 5倍のサイズ -->

色の変更

CSSを使ってアイコンの色を変更できます。

<i class="fas fa-camera" style="color: red;"></i> <!-- 赤色のカメラアイコン -->

回転や反転

アイコンを回転させたり、反転させたりすることもできます。

<i class="fas fa-camera fa-spin"></i> <!-- 回転 -->
<i class="fas fa-camera fa-flip-horizontal"></i> <!-- 水平方向に反転 -->
<i class="fas fa-camera fa-flip-vertical"></i> <!-- 垂直方向に反転 -->

以下はサンプルのソースコードです。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>font-awesome-icons-with-buttons.html</title>
    <!-- Bootstrap CSS -->
    <link
     href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"
      rel="stylesheet"
      integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
      crossorigin="anonymous"
    />
    <!-- Font Awesome -->
    <link
     href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"
      rel="stylesheet"
    />
  </head>

  <body>
    <div class="container my-4">
      <a href="https://fontawesome.com/search"
        >これらはほんの一部です。リンクには3万以上(含む有料)のアイコンがあります。</a
      >
      <div class="row">
        <div class="col-sm-4 my-1">
          <button class="btn btn-primary w-100">
            <i class="fas fa-save"></i> 保存
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-secondary w-100">
            <i class="fas fa-download"></i> ダウンロード
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-success w-100">
            <i class="fas fa-upload"></i> アップロード
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-danger w-100">
            <i class="fas fa-trash"></i> 削除
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-warning w-100">
            <i class="fas fa-edit"></i> 編集
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-info w-100">
            <i class="fas fa-search"></i> 検索
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-dark w-100">
            <i class="fas fa-envelope"></i> メッセージ
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-light w-100">
            <i class="fas fa-check"></i> 承認
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-primary w-100">
            <i class="fas fa-times"></i> キャンセル
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-secondary w-100">
            <i class="fas fa-plus"></i> 追加
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-primary w-100">
            <i class="fas fa-sync fa-spin"></i> 更新
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-secondary w-100">
            <i class="fas fa-exclamation-triangle"></i> 警告
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-success w-100">
            <i class="fas fa-info-circle"></i> 情報
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-danger w-100">
            <i class="fas fa-ban"></i> 禁止
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-warning w-100">
            <i class="fas fa-undo"></i> 戻る
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-info w-100">
            <i class="fas fa-redo fa-spin"></i> 進む
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-dark w-100">
            <i class="fas fa-home"></i> ホーム
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-light w-100">
            <i class="fas fa-print"></i> 印刷
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-primary w-100">
            <i class="fas fa-question-circle"></i> ヘルプ
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-secondary w-100">
            <i class="fas fa-lock"></i> ロック
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-primary w-100">
            <i class="fas fa-sign-out-alt"></i> ログアウト
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-secondary w-100">
            <i class="fas fa-user-plus"></i> ユーザー追加
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-success w-100">
            <i class="fas fa-users"></i> ユーザー一覧
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-danger w-100">
            <i class="fas fa-user-times"></i> ユーザー削除
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-warning w-100">
            <i class="fas fa-user-edit"></i> ユーザー編集
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-info w-100">
            <i class="fas fa-cog"></i> 設定
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-dark w-100">
            <i class="fas fa-chart-bar"></i> 統計
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-light w-100">
            <i class="fas fa-camera"></i> 写真撮影
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-primary w-100">
            <i class="fas fa-video"></i> ビデオ撮影
          </button>
        </div>
        <div class="col-sm-4 my-1">
          <button class="btn btn-secondary w-100">
            <i class="fas fa-music"></i> 音楽再生
          </button>
        </div>
      </div>
    </div>
    <!-- Bootstrap JS -->
    <script
      src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
      integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
      crossorigin="anonymous"
    ></script>
  </body>
</html>

これらはほんの一部です。リンクには1600以上のフォントがあります。

上記の例ではWebアプリケーションでよく使われるアイコンを30個ご紹介しています。また、アイコンをBootStrap5のボタンと組み合わせています。さらに、グリッドシステムを利用して、各ボタンを整列させています。これにより、レスポンシブなデザインになり、画面サイズに応じてレイアウトが自動的に調整されます。各ボタンはそれぞれ col-* クラスを含む div タグ内に配置されています。

col-sm-4 を使用して、スモール(sm)サイズ以上のデバイスでは各行に3つのボタンが表示されるようにしています。また、my-1 というクラスを追加してY軸方向(上下)にマージンを追加し、ボタン間に少しスペースを作っています。そして、w-100 クラスを使用してボタンが親の div タグ全体を使用するようにしています。

最後までお読みいただきありがとうございます。