株式会社WR

株式会社WR

WEB TOTAL CONSULTING

Tailwind CSSを使ったUIが速くなる理由——ユーティリティファーストの哲学
ブログ一覧へ
技術ブログ

Tailwind CSSを使ったUIが速くなる理由——ユーティリティファーストの哲学

弊社のプロジェクトではUIフレームワークにTailwind CSSを採用しています。Bootstrapとの違い、ユーティリティファーストの考え方、実際の開発スピード感を紹介します。

ユーティリティファーストとは何か

CSSフレームワークには大きく2つのアプローチがあります。

  1. コンポーネントベース(Bootstrap・Foundation):.btn.card のような完成されたコンポーネントクラスを提供する
  2. ユーティリティファースト(Tailwind CSS):flexpt-4text-gray-700 のような単機能クラスを組み合わせてUIを作る

Tailwind CSSは後者の代表格であり、「HTMLから離れずにスタイルを書く」という哲学に基づいています。


なぜ開発が速くなるのか

クラス名を考えるコストがゼロ

BEM記法(.block__element--modifier)のようなクラス名命名に費やす時間がなくなります。text-blue-600 hover:text-blue-800 font-bold と書くだけでスタイルが決まります。

CSSファイルの肥大化が起きない

従来のCSS開発では、機能追加のたびにCSSファイルが増え続けます。Tailwindではクラスを使い回すため、CSSのサイズは一定を保ちます。本番ビルドではPurgeCSSが未使用クラスを自動削除し、数KB〜数十KBの小さなCSSファイルが生成されます。

コンテキストスイッチが減る

HTMLとCSSを行き来する必要がなく、HTMLファイルだけを見ればデザインの全体像がわかります。チームでの開発においても、どのスタイルがどの要素に適用されているかが一目でわかるため、コードレビューが容易になります。


レスポンシブ対応が圧倒的に楽

Tailwindのブレークポイントプレフィックスを使えば、メディアクエリなしでレスポンシブデザインが実現します。

<!-- モバイルは縦並び、mdサイズ以上で横並び -->
<div class="flex flex-col md:flex-row gap-4">
  <div class="w-full md:w-1/3">サイドバー</div>
  <div class="w-full md:w-2/3">メインコンテンツ</div>
</div>
プレフィックス ブレークポイント
sm: 640px以上
md: 768px以上
lg: 1024px以上
xl: 1280px以上
2xl: 1536px以上

ダークモード・ホバー・フォーカスが直感的

状態バリアントを組み合わせることで、インタラクティブなUIを簡潔に記述できます。

<button class="
  bg-blue-600 text-white
  hover:bg-blue-700
  focus:ring-2 focus:ring-blue-500 focus:outline-none
  dark:bg-blue-500 dark:hover:bg-blue-400
  px-4 py-2 rounded transition-colors duration-200
">
  送信する
</button>

カスタマイズ性が高い

tailwind.config.js でテーマを拡張することで、デザインシステムに沿った独自の色・フォントサイズ・スペーシングを定義できます。

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        'brand-gold': '#d4b896',
        'brand-dark': '#1c1c14',
        'brand-bg':   '#faf9f7',
        'brand-muted': '#6b6b55',
      },
      fontFamily: {
        serif: ['Cormorant Garamond', 'serif'],
        sans:  ['Noto Sans JP', 'sans-serif'],
      },
      spacing: {
        '18': '4.5rem',
        '72': '18rem',
        '84': '21rem',
        '96': '24rem',
      },
    },
  },
}

Bootstrapとの使い分け

観点 Bootstrap Tailwind CSS
学習コスト 低い(コンポーネントを覚えるだけ) 中程度(クラス体系を覚える必要あり)
カスタマイズ性 低〜中 非常に高い
独自デザイン 難しい(Bootstrap臭が出る) 自由
ファイルサイズ 大きめ 最小限(PurgeCSS後)
向いている用途 管理画面・プロトタイプ コーポレートサイト・プロダクト

実際のコンポーネント例

<!-- カードコンポーネント -->
<div class="bg-white border border-gray-200 rounded-xl shadow-sm p-6 hover:shadow-md transition-shadow">
  <div class="flex items-center gap-4 mb-4">
    <div class="w-12 h-12 bg-amber-100 rounded-full flex items-center justify-center">
      <svg class="w-6 h-6 text-amber-700" ...></svg>
    </div>
    <h3 class="font-bold text-gray-900 text-lg">Webシステム開発</h3>
  </div>
  <p class="text-gray-600 text-sm leading-relaxed">
    PHP/LaravelとPostgreSQLを使った業務システム・ECサイト・予約システムの開発
  </p>
  <a href="/service"
     class="inline-block mt-4 text-amber-700 text-sm font-medium hover:text-amber-900 transition-colors">
    詳細を見る →
  </a>
</div>

v4の新機能——CSS変数ベースの設定

Tailwind CSS v4(2025年リリース)では設定方法が大幅に変わり、tailwind.config.js を使わずにCSSファイル内でテーマを定義できるようになりました。

/* resources/css/app.css */
@import "tailwindcss";

@theme {
  --color-brand-gold: #d4b896;
  --color-brand-dark: #1c1c14;
  --font-serif: "Cormorant Garamond", serif;
}

弊社での採用実績

弊社が開発・運用するすべてのWebプロジェクトにTailwind CSSを採用しています。

  • 株式会社アンカーリンクのコーポレートサイト
  • マルキュウ商事の業務管理システム
  • 美容院・歯科・サウナ等の予約管理システム
  • 弊社(株式会社WR)のコーポレートサイト(本サイト)

デザインの自由度と開発スピードのバランスが最も優れたフレームワークとして、今後も使い続けていきます。


まとめ

Tailwind CSSはユーティリティファーストという哲学によって、開発スピード・保守性・カスタマイズ性を同時に実現します。最初は冗長なクラス名が気になるかもしれませんが、使い始めると手放せなくなるフレームワークです。

Webサイト・Webアプリの開発についてはお気軽にご相談ください。

Category 技術ブログ

Related Posts

関連記事

開発・技術のご相談はお気軽に

お見積りは無料です。まずはお気軽にご相談ください。

お問い合わせ →