CSSとスタイリングのコンフリクト解決
2つのブランチが同じ要素に異なるスタイル変更を適用したCSS、SCSS、Tailwindクラスリストのマージコンフリクトを処理します。
Basic Conflicts
詳細な説明
CSSマージコンフリクト
スタイリングのコンフリクトは、2つのブランチが同じCSSセレクター、クラス名、またはTailwindユーティリティクラスを変更した場合に発生します。CSSルールの順序が詳細度に影響するため、両方のバージョンを組み合わせると予期しない視覚的結果が生じる可能性があり、特に注意が必要です。
典型的なCSSコンフリクト
<<<<<<< HEAD
.card {
padding: 16px;
border-radius: 8px;
background-color: #f5f5f5;
}
=======
.card {
padding: 24px;
border-radius: 12px;
background-color: #ffffff;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
>>>>>>> feature/card-redesign
Tailwindクラスのコンフリクト
Tailwindのようなユーティリティファーストのフレームワークでは、class属性にコンフリクトが現れることが多いです:
<<<<<<< HEAD
<div className="p-4 rounded-lg bg-gray-100">
=======
<div className="p-6 rounded-xl bg-white shadow-md">
>>>>>>> feature/card-redesign
解決戦略
CSSコンフリクトではほぼ必ずManual Editが必要です。片方を盲目的に受け入れると正当なデザイン変更が失われるためです。各ブランチの変更の背後にあるデザインの意図を確認し、正しいスタイルを組み込んだマージバージョンを作成してください。
CSSコンフリクトの回避
コンポーネントスコープのスタイリング(CSS Modules、styled-components、またはコンポーネントファイル内のTailwindの@apply)を使用して、2つのブランチが同じグローバルスタイルシートを変更する可能性を減らしましょう。
ユースケース
チームがカードコンポーネントのリデザインを行う一方、別の開発者がアプリ全体のスペーシングを調整しています。両方のブランチが同じCSSクラスを変更し、スタイルシートにマージコンフリクトが現れます。