4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Angular 12 にシュッと tailwindcss を導入する

Last updated at Posted at 2021-10-02

ここ最近、仕事で tailwindcss を使うようになりました。ただしインストールや設定もろもろ CSS に明るい同僚がセットアップしてくれたものので、私自身は与えられた環境でぬくぬくと CSS を書いているだけでした。数ヶ月経過したところでようやく「インストールとか設定まわりの知識があったほうが幸せになれるんじゃないか」という事に気づいたので、調べた事をまとめて記事にしました。

tailwindcss のインストールから設定のカスタマイズまで書き起こしたらかなり長くなってしまったので、3 部構成でお伝えします。ナメた感じに見えるタイトルは、長い上に文章が堅苦しくならないよう気をつけていこうという自分への戒めでございます。

記事執筆の環境は下記の通りです。

  • @angular/cli v12.2
  • node v16.8 (npm v7.21)
  • tailwindcss v2.2

それでは tailwindcss のインストールからスタートしてみましょう!

インストールする

いつもどおり Angular のプロジェクトを作ります。説明のためにスタイルシートのフォーマットは SCSS を選択しておいてください。

npx -p @angular/cli ng new {PROJECT_NAME}

? Would you like to add Angular routing? No
? Which stylesheet format would you like to use? SCSS

tailwindcss をインストールします。

npm i -D tailwindcss

tailwindcss の設定ファイルを作ります。

npx tailwindcss init

> Created Tailwind CSS config file: tailwind.config.js

このような設定ファイルが生成されます。今はまだ何も書き込まなくて OK です。

// tailwind.config.js

module.exports = {
  purge: [],
  darkMode: false, // or 'media' or 'class'
  theme: {
    extend: {},
  },
  variants: {
    extend: {},
  },
  plugins: [],
}

styles.scss で tailwindcss のクラスを読み込みます。

// styles.scss

@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

これで tailwindcss のインストールはシュッと完了しました! 😊

CSS を書いてみる

おなじみの Angular スタートアップ画面に tailwindcss で CSS を書いてみましょう。

npm start -- --open

ブラウザの要素の選択を使って、カードのコンテナを選びます。

開発者ツールで bg- などタイプすると大量のサジェストが現れます。ここから bg-gray-400 を選んでみます。

続けて p-10 rounded-2xl を設定するとコンテナの見た目がこのように変わります。

今度は hover:bg-blue-400 を追加してみましょう。

カードのコンテナにマウスカーソルを合わせると背景色が青に変わります。

CSS のクラス指定を app.component.html にコピペすれば、そのままプロダクションコードとして使えます。

<div class="card-container
  bg-gray-400
  p-10 
  rounded-2xl
  hover:bg-blue-400
">

アメージング😳!!CSS クラスがシュッと使えるようになりました! 😊

ちょっと探検:これらのクラスは何なのか

bg-gray-400 p-10 rounded-2xl は CSS を下記のように書き足すのと同等です。

<!-- src/app/app.component.html -->

<!-- 429 行目 -->
<!-- いつもなら、card-wrapper-gray のようなクラスを書き足す -->
<div class="card-container card-wrapper-gray">
  <a
    class="card"
    target="_blank"
    ...
// src/app/app.component.scss

// クラスにスタイルを当てるためせっせと CSS を書く
.card-wrapper-gray {
  padding: 2.5rem;
  background: #9CA3AF;
  border-radius: 1rem;
}

tailwindcss は膨大な CSS クラス群を持っているため、生の CSS/SCSS を書き足す手間がグッと省けます。背景色、パディング、角丸...などなど、ユーティリティを任意に組み合わせてスタイルをあてがうので tailwindcss のクラス群は「ユーティリティクラス」と呼びます。

bg-gray-{数値} は tailwindcss のカラーパレットと連動した背景色です。このクラスを使う事で、自然とアプリ全体が統一された色合いになります。


https://tailwindcss.com/docs/customizing-colors

p-{数値} は tailwindcss に定義されたパディングのクラス群です。このクラスを使う事で、単位のばらつきを抑え一定間隔の刻みで統一する事ができます。


https://tailwindcss.com/docs/padding

ビルドする

では次に Angular アプリをビルドしてみましょう。src 配下がビルド対象ですよという事を tailwindcss に伝えるために、設定ファイルの purge の部分を下記のように書き換えます。

// tailwind.config.js

module.exports = {
  purge: {
    content: ['./src/**/*.{html,ts}'],
  },
  ...
}

いつも通りビルドを実行します。

npm run build

styles.{hash}.css のファイルサイズは約 2.8 MB になりました。巨大ですね。

なぜ巨大になるかと言うと、デフォルトの状態では膨大なユーティリティクラスが全部吐き出されるからです。

tailwindcss の「パージ」機能を使うと、未使用のユーティリティクラスをビルドから除外する事ができます。設定方法は Node の環境変数 NODE_ENV をプロダクションにセットするだけです。

// package.json

  "scripts": {
    "build": "NODE_ENV=production ng build",

package.json を汚したくない場合はこのような方法でもパージできます。

// tailwind.config.js

module.exports = {
  // purge の部分をこのように書き換える
  purge: {
    content: ['./src/**/*.{html,ts}'],
    enabled: process.env.TAILWIND_MODE === 'build',
  },

再びビルドしてみると styles.{hash}.css のファイルサイズは約 3.6 KB になりました。パージ前の 2.8 MB がパージ後に 3.6 KB です。単位がひとつ下がってます。

npm run build

これで Angular の budget のしきい値を超える事なく、シュッとビルドできるようになりました! 😊

次の記事では設定ファイルの内容を紹介します。
Angular 12 にシュッと導入した tailwindcss の設定ファイルをチャッと理解する

参考:tailwindcss のビルドコマンド

下記のコマンドを叩くと Angular のビルドを介さずに CSS のみビルドする事ができます。非常に高速なので CSS のビルド結果だけを見たい時に便利です。

./node_modules/.bin/tailwindcss --output ./dist/hoge.css

参考:VSCode のエクステンション

VSCode を使っている場合は下記のエクステンションをインストールしておくと便利です。

Tailwind CSS IntelliSense tailwindcss の CSS クラスをサジェストします。

Headwind ショートカットキーで CSS クラスを並べ替えます。

シュッと tailwind の CSS クラスが書けるようになりますね! 😊

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?