Atelier components
Atelier - a premium, anti-slop frontend design skill suite for Claude Code: 11 skills + a deepdive knowledge base.
npx -y skills add luminary19/atelier --skill atelier-componentsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Atelier suite — turn the design system into real, accessible, production code. Scaffold a premium React/Next + Tailwind v4 + shadcn/ui project, wire the atelier-foundations tokens into shadcn's theme variables, install the best-in-class single-purpose components (Vaul drawer, Sonner toast, cmdk command palette, Tremor dashboards), set up Storybook, and assemble pages from a copy-paste premium section-block library (hero variants, bento, feature rows, pricing, nav, footer, dashboard shell, data tables, forms, empty states). Use whenever building/scaffolding a frontend project, implementing components or page sections, setting up shadcn/Tailwind, adding a drawer/toast/command-palette/charts, or assembling marketing or app UI. Default stack: React/Next + Tailwind v4 + shadcn — with a no-framework path (Basecoat / Franken UI) for vanilla HTML / Rails / Laravel / Django / Astro. Part of the Atelier suite.
SKILL.md
11.5 KB, as published. Nobody here has run it
Atelier — Component System & Build
Where the design system becomes shipping code. The goal: a coherent, accessible, premium component layer that inherits the tokens automatically (so the whole app looks designed, not assembled) and a library of section blocks that aren't the generic shadcn-default look.
Project memory: if
ATELIER.mdexists, read it first and honor its register, policies, and tokens (set up via/atelier init— theatelierrouter).Inputs: tokens from
atelier-foundations(Tailwind@theme+ shadcn mapping); the Direction Doc's archetype/aesthetic; the nav model + flows + screen-states fromatelier-ux; type fromatelier-typography; layout fromatelier-layout; motion fromatelier-motion; charts fromatelier-dataviz; UX writing (labels, errors, empty-state copy) fromatelier-copy. Harden for production withatelier-harden, then always runatelier-perf-a11ybefore shipping. Default stack: React/Next + Tailwind v4 + shadcn/ui. Deep reference:references/fundamentals-deepdive.md(§9).Data —
atelier-data: current do/don't tables for the stack —scripts/search.py "<topic>" --stack nextjs|react|shadcn|vueand--domain react(RSC / Next 15 perf). An implementation cross-check, not a substitute for the section blocks + token wiring here.
The flow
- Scaffold (Next/Vite + Tailwind v4 + shadcn) → 2. Wire tokens → shadcn → 3. Install curated components for the hard parts → 4. Assemble pages from the block library → 5. Real assets (images, icons, copy) → 6. Storybook (if a real component library) → 7. Perf/a11y gate.
1. Scaffold
Set up the house stack. Full commands + components.json + cn()/cva in references/setup.md.
Short version: Next.js (or Vite) + Tailwind v4 (@import "tailwindcss", CSS-first, no config file) +
npx shadcn@latest init. Choose the primitive layer: Base UI (actively developed, MUI team, v1) or
Radix (mature, broadest component set) — init supports both. shadcn copies component source into
your repo (you own it), uses lucide icons, class-variance-authority for variants, cn() =
twMerge(clsx(...)).
Or start from AI design→code (this stack is what they emit): v0 (image/Figma → shadcn+Tailwind,
production-grade), Magic Patterns (prompt or pasted screenshot → React/Tailwind, matches an imported
design system via Figma MCP/Storybook), Lovable / Bolt.new for full-stack/code-level. Always send
the output through §5 assets + atelier-perf-a11y (de-template first).
2. Wire tokens → shadcn (the step that makes it look designed)
Point shadcn's semantic CSS variables at the atelier-foundations OKLCH tokens (the mapping block lives
in foundations' tokens-and-output.md). This is what stops the project looking like every other
shadcn site — the components inherit your color/radius/spacing instead of the defaults. Confirm
--background/--foreground/--primary/--card/--muted/--border/--ring + --radius and the .dark block.
3. Install curated, best-in-class components
Don't hand-roll the hard interactive components — these win on feel + accessibility. Details + install +
usage in references/curated-components.md:
- Vaul — drawer / bottom sheet (mobile gesture physics). Sonner — toast (imperative
toast()). cmdk — ⌘K command palette. Tremor — dashboard charts/KPIs. (shadcn wraps the first three.) - When to choose a batteries-included framework instead (MUI/Ant/Mantine for enterprise/data-heavy) is covered there too.
4. Assemble pages from the block library
This suite ships a premium section-block library so pages don't default to the generic look. Blocks
are React + Tailwind v4 + shadcn, token-driven, responsive, accessible, with motion hooks for
atelier-motion. Adapt them to the Direction Doc — don't paste verbatim.
- Marketing blocks (
references/blocks-marketing.md): hero variants (asymmetric, giant-type, split), bento feature grid, alternating feature rows, logo strip, pricing, testimonial, sticky/mobile nav, footer, CTA band. - App blocks (
references/blocks-app.md): dashboard shell (sidebar/topbar), KPI/stat cards, data table, settings form + validated forms (react-hook-form + zod), tabs/segmented/pagination, command-palette integration, empty/loading states. (Charts/dashboards →atelier-dataviz.)
Compose with atelier-layout (grid/whitespace), atelier-typography (the type), atelier-motion
(reveals/feedback). Every block carries the perf/a11y baseline; verify with atelier-perf-a11y.
Optional — ship the block library as an installable registry. The shadcn CLI installs from any registry, so Atelier's blocks/themes can be packaged for
npx shadcn add @atelier/<item>(one command, auto-pulled deps) — seereferences/registry.md. This is a reuse convenience on the shadcn/app path; it does not replace the bespoke editorialglobals.cssdefault, and you still de-template to the Direction Doc.
5. Real assets — images & copy (stack-agnostic; do this, don't skip it)
A polished component layer with placeholder content still ships as slop. Real assets are part of the build, not an afterthought. (This applies to any stack — vanilla, React, anything.)
Icon system, the responsive image component (
next/image/<picture>), CSS image treatment (duotone/scrim/grain), and the favicon/OG pipeline are inreferences/icons-and-imagery.md; the art-direction for them (icon/illustration language, imagery mood + treatment) is set inatelier-direction.
Images — generate first, never fake.
-
Image-gen first. Make section-specific assets — hero, product/UI shots, textures, OG image — on the Direction Doc's aesthetic (art-direct every prompt: palette, mood, accent, lighting, composition, negative space). On this machine that's
/codex-imagegen(local Codex CLI, ChatGPT login, no API key). For a full premium page / hero comp — a one-image-per-section design reference, not a lone asset — use/codex-imagegen-taste(it adds the anti-slop taste layer and drives this same helper under the hood); for single one-off assets (one texture, a logo, an OG card) call the bare helper directly:$skills = if ($env:CLAUDE_CONFIG_DIR) { "$env:CLAUDE_CONFIG_DIR\skills" } else { "$env:USERPROFILE\.claude\skills" } & "$skills\codex-imagegen\scripts\codex-image.ps1" ` -Prompt "<art-directed prompt on the Direction Doc aesthetic>" -OutDir ".\public\img" -Count 1 -Size 1536x1024Size ↔ aspect: 1536×1024 landscape (hero/feature), 1024×1536 portrait, 1024×1024 square; add
-Transparentfor logos / icons / cut-outs;-Edit in.pngto refine an existing asset. Cost is ~30k tokens/image, so generate a deliberate handful (hero + a few section assets), never loop. Then optimize (required, or you trade a design Tell for a perf regression): downscale to display size, convert to WebP/AVIF, setwidth/height(CLS),loading="lazy"below the fold, realalt(alt=""if decorative). On a non-Windows box or without Codex, substitute any available image-gen (MCP/IDE) the same way. -
Never div-based fake screenshots. Hand-built
<div>dashboards / task lists / terminals / "product previews" are a Tell (seeatelier-perf-a11y/references/anti-slop-preflight.md). Use a generated image, a real screenshot, a real mini-component, or editorial imagery — or leave a labelled TODO slot and say so. -
Real logos for social proof — Simple Icons (
https://cdn.simpleicons.org/{slug}/{color}) or a generated monogram for invented brands; logos only, no category labels; render in both themes. -
Decorative imagery gets
alt=""; meaningful imagery gets realalt. A pure-text "hero" is a placeholder.
Copy — author it, then audit it. (UX writing is owned by atelier-copy — labels, errors,
empty-state and loading copy, confirmations; pull the patterns from there. The essentials inline:)
- Write real copy to the brand voice; one register per page.
- Copy self-audit before ship: re-read every visible string and cut/rewrite anything broken, ambiguous, or AI-cute (forced wordplay, mock-poetic micro-meta). No placeholder-as-label.
- No fake-precise numbers (
92%,13.4 lb): real, explicitly-labelled mock, or cut.
6. Storybook (for real design systems)
If you're building a reusable component library (not a one-off page), set up Storybook 9 — isolated
component dev + interaction tests (Vitest), a11y tests (axe across all stories), and visual regression.
Setup in references/setup.md. Skip it for small one-off sites.
7. Harden, then gate
For anything production-bound, run atelier-harden first — real/empty/huge data, text overflow,
i18n/RTL, per-status error states, double-submit/cleanup. A build that's only been seen with seed data on
the happy path isn't done. Then run atelier-perf-a11y: keyboard + screen-reader pass, visible focus, contrast, Core Web Vitals,
reduced motion — and the anti-slop / "AI Tells" check (div-faked assets, copy audit, eyebrow/CTA/
marquee Tells). shadcn/Radix/Base UI give you accessible primitives — but your composition (focus
order, labels, color, motion, real assets) still has to pass. For a substantial/award build, escalate to
atelier-review — the adversarial, multi-reviewer red-team of the finished build (no ultracode needed).
Operating principles
- Tokens first, then components. A component layer that reads
atelier-foundationssemantics is what makes the whole app cohesive; hard-coded values are the #1 cause of "assembled, not designed." - You own the code (shadcn model). Customize freely; re-pull for upstream fixes.
- Buy the hard parts (Vaul/Sonner/cmdk/Tremor) — they're better than hand-rolled and accessible.
- Use the block library, then de-template it to the Direction Doc — never ship the default shadcn look.
- Real assets, not placeholders. Generate images (image-gen-first) on the aesthetic; never div-fake screenshots; audit every visible string. Placeholder content is unfinished work, not a draft to ship.
- Accessibility is composition, not just primitives. Verify with the gate.