Tailwind config の theme 外キーは黙って無視される — 設定は生成 CSS の実測で検証する
Tailwind CSS の JS コンフィグ(v3 系)は、モジュールエクスポート直下の未知キーをエラーも警告も出さずに無視する。fontSize や extend(カラーリマップ・animation・borderRadius 等)を theme の外=トップレベルに書いてしまうと、カスタム定義が一度も適用されないまま、デフォルト値で長期間運用される事態が起きる。lint もビルドも割れないため、コードレビューでも「定義がある=効いている」と誤読しやすい。
検証方法
設定が効いているかは設定ファイルを読んで判断せず、生成 CSS を実測する。対象クラスだけを並べたプローブ用 HTML を 1 枚用意し、Tailwind CLI に実プロジェクトのコンフィグとそのプローブを content として渡して CSS を生成させ、出力された値がカスタム値かデフォルト値かを確認する(例: カスタムで 2rem と定義したはずの見出しクラスがデフォルトの 1.875rem を出力していれば dead config と確定)。数分で白黒がつき、推測を排除できる。
dead config を見つけたときの判断
長期間 dead だった設定は「現在レンダリングされている見た目が事実上の正」になっている。復活適用するとアプリ全体のタイポグラフィや色味が一斉に変わるため、意図の証跡(コミットメッセージや設計文書)が無い限り、復活ではなく削除を第一候補にする。修理の際は、修理前後で代表クラスの生成 CSS を diff し、不変であることを確認してから進める。
一般化
スキーマ検証を持たない宣言的設定ファイル全般に適用できる。「書いてある=効いている」を信じず、監査・リファクタの起点では生成物や実挙動での実測を先に行う。設定源の優先順位による上書き(別ファイルが勝っている)とは別の失敗型で、こちらは配置ミス・スキーマ外キーの黙殺が原因。