mcpField
S
shadcn-svelte

shadcn-svelte

github.com/antstanleyDesign & UI675 installsUpdated 38w ago
Repository

About shadcn-svelte

A Svelte 5 and SvelteKit component library port of shadcn/ui, built with Bits UI and Tailwind CSS. It provides accessible UI components and documentation for setup, forms, theming, and component use.

Key features

  1. 01Svelte 5 and SvelteKit components
  2. 02Accessible UI components
  3. 03Bits UI and Tailwind CSS
  4. 04CLI-based component installation
  5. 05Guides for forms and theming

Use cases

  1. 01Build SvelteKit interfaces
  2. 02Add dialogs, buttons, and cards
  3. 03Implement forms with validation
  4. 04Configure themes and dark mode

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/antstanley/shadcn-svelte-skill --skill shadcn-svelte

After installing, type/shadcn-sveltein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
about.md
changelog.md
cli.md
components-json.md
references/components/
accordion.md
alert-dialog.md
alert.md
aspect-ratio.md
avatar.md
badge.md
breadcrumb.md
button-group.md
button.md
calendar.md
card.md
carousel.md
chart.md
checkbox.md
collapsible.md
combobox.md
command.md
context-menu.md
data-table.md
date-picker.md
dialog.md
drawer.md
dropdown-menu.md
empty.md
field.md
form.md

Details

From the project README

shadcn-svelte

A Svelte 5 / SvelteKit port of shadcn/ui - beautifully designed, accessible components built with Bits UI and Tailwind CSS.

Quick Start

Installation
# SvelteKit
pnpm dlx shadcn-svelte@latest init

# Add components
pnpm dlx shadcn-svelte@latest add button card dialog
Basic Usage

Components use namespace imports:

<script lang="ts">
  import * as Card from "$lib/components/ui/card/index.js";
  import { Button } from "$lib/components/ui/button/index.js";
</script>

<Card.Root>
  <Card.Header>
    <Card.Title>Title</Card.Title>
    <Card.Description>Description</Card.Description>
  </Card.Header>
  <Card.Content>Content here</Card.Content>
  <Card.Footer>
    <Button>Action</Button>
  </Card.Footer>
</Card.Root>

Key Patterns

Component Import Pattern
<!-- Compound components (most components) -->
import * as Dialog from "$lib/components/ui/dialog/index.js";

<!-- Single components -->
import { Button } from "$lib/components/ui/button/index.js";
import { Input } from "$lib/components/ui/input/index.js";
Form Implementation

Use Superforms + Formsnap for forms:

<script lang="ts">
  import * as Form from "$lib/components/ui/form/index.js";
  import { superForm } from "sveltekit-superforms";

  let { data } = $props();
  const form = superForm(data.form);
</script>

<form method="POST" use:form.enhance>
  <Form.Field {form} name="email">
    <Form.Control>
      {#snippet children({ props })}
        <Input {...props} type="email" />
      {/snippet}
    </Form.Control>
    <Form.FieldErrors />
  </Form.Field>
</form>
Dark Mode
<!-- +layout.svelte -->
<script lang="ts">
  import { ModeWatcher } from "mode-watcher";
</script>

<ModeWatcher />
{@render children()}

Toggle with toggleMode(), setMode("dark"), or resetMode() from mode-watcher.

Reference Documentation

Detailed documentation is organized in references/:

  • Overview: about.md, cli.md, components-json.md, theming.md
  • Installation: installation/sveltekit.md, installation/astro.md, installation/vite.md
  • Components: components/[name].md - 59 component guides
  • Dark Mode: dark-mode/svelte.md, dark-mode/astro.md
  • Migration: migration/svelte-5.md, migration/tailwind-v4.md
  • Registry: registry/getting-started.md - custom registry creation
Finding Component Documentation

For any component, read references/components/[component-name].md:

  • Button → references/components/button.md
  • Dialog → references/components/dialog.md
  • Data Table → references/components/data-table.md

Common Tasks

TaskReference
Add a componentpnpm dlx shadcn-svelte@latest add [name]
Form validationreferences/components/form.md
Data tablesreferences/components/data-table.md
Theming/colorsreferences/theming.md
Dark modereferences/dark-mode/svelte.md
Custom registryreferences/registry/getting-started.md

Comments

Markdown supported