Back to Blog

CSS Modules in TailwindCSS

Anastasiia Berest 3 min read

With โ€œtailwindcssโ€: โ€œ^3.4.1โ€ and shadcn/ui + Next.js, I was able to successfully connect custom styles not only in separate .css files, but also use them in CSS Modules.

๐Ÿ‘‰ src

โœ… layout.tsx

import "./globals.css";
import "./styles/_default.css";
import "./styles/_text.css";
import "./styles/_nav.css";

โœ… globals.css

@tailwind base;
@tailwind components;
@tailwind utilities;


@layer base {
 /* base styles */
}

โœ… _default.css

@tailwind base;
@layer base {
 * {
 @apply border-border;
 }
 /* more custom styles... */
}

โœ… component.module.css

.badge {
 @apply bg-black border-none text-white px-4 py-2 font-normal inline-flex mr-2 cursor-pointer select-none;
}

โœ… postcss.config.mjs

/** @type {import('postcss-load-config').Config} */
const config = {
 plugins: {
 tailwindcss: {},
 },
};


export default config;

โœ… This setup works: you can use Tailwind and ShadCN variables both in global styles and in CSS Modules.

๐Ÿ“ฆ Tailwind classes are available in .module.css files because theyโ€™re compiled correctly via PostCSS.

@apply Tailwindโ€™s inside module.css !!!

๐Ÿ‘‰ my_exaple

Anastasiia Berest

Anastasiia Berest

Senior Web UI Engineer

I'm a web development passionate about creating meaningful digital experiences.