- Install the new version of TailwindCSS and the PostCSS plugin:
npm install tailwindcss@next @tailwindcss/postcss@next- Update your stylesheet and replace it with the code below:
@import "tailwindcss";
@plugin "tailwindcss-animate";
@theme {
--color-background: #fff;
--color-foreground: #0a0a0a;
--color-card: #fff;
--color-card-foreground: #0a0a0a;
--color-popover: #fff;
--color-popover-foreground: #0a0a0a;
--color-primary: #171717;
--color-primary-foreground: #fafafa;
--color-secondary: #f5f5f5;
--color-secondary-foreground: #171717;
--color-muted: #f5f5f5;
--color-muted-foreground: #737373;
--color-accent: #f5f5f5;
--color-accent-foreground: #171717;
--color-destructive: #ef4444;
--color-destructive-foreground: #fafafa;
--color-border: #e5e5e5;
--color-input: #e5e5e5;
--color-ring: #0a0a0a;
--chart-1: 12 76% 61%;
--chart-2: 173 58% 39%;
--chart-3: 197 37% 24%;
--chart-4: 43 74% 66%;
--chart-5: 27 87% 67%;
--color-sidebar-background: #fafafa;
--color-sidebar-foreground: #3f3f46;
--color-sidebar-primary: #18181b;
--color-sidebar-primary-foreground: #fafafa;
--color-sidebar-accent: #f4f4f5;
--color-sidebar-accent-foreground: #18181b;
--color-sidebar-border: #e5e7eb;
--color-sidebar-ring: #3b82f6;
--radius: 0.5rem;
--radius-lg: var(--radius);
--radius-md: calc(var(--radius) - 2px);
--radius-sm: calc(var(--radius) - 4px);
/* animations */
--animate-slideDown: accordion-down 0.2s ease-out;
--animate-slideUp: accordion-up 0.2s ease-out;
@keyframes accordion-down {
from {
height: 0px;
}
to {
height: var(--radix-accordion-content-height);
}
}
@keyframes accordion-up {
from {
height: var(--radix-accordion-content-height);
}
to {
height: 0px;
}
}
}
/* dark mode */
@variant dark (&:where(.dark, .dark *));
.dark {
--color-background: #0a0a0a;
--color-foreground: #fafafa;
--color-card: #0a0a0a;
--color-card-foreground: #fafafa;
--color-popover: #0a0a0a;
--color-popover-foreground: #fafafa;
--color-primary: #fafafa;
--color-primary-foreground: #171717;
--color-secondary: #262626;
--color-secondary-foreground: #fafafa;
--color-muted: #262626;
--color-muted-foreground: #a3a3a3;
--color-accent: #262626;
--color-accent-foreground: #fafafa;
--color-destructive: #7f1d1d;
--color-destructive-foreground: #fafafa;
--color-border: #262626;
--color-input: #262626;
--color-ring: #d4d4d4;
--chart-1: 220 70% 50%;
--chart-2: 160 60% 45%;
--chart-3: 30 80% 55%;
--chart-4: 280 65% 60%;
--chart-5: 340 75% 55%;
--color-sidebar-background: #18181b;
--color-sidebar-foreground: #f4f4f5;
--color-sidebar-primary: #1d4ed8;
--color-sidebar-primary-foreground: #fff;
--color-sidebar-accent: #27272a;
--color-sidebar-accent-foreground: #f4f4f5;
--color-sidebar-border: #27272a;
--color-sidebar-ring: #3b82f6;
}
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}- The
ChartandSidebarcomponents uses the css variable values without thevar()function which was working fine on TailwindCSS v3 but for v4 we need to wrap the values with thevar()function.
- Find all the
bg-[--color-bg]classnames and replace it withbg-[var(--color-bg)]. - Find all the
border-[--color-border]classnames and replace it withborder-[var(--color-border)].
- Find all the
w-[--sidebar-width]classnames and replace it withw-[var(--sidebar-width)]. - Find all the
w-[--sidebar-width-icon]classnames and replace it withw-[var(--sidebar-width-icon)]. - Find all the
max-w-[--skeleton-width]classnames and replace it withmax-w-[var(--skeleton-width)].
Note - The tailwind.config.ts is an empty file, it's just for the purpose of the shadcn/ui cli to work, we don't need it for the TailwindCSS v4 setup.