tailwind/typographyをダークモードに対応する
@tailwind/typographyは現時点(v0.3.1)ではダークモードに対応してなさそうなので、対応させてみる。media queryを使った手法。
現時点ではcolors.gray
のパラメーターを参照しているそうなので、CSS variablesに置き換える。 メディアクエリの手法なので darkMode: "media"
も追加しておく。
ちなみに上記では標準のgrayを上書きしているが、元のgrayのカラーパレットも参照したかったので、originalGray
として残している(grayとしてマッピングされているのはcoolGrayのようだ)。
theme.extends.colors
での定義は後述のCSS Variablesで使用したときに循環参照してしまうので避けた。他のデフォルトカラーパレットも参照したいときはtailwindcss/defaultTheme
をrequireして、...defaultTheme.colors
をtheme.colors
の一番最初に書くと良い。
ここではプラグインのデフォルトの表示に近いよう、上記でoriginalGrayと定義したものを利用してテーマカラーを参照するようにしている。ダークモードの色は面倒なのでここでは元の逆の定義にするようにした。
以上でいい感じにダークモードが当たるようになる。
なお、bodyの背景は通常状態でbd-gray-50
を当てたが、ダークモード時の色が気に入らなかったので、tailwind.config.js
のtheme.colors
にtailwindcss/colors
にあるtrueGray
を差し込んで、dark:bg-trueGray-700
を追加することでダークモード時の色を再定義するようにした。