Zaidan

Command Palette

Search for a command to run...

GitHub

Astro

Install and configure shadcn/ui with Zaidan for Astro using SolidJS.

Create project

Start by creating a new Astro project with SolidJS and Tailwind CSS:

Configure TypeScript Paths

Add the following to your tsconfig.json to enable path aliases:

tsconfig.json
{
"extends": "astro/tsconfigs/strict",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
}

Run the CLI

Run the shadcn init command to setup your project:

Configure your Shadcn installation

Update the components.json file to point to the Zaidan registry and use the kobalte style:

components.json
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "kobalte",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/styles/globals.css",
"baseColor": "neutral", // or "gray", "stone", "zinc"
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"rtl": false,
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"menuColor": "default", // or "inverted"
"menuAccent": "subtle", // or "bold"
"registries": {
"@zaidan": "https://zaidan.carere.dev/r/{style}/{name}.json"
}
}

Customize your Design System

Customize your Design System then

Add Components

You can now start adding components to your project.

The command above will add the Button component to your project. You can then import it like this:

src/pages/index.astro
---
import { Button } from "@/components/ui/button"
---
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="generator" content={Astro.generator} />
<title>Astro + TailwindCSS</title>
</head>
<body>
<div className="grid place-items-center h-screen content-center">
<Button>Button</Button>
</div>
</body>
</html>