currentColor の仕組み
currentColor は、要素の color プロパティの計算値を参照する CSS キーワードです。SVG で fill="currentColor" を使うと、Tailwind のクラス、リンクのホバー状態、ダークモードのメディアクエリなど、どこから来た色であっても親要素に適用されている色でアイコンが描画されます。
デザインツールは fill="#111827" のような固定の 16 進数カラーでアイコンを書き出します。これではアイコンが 1 色に固定され、テーマごとに別のファイルを管理しなければなりません。currentColor に変換すれば、1 つのファイルをどこでも使えます。
ツールが変更する内容
currentColor オプションを有効にすると:
- 色の値を持つ fill と stroke 属性が currentColor になります。
- インラインの style 属性内の fill と stroke も置き換えられます。
- none、transparent、inherit、url(#gradient) の参照はそのまま残るので、輪郭線やグラデーションも正しく動作します。
- グラデーションの stop-color など、その他の色は変更されません。
currentColor を使うべきでない場合
多色のイラスト、ブランドロゴ、国旗などは複数の特定の色で成り立っています。すべてを 1 色に置き換えると平坦な見た目になってしまいます。こうしたファイルは元の色を残すか、テーマに合わせて変えたい一部の色だけに CSS カスタムプロパティを使いましょう。