Tailwind CSS で独自の画像を背景に設定する
By OldBigBuddha
Tailwind CSS はデフォルトでグラデーション背景を作るためのユティリティを提供しています。しかし、tailwind.config.js を設定することで独自の画像を背景に設定できます。
前提として、src ディレクトリ下に style/base.css を作成し、以下のような内容になっているとします:
@tailwind base;
@tailwind components;
@tailwind utilities;
ディレクトリ構造としてはこんな感じです(一部省略):
.
├── package.json
├── public
├── src
│ ├── App.tsx
│ ├── components
│ │ └── HeroHeader.tsx
│ ├── index.tsx
│ └── style
│ └── base.css
まずは設定したい画像を src/img 下に置きます。ここでは hero-img.webp とします。
.
├── package.json
├── public
├── src
│ ├── App.tsx
│ ├── components
│ │ └── HeroHeader.tsx
│ ├── img
│ │ └── hero.webp ← 追加
│ ├── index.tsx
│ └── style
│ └── base.css
次に、プロジェクトルートに tailwind.config.js を作成し、以下のように記述します。すでに作成されている場合はよしなに取り込んでください。
module.exports = {
theme: {
extend: {
backgroundImage: theme => ({
'hero-img': "url('../img/hero-img.webp')",
})
}
}
}
url() に指定するファイルパスは base.css が起点であることに注意してください。
.
├── package.json
├── public
├── src
│ ├── App.tsx
│ ├── components
│ │ └── HeroHeader.tsx
│ ├── img
│ │ └── hero.webp
│ ├── index.tsx
│ └── style
│ └── base.css ← ここからの相対パス
└── tailwind.config.js
あとは、bg-{key}(ここでは bg-hero-img)をクラスに設定すれば使うことができます。
Tailwind CSS