見出し画像

TailwindcssのPreflightを無効化するユースケースについて

こんにちわ。nap5です。


TailwindcssのPreflightを無効化するユースケースについて紹介したいと思います。


サードパーティーのコンポーネントライブラリを使用するNextjsをベースとした開発時にコンポーネント個別のスタイリング(emotionなど)を優先させたいが、読み込み順を制御できずに、困っているときが今回のユースケースに該当します。(ビルド後はtailwindcssはハッシュ値を持つファイル名にバンドルされてpreloadしてくれてるので、意図した挙動に制御できているように見えます。)


まとめると、開発時でもビルド後でも同じ挙動・体感でワークアラウンドしていきたいというのが達成したいことになります。


ここでは、PreflightはリセットCSSのようなものです。

Tailwindの書き味を残しつつJoyChakuraなどのコンポーネントライブラリのハンディさを生かしていきたい場合は、このPreflightを無効化することでスタイリングの競合を制御できました。


かといってTailwindの機能が無効化されるわけではないので、かなり便利なオプション引数だなーと思いました。


/** @type {import('tailwindcss').Config} */
module.exports = {
  corePlugins: {
    // preflight: true,
    preflight: false,
  },
  content: ['./src/**/*.{js,ts,jsx,tsx}'],
  theme: {
    fontFamily: {
      kosugi: ['Kosugi', 'sans-serif'],
      noto: ['Noto Sans JP', 'sans-serif'],
      inter: ['Inter', 'sans-serif'],
    },
    extend: {},
  },
  plugins: [
    require('@tailwindcss/line-clamp'),
    require('tailwind-capitalize-first-letter'),
    require('tailwindcss-no-scrollbar'),
    require('tailwindcss-global-dark'),
  ],
};


若干趣旨が異なる感じもしますが、似たようなスレは以下にありました。



頭の片隅にいれておくと、役に立つと思ったのでした。


簡単ですが、以上です。


この記事が気に入ったらサポートをしてみませんか?