GitHub Stars

Installation

Install Fulldev UI for Astro.

Fulldev UI is distributed as a shadcn-compatible @fulldev registry for Astro projects. The setup below keeps your project aligned with the examples in this documentation.

Create new Astro project

If you don’t have a project yet, we recommend using this starter template.

Add to existing Astro project

Because Fulldev UI uses shadcn-compatible registry tooling, run the shadcn init command to set up your project:

npx shadcn@latest init

If the CLI prompts for defaults, choose Astro and keep CSS variables enabled.

Add the Fulldev UI base styles

Copy src/styles/global.css into your project, then import it from your app layout.

The starter stylesheet includes the theme variables used by Fulldev UI and is the expected baseline for the component examples.

Edit tsconfig.json file

Add the following code to the tsconfig.json file to resolve paths:

{
  "compilerOptions": {
    // ...
    "baseUrl": ".",
    "paths": {
      "@/*": [
        "./src/*"
      ]
    }
    // ...
  }
}

Add Fulldev UI registry

Add Fulldev UI as a namespaced registry to your components.json file:

{
  "registries": {
    "@fulldev": "https://ui.full.dev/r/{name}.json"
  }
}

Once the registry is present, all install commands in this docs site should work as written.

Use a container-aware app shell

Fulldev UI uses Tailwind CSS v4 container query variants such as @2xl: and @max-5xl:. These are intentional and should not be converted to viewport breakpoints like 2xl:.

To make those variants work, add @container to the root wrapper that contains your page content:

---
import "@/styles/global.css"
---

<body class="@container">
  <slot />
</body>

Add Components

You can now start adding components to your project.

npx shadcn@latest add @fulldev/button

or multiple resources at once:

npx shadcn@latest add @fulldev/button @fulldev/card @fulldev/section

Add all components

npx shadcn@latest add @fulldev/components

Usage

The commands above will add components to your project. You can then import them like this:

---
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 + Fulldev UI</title>
  </head>
  <body class="@container">
    <div class="grid h-screen place-items-center content-center">
      <Button>Button</Button>
    </div>
  </body>
</html>

At that point, you can follow the component pages directly and install only the pieces you need.