🫧
Next.jsでFontAwesome使ってみた
はじめに
- 参照:FontAwesomeの公式ページ
- 今回はこのchevron-rightを表示させてみる
FontAwesomeをインストール
基本は下記の3つをインストールでOK
yarn add @fortawesome/fontawesome-svg-core
yarn add @fortawesome/free-solid-svg-icons
yarn add @fortawesome/react-fontawesome
さらに、Next.jsで使う場合はcss設定の必要があるそう。(以下公式)
Next.js はほとんどの Web プロジェクトとは異なる方法で CSS を管理するため、単純なバニラのドキュメントに従ってreact-fontawesomeプロジェクトに統合すると、巨大なアイコンが表示されます。これは、アイコンを動作させるための付属の CSS が欠落しているためです。
ということなのでimport等しておく
pages/_app.js
import { config } from '@fortawesome/fontawesome-svg-core' //追加
import '@fortawesome/fontawesome-svg-core/styles.css' //追加
config.autoAddCss = false //追加
export default function MyApp({ Component, pageProps }) {
return <Component {...pageProps} />
}
config.autoAddCss は fontawsom-svg-core ライブラリがアイコン用の css を自動で <head /> に追加するかを制御するフラグ。
FontAwesomeはデフォルトで動的にスタイルを追加しますが、Next.jは各ページに個別のCSSを持つためこれは意味がありません。
そこでconfig.autoAddCss=falseとすることで不要なスタイルの追加を防ぐようです。
FontAwesomeを使用
chevron-rightなのでfaChevronRightに変換してiconに指定。
colorをつけたり、回転させることができます
import { faChevronRight } from "@fortawesome/free-solid-svg-icons"
<FontAwesomeIcon icon={ faFaceRelieved } rotation={90} color="green"/>
できた
無事表示できました。
個人的にcolorを変数で指定はどうするんだろう、、と調べたら下記の書き方でできました
<FontAwesomeIcon icon={faChevronRight} style={{color: 'var(--c-text2)'}}/>
Discussion