Published on

Fix Tailwind CSS Styling Issues in ShadCN UI and Next.js

Authors
  • Name
    Ripal & Zalak
    Twitter

Fix Tailwind CSS Styling Issues in ShadCN UI and Next.js

Tailwind CSS is a versatile utility-first framework, and ShadCN UI provides an elegant component library for Next.js applications. However, you may encounter styling issues while integrating the two. This guide will help you troubleshoot and resolve common problems to ensure your app runs smoothly.

Common Problem: Styles Not Applying

When using ShadCN UI with Tailwind CSS in a Next.js project, you might notice that styles such as bg-card and card-foreground are not being applied. This is often due to configuration issues. Let's break down the possible causes and solutions.


Step-by-Step Troubleshooting

1. Check Your Tailwind Configuration

Ensure your tailwind.config.ts file includes the correct paths to all your components and pages. Example configuration:

module.exports = {
  darkMode: ['class'],
  content: [
    './pages/**/*.{ts,tsx}',
    './components/**/*.{ts,tsx}',
    './app/**/*.{ts,tsx}',
    './src/**/*.{ts,tsx}',
  ],
  theme: {
    extend: {
      colors: {
        card: {
          DEFAULT: 'hsl(var(--card))',
          foreground: 'hsl(var(--card-foreground))',
        },
      },
    },
  },
  plugins: [require('tailwindcss-animate')],
}

Ensure the paths match your project structure.

2. Global CSS File Placement

Verify the location of your globals.css file. Common locations are:

  • src/app/globals.css
  • styles/globals.css

Ensure the path is correctly referenced in your app/layout.tsx:

import '../styles/globals.css'

3. Avoid Multiple Global CSS Files

Having more than one globals.css file can cause conflicts. Consolidate your global styles into a single file.

4. Correct ShadCN Initialization

When initializing ShadCN, ensure accurate paths for your global CSS and Tailwind config:

npx shadcn-ui@latest init

Specify the correct paths during setup:

  • Global CSS file: src/styles/globals.css
  • Tailwind config: tailwind.config.ts

5. Verify Component Placement

Components should reside within the app directory or its subdirectories to ensure they are processed correctly by Tailwind CSS.

6. Add Default Colors (Optional)

Extend your Tailwind configuration to include default Tailwind colors for better compatibility:

const colors = require('tailwindcss/colors')

module.exports = {
  theme: {
    extend: {
      colors: {
        ...colors,
      },
    },
  },
}

Additional Tips

  • Run npm run build to identify any Tailwind-related build errors.
  • Check your browser's developer tools to inspect applied styles and identify missing classes.
  • Restart your development server after making configuration changes.

FAQs

Why are my Tailwind classes not working in ShadCN components?

Ensure your tailwind.config.ts includes the correct paths to your component files. Additionally, verify that your global CSS file is properly imported.

Can I use ShadCN UI without Tailwind CSS?

ShadCN UI is optimized for Tailwind CSS. While you can modify styles manually, it is best used with Tailwind for seamless integration.

What is the purpose of hsl(var(--variable)) in Tailwind?

This syntax allows for theming via CSS variables, enabling dynamic style changes based on context (e.g., dark mode).


By following these steps, you should be able to resolve any Tailwind CSS styling issues in your ShadCN UI and Next.js project. A properly configured setup ensures your styles render as intended, enhancing your app's appearance and functionality.