Build Astro UI with Tailwind CSS and daisyUI
Astro is strongest when pages ship as HTML and CSS, with JavaScript added only where interaction needs it. A UI library can ruin that advantage if it turns ordinary page sections into hydrated widgets.
Content sites also need variety. Docs, landing pages, changelog pages, pricing sections, and dashboards all need different rhythms. A fixed component kit can make every page look boxed-in and generic.
Then comes customization. If the UI library uses old CSS patterns or hard-coded component themes, a simple visual change can spread across many files.
Tailwind CSS works naturally in Astro. daisyUI adds component classes that keep Astro pages HTML-first.
No hydration cost for static UI: daisyUI components are CSS classes, so static Astro sections stay static.
: Use the same btn, card, badge, and tabs classes in .astro files and in React, Vue, Svelte, or Solid islands.
Good for content pages: Alerts, accordions, mockups, stats, and cards cover many editorial and docs patterns.
Easy theme control: Set a daisyUI theme in your Astro layout and let pages inherit the design tokens.
Astro keeps JavaScript selective. daisyUI gives the page a consistent UI system without forcing everything into a framework component.
Astro uses the Tailwind CSS Vite plugin in the current guide. Install Tailwind CSS, @tailwindcss/vite, and daisyUI, add the Vite plugin in astro.config.mjs, then add @plugin "daisyui" to your CSS file.
For the exact commands, see How to install daisyUI with Astro.
Used by engineers at