mcpField
C
converting-css-to-tailwind

converting-css-to-tailwind

github.com/revitalb-portデザイン・UI063 回インストール10 週間前に更新
リポジトリ

converting-css-to-tailwind について

通常の CSS を HTML やコンポーネントのマークアップ内の Tailwind ユーティリティクラスへ移行するスキルです。ルールの対応付けやスタイルの整理、表示確認に加え、カスタム CSS を残す箇所も示します。

主な機能

  1. 01CSS プロパティを Tailwind に対応付け
  2. 02レスポンシブブレークポイントと状態に対応
  3. 03必要に応じて任意値を使用
  4. 04残すべきカスタム CSS を特定
  5. 05移行後の表示を確認

活用シーン

  1. 01コンポーネントを CSS から Tailwind に移行
  2. 02ルール移行後にスタイルシートを削除
  3. 03複雑なセレクターやフォント定義を維持

インストール

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

$npx skills add https://github.com/revitalb-port/skills-registry-demo --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 クラスではなく再利用可能なコンポーネントへの切り出しを検討してください

コメント