Astro

Install Default File UI in Astro with the React integration.

Use Create

Design your setup in a live studio, then copy one command tailored to this framework.

Open Create for Astro

Use the CLI

Scaffold a new project with Default File UI already configured.

  1. 01

    Scaffold with the CLI

    Creates the framework app and wires Default File UI (package, CSS, and framework config). The kit owns the app stylesheet in a project it scaffolds, so template tokens never shadow kit tokens.

    Scaffold with the CLI (npm)

    npx --yes -p @default-file/ui df-ui init -t astro --name my-astro-app
  2. 02

    Start the app

    Move into my-astro-app and run the dev server.

    Start the app (npm)

    npm run dev
  3. 03

    Add a component

    Copy the Button source into your app and import from `@/default-file-ui/components/df-button`. Those files become yours. Later kit releases do not replace them unless you run `df-ui add button --force`. To use the package instead, skip this step and import from `@default-file/ui`.

    Add a component (npm)

    npx --yes -p @default-file/ui df-ui add button
  4. 04

    Use a component

    Use a component

    ---
    import { Button } from "@default-file/ui/components/df-button"
    ---
    <Button client:load>Click me</Button>

Existing project

Configure with the CLI in your app folder, or follow the manual steps.

  1. 01

    Create a project

    Include the React integration. Skip if you already have Astro + React.

    Create a project

    npm create astro@latest
    npx astro add react
  2. 02

    Configure with the CLI

    Configure with the CLI (npm)

    npx --yes -p @default-file/ui df-ui init --framework astro
  3. 03

    Or install manually

    Or install manually (npm)

    npm install @default-file/ui react react-dom lucide-react
  4. 04

    Import the stylesheet

    Import once in a shared layout (for example `src/layouts/Layout.astro`). Keep this import first in the file. Starter templates often declare their own `--background`, `--foreground`, or `--border` under `:root`. Those names are kit semantic tokens, so remove or rename them to keep kit theming and dark mode intact.

    Import the stylesheet

    ---
    import "@default-file/ui/css/df-index.css"
    ---
    <html lang="en">
    <body>
    <slot />
    </body>
    </html>
  5. 05

    Add a component

    Copy the Button source into your app and import from `@/default-file-ui/components/df-button`. Those files become yours. Later kit releases do not replace them unless you run `df-ui add button --force`. To use the package instead, skip this step and import from `@default-file/ui`.

    Add a component (npm)

    npx --yes -p @default-file/ui df-ui add button
  6. 06

    Use a component as an island

    Interactive widgets need a client directive so Astro hydrates them.

    Use a component as an island

    ---
    import { Button } from "@default-file/ui/components/df-button"
    ---
    <Button client:load>Click me</Button>

Notes

  • Static presentational usage can omit a client directive; selects, popovers, sliders, and similar controls need `client:load` or `client:visible`.

Using a different stack? Choose another framework.