🐕🦺
【React】HeroUIをNext.js・Tailwind v4の環境で使うための設定など
概要
UIコンポーネントライブラリHeroUI
を試したいなと思い、Next.js・Tailwind v4環境下で使ってみました。HeroUIの概要については、[React, Next.js] 気になったUIコンポーネントライブラリをまとめたの記事を参考にしてください。
前提
- 使用した@heroui/reactのバージョンは
2.8.0-beta.6
です。2.8.0は2025年6月現在だとまだベータ版ですが、おそらく正式版になってもTailwind v4は2.8.0以降でしか対応しないと思われます。 - 使用したtailwindcssのバージョンは
4.1.7
です。 - 使用したNext.jsのバージョンは
15.3.2
です。また、Next.js環境なのでPostCSSの使用を前提とします。
主な設定箇所など
まずはpostcss.config.mjs
の設定です。これはTailwindのドキュメントにあるInstall Tailwind CSS with Next.jsの通りとなります。
postcss.config.mjs
/** @type {import('postcss-load-config').Config} */
const config = {
plugins: {
"@tailwindcss/postcss": {},
},
};
export default config;
tailwind.config.js
はHeroUIのドキュメントNext.jsのドキュメントを参考に、以下の通り設定します。(今回はdarkModeは使用しません)
tailwind.config.js
import { heroui } from "@heroui/react";
module.exports = {
content: ["./node_modules/@heroui/theme/dist/**/*.{js,ts,jsx,tsx}"],
plugins: [heroui()],
};
globals.css
へHeroUIのドキュメントTailwind v4にある通り、tailwind.config.js
のconfigを追加します。
globals.css
@import "tailwindcss";
@config "../../tailwind.config.js";
最後にHeroUIのドキュメントNext.jsのドキュメントに記載があるHeroUIProvider
を、layout.tsx
に設定します。
layout.tsx
import { HeroUIProvider } from "@heroui/react";
import "@/style/globals.css";
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="ja">
<body>
<HeroUIProvider>
{children}
</HeroUIProvider>
</body>
</html>
);
}
Discussion