概要
Rails7
+ TailwindCSS
の構成でアプリケーションを作成し、 daisyUI
を導入したが表示がうまくいかずに詰まった。
結論
npm で daisyUI
をインストールして使用する。
環境
Rails7
でアプリケーション作成時に TailswindCSS
を以下のようにして導入
$ rails new MY_APP --css tailwind
以上のようにアプリ作成を行うと、Gemfileに gem tailwindcss-rails
が追加され、このgemによって導入される。
daisyUIの導入
失敗したケースと成功したケース、未検証のケースをそれぞれ記載する。
失敗ケース(CDNによる導入)
方法
application.html.erb
のheader部分に 公式サイトのリンクを追記する。
<%= stylesheet_link_tag "tailwind", "inter-font", "data-turbo-track": "reload" %>
<link href="https://cdn.jsdelivr.net/npm/daisyui@2.24.0/dist/full.css" rel="stylesheet" type="text/css" />
起きた問題
tailwindcss
で定義されている一部のクラスで色が表示されないなどの問題が起きた。
読み込み順を変更した場合も、同様の事象が起きる。
原因
daisyUI
のCDNで提供されるスタイルシート内にリセットcssも含まれていることが原因。
gemで追加したtailwindcss
がdaisyUI
の不要なクラスを削除できないことが問題。
失敗ケース(importmapによる導入)
importmap を利用して、プラグインとしてdaisyUI
を導入しようとした。
方法
ターミナルで以下のコマンドを実行する。
config/importmap.rb
に自動でdaisyUI
を利用するために必要なものが追記される。
$ rails importmap:install daisyui
config/tailwind.config.js
に以下の内容を記述。
module.exports = { plugins: [require("daisyui")] }
起きた問題
daisyUIが反映されない。
原因
railsにtailwindcssを導入するために使用している、 gem tailwindcss-rails
が importmapを使用した plugins に対応していない。
成功ケース(npmによる導入)
方法
npm によってdaisyUIを導入した。
$ npm i daisyui
config/tailwind.config.js
に以下の内容を記述。
module.exports = { plugins: [require("daisyui")] }
結果
表示の不具合が起きなくなった。
未検証ケース(tailwindcssの導入方法を変更)
今までのケースはtailwindcss
をgem の tailwindcss-rails
を使用して導入することを前提としているが、gem cssbundling-rails
で導入した場合は importmapによる daisyUI
の導入ができるかもしれない。
おわりに
記事内の問題点や、未検証ケースを試していただいた場合はコメントにてお知らせいただけると嬉しいです。