Agent skill

Component Creation

by LucasBassetti in LucasBassetti/godui

A skill your agent uses when creating a new component for the design system.

MITAuto-check passedFrontend & Design

Install Component Creation

skills CLI
$ npx skills add LucasBassetti/godui --skill component-creation -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LucasBassetti/godui component-creation --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LucasBassetti/godui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/component-creation .claude/skills/component-creation && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
component-creation
GitHub stars
130
Token cost
~2.1k tokens
SKILL.md length
528 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when creating a new component for the design system.

  • Works in 8 steps: Package Structure → Wiring Into the System → Storybook Story → …
  • Creating a new component for the design system
  • SKILL.md covers 1. Package Structure, 2. Wiring Into the System, 3. Storybook Story and 4. Docs Page, plus 4 more sections
  • Calls pnpm

What it does

Component Creation is an agent skill from LucasBassetti/godui. Use when creating a new component for the design system. Covers file structure, package setup, Tailwind wiring, Storybook stories, and common anti-patterns.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering CSS and styling and Design systems. It works with Tailwind CSS, Storybook and shadcn/ui. The repository describes itself as: 🙏 UI Collection for Modern Interfaces. The licence is MIT.

When your agent uses it

  • Creating a new component for the design system
  • Tasks that involve CSS and styling
  • Tasks that involve Design systems

Example prompts

  • “/component-creation”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Package Structure
  2. Wiring Into the System
  3. Storybook Story
  4. Docs Page
  5. Styling Rules
  6. Anti-Patterns
  7. Checklist
  8. Available Theme Tokens

What it can do on your machine

Read from SKILL.md and the folder at commit 1f632a7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Component Creation loads about 2.1k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 528 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~44
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from LucasBassetti/godui at commit 1f632a7, republished under its MIT licence (© LucasBassetti). 528 words, ~2,105 tokens.

Download SKILL.mdSave it as .claude/skills/component-creation/SKILL.md (or your agent's skills folder).
name
component-creation
description
Use when creating a new component for the design system. Covers file structure, package setup, Tailwind wiring, Storybook stories, and common anti-patterns.

Creating a New Component

This skill documents the general process for adding a component to the @godui/components design system monorepo.

GodUI core is now an animated drop-in for shadcn/ui. The authoritative workflow is the godui-component-creation skill: components live at packages/components/src/ui/{name}.tsx, mirror shadcn new-york-v4 (React 19 ref as prop, no forwardRef), and animate only transform/opacity/filter (CI-gated, no allowlist). Lab (expressive, experimental pieces beyond the shadcn catalog) lives in packages/lab, maintained as-is. Where this skill disagrees, godui-component-creation wins.

1. Package Structure

All components live in the shared package at packages/components/:

packages/components/
  package.json          # @godui/components
  styles.css            # theme tokens + @source "./src" + @layer components
  src/
    index.ts            # re-exports all components
    shimmer-button.tsx
    magic-button.tsx
src/{name}.tsx
typescript
import * as React from "react";

export type MyComponentVariant = "primary" | "secondary";
export type MyComponentProps = React.HTMLAttributes<HTMLDivElement> & {
  variant?: MyComponentVariant;
};

const variantClasses: Record<MyComponentVariant, string> = {
  primary: "bg-primary text-primary-foreground",
  secondary: "bg-secondary text-secondary-foreground",
};

const MyComponent = React.forwardRef<HTMLDivElement, MyComponentProps>(
  ({ className, variant = "primary", ...props }, ref) => {
    return (
      <div
        ref={ref}
        className={`base-classes ${variantClasses[variant]} ${className ?? ""}`}
        {...props}
      />
    );
  },
);
MyComponent.displayName = "MyComponent";

export { MyComponent };
src/index.ts

Add named exports for the component and its prop types:

typescript
export { MyComponent, type MyComponentProps, type MyComponentVariant } from "./my-component";

2. Wiring Into the System

A. packages/components/styles.css — required for Tailwind utilities

The package stylesheet must include @source "./src" so Tailwind scans component files for utility classes:

css
@import "tailwindcss";
@import "./theme/light.css";
@import "./theme/dark.css";

@source "./src";

Without this, Tailwind utility classes in component .tsx files (e.g. bg-primary) will not be generated.

For complex components that cannot use Tailwind utilities alone (e.g. 3D effects), add styles under @layer components in the same file.

B. apps/storybook/src/tailwind.css

Storybook imports the package stylesheet and scans component source:

css
@import "tailwindcss";
@import "@godui/components/fonts/vite.css";
@import "@godui/components/styles.css";

@source "../node_modules/@godui/components/src";
C. apps/docs/src/app/globals.css

Docs already import @godui/components/styles.css. Keep an explicit source path:

css
@source "../../../../packages/components/src";
D. apps/docs/next.config.ts

@godui/components is already in transpilePackages. No change needed unless adding a new package.

E. Storybook & docs dependencies

Both apps already depend on @godui/components via workspace:*. No pnpm install needed for new components in the shared package.

3. Storybook Story

Create apps/storybook/src/stories/{name}.stories.tsx:

typescript
import { MyComponent, type MyComponentProps } from "@godui/components";
import type { Meta, StoryObj } from "@storybook/react-vite";

const meta = {
  title: "Components/MyComponent",
  component: MyComponent,
  tags: ["autodocs"],
  parameters: {
    layout: "centered",
  },
} satisfies Meta<typeof MyComponent>;

export default meta;
type Story = StoryObj<typeof meta>;

export const Primary: Story = {
  args: {
    children: "Default",
    variant: "primary",
  } satisfies MyComponentProps,
};

Include stories for each variant, disabled state, and sizes where applicable.

4. Docs Page

Create apps/docs/content/docs/components/{name}.mdx using the Preview/Code + Installation + Usage pattern:

mdx
---
title: My Component
description: Short description.
---

import { MyComponent } from "@godui/components";

<ComponentPreview code={`import { MyComponent } from "@godui/components";

export function MyComponentDemo() {
  return <MyComponent variant="primary">Example</MyComponent>;
}`}>
  <MyComponent variant="primary">Example</MyComponent>
</ComponentPreview>

## Installation

<ComponentInstall componentName="MyComponent" />

## Usage

\`\`\`tsx
import { MyComponent } from "@godui/components";
\`\`\`

\`\`\`tsx
<MyComponent variant="primary">Example</MyComponent>
\`\`\`

## Props

| Prop | Type | Default | Description |
| ---- | ---- | ------- | ----------- |
| `variant` | `"primary" \| "secondary"` | `"primary"` | Visual style |

Add the page slug to apps/docs/content/docs/components/meta.json:

json
{
  "title": "Components",
  "pages": ["button", "my-component"]
}

ComponentPreview and ComponentInstall are registered globally in apps/docs/src/components/mdx.tsx.

5. Styling Rules

Prefer static Tailwind utility classes

All styling MUST use static, scannable Tailwind class strings:

typescript
const variantClasses: Record<string, string> = {
  primary: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
  outline: "border border-border bg-background hover:bg-accent",
};
Use design system tokens

Reference CSS custom properties through Tailwind utilities mapped in @theme inline:

typescript
"bg-primary"       // var(--color-primary)
"text-foreground"  // var(--color-foreground)
"rounded-lg"       // var(--radius-lg)
"shadow-sm"        // var(--shadow-sm)
Use @layer components for non-utility styles

When a component needs layered DOM, animations, or pseudo-elements that Tailwind utilities cannot express cleanly, add CSS classes to packages/components/styles.css:

css
@layer components {
  .my-component { /* ... */ }
}

Reference those classes from the component with static strings: className="my-component".

Show full SKILL.md (197 more words)Show less

6. Anti-Patterns

NEVER construct Tailwind class names dynamically
typescript
// WRONG
<div className={`grid-cols-${count}`} />

// CORRECT
const columnClasses: Record<number, string> = {
  4: "grid-cols-4",
  8: "grid-cols-8",
};
NEVER skip @source "./src" in styles.css

Tailwind will not generate utility classes used in component files without it.

NEVER use "use client" unnecessarily

Only add when the component uses React hooks or requires client-only APIs.

NEVER diverge from the shadcn API

Core components keep shadcn's exports, props and data-slots; ref is a regular prop (React 19), as in shadcn v4.

NEVER use arbitrary z-index values

Use the design system scale: z-base, z-raised, z-overlay, z-sticky, z-popover, z-modal, z-toast.

7. Checklist

Before considering a component done:

  • Component created at packages/components/src/ui/{name}.tsx
  • Component and prop types exported from packages/components/src/index.ts
  • @source "./src" present in packages/components/styles.css
  • Complex CSS (if any) added to @layer components in styles.css
  • Storybook story at apps/storybook/src/stories/{name}.stories.tsx with tags: ["autodocs"]
  • Docs page at apps/docs/content/docs/components/{name}.mdx
  • Page added to apps/docs/content/docs/components/meta.json
  • All Tailwind classes are static strings
  • Public API identical to shadcn (additive changes only)
  • Variant, disabled, and size stories included where applicable

8. Available Theme Tokens

CategoryExamplesUsage
Colorsbg-primary, text-foreground, border-border--color-* tokens
Radiusrounded-sm, rounded-md, rounded-lg, rounded-xl--radius-* tokens
Shadowsshadow-2xs through shadow-2xl--shadow-* tokens
Z-indexz-base, z-raised, z-overlay, z-sticky, z-popover, z-modal, z-toast--z-index-* tokens
Fontsfont-sans, font-mono, font-serif--font-* tokens

© LucasBassetti, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/component-creation of LucasBassetti/godui.

Open the folder on GitHubat commit 1f632a7

Compare with similar skills

Component Creation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Component Creation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Component Creation this skillLucasBassetti/godui130—~2.1kAutomated safety check: PassMIT
UI StylingOhh-889/skyroc79513 repos~2.5kAutomated safety check: PassMIT
Cosscrafter-station/petdex4.2k—~1.4kAutomated safety check: PassMIT
Avoid AI Designsunkaifei/FlyCms656—~3.5kAutomated safety check: PassMIT
Extract DesignManavarya09/design-extract4.2k—~786Automated safety check: NotesMIT
Unslop UIJCarterJohnson/vibecoded-design-tells513—~1.9kAutomated safety check: PassCustom licence

Similar skills

  • UI Styling

    Ohh-889/skyroc

    Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.

    795 GitHub starsUsed in 13 repos~2.5k tokens
    Frontend & DesignAuto-check passed
  • Coss

    crafter-station/petdex

    Helps implement coss UI components correctly. An agent skill from crafter-station/petdex.

    4.2k GitHub stars~1.4k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Avoid AI Design

    sunkaifei/FlyCms

    Audit and rewrite frontend UI to remove generic AI design patterns ("AI slop"), both the first-order defaults (purple gradients, Inter, a centered hero over three cards, untouched shadcn) and the…

    656 GitHub stars~3.5k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Extract Design

    Manavarya09/design-extract

    Extract the full design language from any website URL. An agent skill from Manavarya09/design-extract.

    4.2k GitHub stars~786 tokensUpdated yesterday
    Frontend & DesignAuto-check: notes
  • Unslop UI

    JCarterJohnson/vibecoded-design-tells

    Strips the cues that make a website read as AI-generated and forces a deliberate, project-specific design choice instead of the model's default.

    513 GitHub stars~1.9k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • Tailwind V4 Shadcn

    ever-works/ever-works

    Production-tested setup for Tailwind CSS v4 with shadcn/ui, Vite, and React.

    162 GitHub starsUsed in 2 repos~3.8k tokens
    Frontend & DesignAuto-check passed

More from LucasBassetti/godui

  • Godui Component Creation

    LucasBassetti/godui

    Create new core components for GodUI (@godui/components) — animated, drop-in replacements for shadcn/ui with strict GPU-only motion.

    130 GitHub stars~7.4k tokensUpdated today
    Auto-check passed
  • Godui Learn Article

    LucasBassetti/godui

    Add a "Learn" tab + tier-S design-engineer article to a GodUI component docs page.

    130 GitHub stars~5.9k tokensUpdated today
    Auto-check passed

Questions about Component Creation

What does Component Creation do?

A skill your agent uses when creating a new component for the design system. Component Creation is an agent skill from LucasBassetti/godui. Use when creating a new component for the design system.

When should I use Component Creation?

Component Creation fits situations like: creating a new component for the design system; tasks that involve CSS and styling; tasks that involve Design systems.

How do I install Component Creation in Claude Code?

Run `npx skills add LucasBassetti/godui --skill component-creation -a claude-code`. Or copy the skill folder (.agents/skills/component-creation in LucasBassetti/godui) into .claude/skills/component-creation in your project. Claude Code loads it when a task matches its description.

How do I install Component Creation in Codex?

Run `npx skills add LucasBassetti/godui --skill component-creation -a codex`. Or copy the skill folder (.agents/skills/component-creation in LucasBassetti/godui) into .agents/skills/component-creation in your project. Codex loads it when a task matches its description.

Can I use Component Creation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LucasBassetti/godui --skill component-creation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/component-creation, .gemini/skills/component-creation, .github/skills/component-creation and .opencode/skills/component-creation in your project.

What does Component Creation need to run?

Going by SKILL.md and its folder, Component Creation needs the command-line tools its instructions call (pnpm).

Does Component Creation access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Component Creation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Component Creation use?

Component Creation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Component Creation use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Component Creation?

Skills that share tags, products or a category with Component Creation: UI Styling (Ohh-889/skyroc, 795 stars), Coss (crafter-station/petdex, 4.2k stars), Avoid AI Design (sunkaifei/FlyCms, 656 stars) and Extract Design (Manavarya09/design-extract, 4.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Component Creation?

LucasBassetti (a GitHub user) maintains it in LucasBassetti/godui, which has 130 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 9, 2026.

Source: LucasBassetti/godui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.