mcpField
C
converting-css-to-tailwind

converting-css-to-tailwind

github.com/spencerpaulyデザイン・UI868428 回インストール13 週間前に更新
リポジトリ

converting-css-to-tailwind について

通常の CSS を Tailwind のユーティリティクラスへ移行するためのガイドです。HTML、JSX、Vue などのマークアップを扱う開発者向けに、ルールの変換や移行後の表示確認を説明します。

主な機能

  1. 01CSS ルールの洗い出しと対応マークアップの特定
  2. 02レイアウトや文字、枠線をユーティリティに変換
  3. 03レスポンシブ規則と状態の変換
  4. 04直接変換しにくいスタイルの維持
  5. 05移行後の表示崩れの確認

活用シーン

  1. 01コンポーネントのスタイルを Tailwind に移行
  2. 02メディアクエリをブレークポイント用ユーティリティに変換
  3. 03グローバル CSS に残すルールの特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill converting-css-to-tailwind

インストール後、Claude Code で/converting-css-to-tailwindを入力して読み込まれたか確認します。

詳細

CSS を Tailwind に変換する

プレーンな CSS ファイルを、マークアップに直接適用する Tailwind ユーティリティクラスに移行します。

ワークフロー

  1. CSS ファイルを読み込み、すべてのルールを一覧にします
  2. 各セレクターを参照している対応するマークアップ(HTML、JSX、TSX、Vue、Svelte)を見つけます
  3. 以下の対応表を使って各ルールを変換します
  4. すべてのプロパティがユーティリティで表現できたら、CSS ルールを削除します
  5. 空になったら、CSS ファイル(またはインポート)を削除します
  6. ページが同じ見た目になっていることを確認します。視覚的なリグレッションがないか確認してください

変換リファレンス

レイアウトとボックスモデル
CSSTailwind
display: flexflex
display: gridgrid
display: nonehidden
position: relativerelative
position: absoluteabsolute
justify-content: centerjustify-center
align-items: centeritems-center
gap: 16pxgap-4
width: 100%w-full
max-width: 768pxmax-w-3xl
margin: 0 automx-auto
padding: 16pxp-4
overflow: hiddenoverflow-hidden
タイポグラフィ
CSSTailwind
font-size: 14pxtext-sm
font-weight: 700font-bold
line-height: 1.5leading-normal
text-align: centertext-center
text-transform: uppercaseuppercase
color: #333text-[#333] またはテーマカラー
letter-spacing: 0.05emtracking-wide
背景とボーダー
CSSTailwind
background-color: #f5f5f5bg-[#f5f5f5] または bg-neutral-100
border: 1px solid #e5e7ebborder border-gray-200
border-radius: 8pxrounded-lg
box-shadow: 0 1px 3px ...shadow-sm
レスポンシブ — メディアクエリ
@media (min-width: 768px) { .card { flex-direction: row; } }

→ <div class="flex-col md:flex-row">

ブレークポイントの対応:sm:(640)、md:(768)、lg:(1024)、xl:(1280)、2xl:(1536)

疑似クラスと状態
.btn:hover { background-color: #1d4ed8; }

→ <button class="hover:bg-blue-700">

プレフィックス:hover:、focus:、active:、disabled:、first:、last:、odd:、even:、group-hover:、peer-checked:

アニメーションとトランジション
transition: all 0.2s ease-in-out;

→ transition-all duration-200 ease-in-out

@keyframes spin { ... }
animation: spin 1s linear infinite;

→ animate-spin(組み込み)または tailwind.config で定義します

カスタムプロパティ/任意の値

直接対応するユーティリティがない場合は、任意の値を使います:

  • w-[calc(100%-2rem)]
  • grid-cols-[200px_1fr_1fr]
  • text-[clamp(1rem,2vw,1.5rem)]

残りの CSS の扱い

ユーティリティだけでは表現できないものもあります:

  • 複雑なセレクター(.parent > .child + .sibling)— マークアップを再構成するか、最後の手段として @apply を使います
  • @font-face — グローバル CSS ファイルまたは globals.css に残します
  • 複雑な @keyframes — tailwind.config.ts の theme.extend.keyframes で定義します
  • CSS 変数 — tailwind.config.ts の Tailwind テーマ値に移行します

ルール

  • テーマがある場合は、任意の 16 進数値よりもセマンティックな Tailwind クラス(bg-primary)を優先します
  • 移行対象の CSS と同じものを再現するために @apply を使わないでください。それでは移行の目的が失われます
  • 関連するユーティリティを論理的にグループ化します:レイアウト → 間隔 → タイポグラフィ → 色 → 効果
  • コンポーネントにユーティリティが 10 個以上ある場合は、CSS クラスではなく再利用可能なコンポーネントへの切り出しを検討してください

コメント