Skip to content
Agentmart
Submit a tool

tailwind-shadcn

shadcn/ui + Tailwind CSS standards.

Skill by O-Marsters-1997

IndexedMIT
Write a review

Chalk Labs

Need help deploying tailwind-shadcn?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/o-marsters-1997-tailwind-shadcn

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

shadcn/ui + Tailwind CSS standards. Auto-detects the framework — React uses the shadcn CLI with Base UI primitives, SolidJS uses shadcn-solid with Kobalte. TRIGGER — load BEFORE writing or editing any styling, not after: a `class=` or `className=` attribute is being added or changed; tailwind.config.*, globals.css, or anything under components/ui/ is touched; the prompt names Tailwind, shadcn, a variant, a design token, a CSS variable, a responsive breakpoint, dark mode, or a colour; or an arbitrary bracket value like [24px] or [#1a1a1a] is about to be written. Trigger on plain requests — "style this", "add a colour", "make this responsive", "match the other buttons" — the user will not say "Tailwind discipline"; the class attribute is the trigger. SKIP only when no styling and no component file is touched.

Use cases: design, frontend, writing, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/tailwind-shadcn

Tools it pre-approves 9

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash(npx
  • shadcn@latest
  • *),
  • Bash(pnpm
  • dlx
  • Bash(bunx
  • --bun
  • shadcn-solid@latest
  • *)

What's inside

Skill name
tailwind-shadcn
Description
shadcn/ui + Tailwind CSS standards. Auto-detects the framework — React uses the shadcn CLI with Base UI primitives, SolidJS uses shadcn-solid with Kobalte. TRIGGER — load BEFORE writing or editing any styling, not after: a `class=` or `className=` attribute is being added or changed; tailwind.config.*, globals.css, or anything under components/ui/ is touched; the prompt names Tailwind, shadcn, a variant, a design token, a CSS variable, a responsive breakpoint, dark mode, or a colour; or an arbitrary bracket value like [24px] or [#1a1a1a] is about to be written. Trigger on plain requests — "style this", "add a colour", "make this responsive", "match the other buttons" — the user will not say "Tailwind discipline"; the class attribute is the trigger. SKIP only when no styling and no component file is touched.
License
MIT
Allowed tools
Bash(npx, shadcn@latest, *),, Bash(pnpm, dlx, shadcn@latest, *),, Bash(bunx, --bun, shadcn@latest, *),, Bash(npx, shadcn-solid@latest, *),, Bash(pnpm, dlx, shadcn-solid@latest, *),, Bash(bunx, --bun, shadcn-solid@latest, *)
Instructions
260 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves some shell commands

Files (9)

  • SKILL.md
  • evals.json · evals/
  • cli-shadcn-solid.md · references/
  • cli.md · references/
  • cva.md · references/
  • formatting.md · references/
  • primitives-solid.md · references/
  • responsive.md · references/
  • theming.md · references/

SKILL.md (first lines)

# Tailwind + shadcn/ui

Apply these patterns whether you're building new UI from scratch or refactoring existing code — the rules are the same either way.

## Detect framework first

This skill serves two ecosystems. Before doing anything, read `package.json` to detect which one you're in:

- **`react` / `react-dom` present → React mode.** Primitive layer is **Base UI**; the CLI is the official **`npx shadcn@latest`**. Gather project context by running:
  ```json
  npx shadcn@latest info --json
  ```
  Key fields: `tailwindVersion` (v4 uses `@theme inline`; v3 uses `tailwind.config.js`), `tailwindCssFile` (always edit this file for CSS variables — never create a new one), `aliases` (use the actual alias prefix for imports, never hardcode), `base` (the primitive layer).
- **`solid-js` present → Solid mode.** Primitive layer is **Kobalte** (Zaidan components); the CLI is **`npx shadcn-solid@latest`** (much thinner — no `info`/`search`/`docs`). Gather project context by reading `ui.config.json` + `package.json`. See [references/cli-shadcn-solid.md](./references/cli-shadcn-solid.md) and [references/primitives-solid.md](./references/primitives-solid.md).

## Framework mode

| Concern               | React mode                                                         | Solid mode                                                                                         |
| --------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
| Primitive layer       | Base UI — see "Primitive layer APIs" below                         | Kobalte (Zaidan) — see [references/primitives-solid.md](./references/primitives-solid.md)          |
| CLI                   | `npx shadcn@latest` — see [references/cli.md](./references/cli.md) | `npx shadcn-solid@latest` — see [references/cli-shadcn-solid.md](./references/cli-shadcn-solid.md) |
| JSX class attribute   | `className`                                                        | `class`                                                                                            |
| Component composition | `asChild` + `Slot`                                                 | `<Dynamic>` / Kobalte polymorphic `as`                                                             |
| Lists                 | `.map(... key={})`                                                 | `<For each>` / `<Index>`                                                                           |

**Normalization note (Solid mode):** the styling discipline below and the shared references (`theming.md`, `responsive.md`, `cva.md`) use React (`className`) syntax in their examples. In Solid mode, **read every `className` as `class`**, read `.map(...)`+`key` as `<For each>`, and ignore React-only constructs (`React.*` types, `asChild`, `Slot`). See [references/primitives-solid.md](./references/primitives-solid.md) for the Solid equivalents. The Tailwind/token discipline itself is identical in both modes.

---

## Principles

1. **Reusability first — exhaust existing options before writing any inline/custom component.** Work down this ladder in order:
   1. **Search what the project already has.** Scan the UI components directory (`resolvedPaths.ui` in React mode; the components dir in Solid mode) for an existing component that fits.
   2. **Extend what exists.** If an existing component nearly fits and it makes semantic sense, reuse it. Add a new `cva` variant **only when the styling will be reused in more than one place** — for a one-off, prefer composition or a `className` override. Don't reach for a variant by default; overusing `cva` adds complexity. See [references/cva.md](./references/cva.md).
   3. **Bring in an available component.** Check the registry before writing custom UI — `npx shadcn@latest search` (React); browse the shadcn-solid catalog (Solid, no `search`). Check community registries too.
   4. **Only then write custom code**, and consult the component docs first (`npx shadcn@latest docs <component>` in React mode) for the recommended reusable pattern.
2. **Compose, don't reinvent.** Settings page = Tabs + Card + form controls. Dashboard = Sidebar + Card + Chart + Table.
3. **Use built-in variants before custom styles.** `variant="outline"`, `size="sm"`, etc.
4. **Use semantic colors.** `bg-primary`, `text-muted-foreground` — never raw values like `bg-blue-500`.

---

## Critical Rules

These rules are always enforced.

### Colors

- **Never** use raw Tailwind palette values (`text-blue-500`, `bg-emerald-600`) in application code.
- **Never** hardcode hex/rgb/oklch values inline in className strings.
- **Use semantic tokens** for all color decisions: `bg-primary`, `text-destructive`, `border-border`.
- For status indicators with no matching token, use `Badge` variants first. If a reusable semantic token is needed (e.g. `--success`), add it to the theme.

### Spacing & layout

- **No `space-x-*` or `space-y-*`.** Use `flex` + `gap-*` instead. `space-y-4` → `flex flex-col gap-4`.
- **`size-*` when width = height.** `size-10` not `w-10 h-10`.
- **`truncate`** not `overflow-hidden text-ellipsis whitespace-nowrap`.

### Component styling

- **`className` is for layout, not overrides.** Acceptable: `max-w-md mx-auto mt-4`. Not acceptable: `bg-blue-100 text-blue-900 font-bold`.
- **Built-in variants first.** Exhaust `variant="outline"`, `variant="destructive"`, `size="sm"` before adding new ones.
- **Add a new variant sparingly** — only when a styling pattern repeats (used in more than one place) and no built-in fits. Edit the component source using `cva`. Not every component needs variants; a one-off doesn't warrant one. See [references/cva.md](./references/cva.md).

### Class merging

- **`cn()` for all conditional or merged classes.** No `${isActive ? 'bg-primary' : 'bg-muted'}` in className.
- **No manual `z-index`** on overlay components (Dialog, Sheet, Popover, Tooltip, Drawer). They manage their own stacking.
- **No manual `dark:` overrides.** Semantic tokens handle theme switching via CSS variables.

---

## CSS Architecture

### Variables at `:root`

All color tokens are CSS custom properties on `:root` in the global CSS file (`tailwindCssFile` from project context). Never scatter variable definitions across component files.

```css
:root {
  --background: oklch(1 0 0);
  --foreground: oklch(0.145 0 0);
  --primary: oklch(0.205 0 0);
  --primary-foreground: oklch(0.985 0 0);
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.556 0 0);
  /* ... see references/theming.md for the full token set */
}
```

**OKLCH:** `oklch(lightness chroma hue)` — perceptually uniform, so equal chroma values look equally saturated across hues. Prefer it over HSL.

### Map variables to Tailwind

With **Tailwind v4**, register every CSS variable via `@theme inline`:

```css
@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --color-primary: var(--primary);
  --color-primary-foreground: var(--primary-foreground);
  /* ... see references/theming.md for the full mapping */
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
}
```

### Apply base styles

```css
@layer base {
  * {
    @apply border-border;
  }
  body {

From O-Marsters-1997/my-claude-code, MIT.

More from O-Marsters-1997/my-claude-code

Signals

Stars
0
Forks
0
Open issues
10
Last commit (this folder)
Aug 22, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from O-Marsters-1997

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get tailwind-shadcn running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying tailwind-shadcn?

CallGet help
Cite this page

tailwind-shadcn skill. Agent Mart. https://agentmart.dev/skills/o-marsters-1997-tailwind-shadcn (last updated 2026-10-24)