Google Fonts(Noto Sans JP)をインストールします。
gatsby-starter-blog を導入していると、フォントの情報はsrc/utils/Typography.js
にすでに存在します。
初期状態はこんな感じ。
src/utils/Typography.js
import Typography from 'typography'
import Wordpress2016 from 'typography-theme-wordpress-2016'
Wordpress2016.overrideThemeStyles = () => {
return {
'a.gatsby-resp-image-link': {
boxShadow: `none`,
},
}
}
delete Wordpress2016.googleFonts
const typography = new Typography(Wordpress2016)
// Hot reload typography in development.
if (process.env.NODE_ENV !== `production`) {
typography.injectStyles()
}
export default typography
export const rhythm = typography.rhythm
export const scale = typography.scale
最終的にこれを編集して Google Fonts を使えるようにしていきます。
テーマインストール
typography.jsが提供するテーマをインストールします。
(typography のプラグインはすでにインストールされています)
yarn add typography-theme-github
typography.js を書き換え
Wordpress2016 はもう使わないので削除し、theme.googleFonts を追加します。 ヘッダとボディ部にも指定を追加します。
src/utils/typography.js
import Typography from 'typography'
import theme from 'typography-theme-github'
theme.googleFonts = [
{
name: 'Noto+Sans+JP',
styles: ['400'],
},
]
theme.headerFontFamily = ['Noto Sans JP']
theme.bodyFontFamily = ['Noto Sans JP']
const typography = new Typography(theme)
// Hot reload typography in development.
if (process.env.NODE_ENV !== `production`) {
typography.injectStyles()
}
export default typography
export const rhythm = typography.rhythm
export const scale = typography.scale
その他の機能
フォントは複数同時に読み込むことができ、テーマの上書きも可能です。 こういう感じのもアリ。typography が一括管理できてとても便利。
src/utils/typography.js
import Typography from 'typography'
import config from '../../config/SiteConfig'
const typography = new Typography({
baseFontSize: config.baseFontSize,
baseLineHeight: 1.66,
scaleRatio: 3.157,
headerFontFamily: [config.headerFontFamily, 'sans-serif'],
bodyFontFamily: [config.bodyFontFamily, 'sans-serif'],
headerWeight: 700,
googleFonts: [
{
name: config.headerFontFamily,
styles: ['700'],
},
{
name: config.bodyFontFamily,
styles: ['400'],
},
],
})
// Hot reload typography in development.
if (process.env.NODE_ENV !== 'production') {
typography.injectStyles()
}
export default typography