SVG テーマスキーマチェッカー
ライトテーマとダークテーマで、SVG の外観が意図したとおりになるかを並べて確かめます。コードを書き換えると、両方のプレビューがすぐに変わります。
プレビュー
SVG コード
動作原理
プレビューは、SVG を <img> で埋め込んだときと同じ扱いで描きます。README などに置いた画像と同じく、スクリプトは動かず、外部のファイルも読み込まれません。
ライトとダークの違いは、SVG の中の @media (prefers-color-scheme: …) だけです。ライト側ではライトの条件を真・ダークの条件を偽に置き換え、ダーク側ではその逆にします。color-scheme もそれぞれのテーマに固定するので、light-dark() も切り替わります。
コードは描く前に許可リストで組み立て直します。リストにない要素(script・foreignObject など)と属性(onload などのイベント属性)、javascript: の URL、ファイル内の # 以外を指す参照は取り除きます。
参考: SVG テーマスキーマチェッカーの技術参考記事(Zenn)