
RailsアプリにFont Awesomeを導入する
Font Awesomeという、WebページのアクセントとなるアイコンをWebフォントとcssで提供してくれる素晴らしいオープンソースがあります。
これをRailsアプリケーションに導入する手順について纏めます。
font-awesome-railsを導入する
RailsアプリにFont Awesomeを導入するには、font-awesome-railsを使うと便利です。
font-awesome-railsは、Font Awesomeをラップし、Railsのビューヘルパを提供するライブラリで、MITライセンスのオープンソースとして公開されています。
導入するには、Gemfileにfont-awesome-railsを追加し、bundle install
します。
gem 'font-awesome-rails'
cssにFontAwesomeを引き込む
次に、app/assets/stylesheets/application.cssにfont-awesomeを引き込みます。
/*
*= require font-awesome
*/
scssを使用している場合は、app/assets/stylesheets/application.scssにfont-awesomeをimportします。
import "font-awesome";
Viewでアイコンを表示する
Font Awesomeをノーマルなhtmlとcssで使用する場合は、i
タグを使用して、cssクラスにfa
クラスとアイコンの種別を示すcssクラスを指定します。
<i class="fa fa-home"></i>
font-awesome-railsは、これを簡単にビューに適用するためのヘルパを提供してくれています。
したがって、上記のHTMLは、Railsのテンプレート上では、
<%= fa_icon("home") %>
と書くことができます。
アイコンサイズ
Font Awesomeは、6種類のサイズを提供していて、いずれもcssクラスを指定することでサイズを指定することができます。
<i class="fa fa-home"></i>
<i class="fa fa-home fa-lg"></i>
<i class="fa fa-home fa-2x"></i>
<i class="fa fa-home fa-3x"></i>
<i class="fa fa-home fa-4x"></i>
<i class="fa fa-home fa-5x"></i>
これをfont-awesome-railsのヘルパで書くには、fa_icon
メソッドにサイズを示す文字列を追加して指定することで実現できます。
<%= fa_icon("home") %>
<%= fa_icon("home lg") %>
<%= fa_icon("home 2x") %>
<%= fa_icon("home 3x") %>
<%= fa_icon("home 4x") %>
<%= fa_icon("home 5x") %>
アイコン+テキスト
アイコンと並べてテキストを表示するには、fa_icon
メソッドの:text
オプションを指定します。
<%= fa_icon("home", text: "Home") %>
<%= fa_icon("home", text: "Home", right: true) %>
Stacked Icons
Font Awesomeは、いくつかのアイコンを重ねて表示することができます。
具体的な例は、Font Awesome Examplesで確認することができます。
font-awesome-railsは、これを実現するためのfa_stacked_icon
ヘルパを提供しています。
例えば、白抜きの四角いアイコンとTwitterアイコンを重ねて表示するには、
<%= fa_stacked_icon("twitter", base: "square-o") %>
と書くことができます。
以上、RailsアプリにFont Awesomeを導入する手順について書きました。
font-awesome-railsを使用することで、簡単に導入できますね。