smithery.ai

component-development

When you are creating or modifying UI components. Use this skill to ensure consistency with the design system and shadcn/ui.

First seen Mar 25, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,657 B
  • docs SUMMARY.md 153 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 4 installs

SKILL.md

Component Development

1. Core Principles

  • Library First: Shared components live in libs/ui.
  • Strict Separation: libs/ui CANNOT depend on apps/nextblock. It must remain publishable as a standalone package.
  • Tech Stack: React, Tailwind CSS, Radix UI, Lucide React.

2. Directory Structure (libs/ui)

  • src/lib/: All UI components — both base Shadcn/UI components (Button, Input, etc.) and custom complex components live here as flat files.
  • src/styles/globals.css: Tailwind configuration and global styles.
  • src/styles/: Additional CSS files (theme, typography, animations, base, components).

3. Workflow

Creating a new component

  1. Shared Component:

- Create in libs/ui/src/lib/<Name>.tsx. - Export from libs/ui/src/index.ts. - Use nx lint ui to verify.

  1. App-Specific Component:

- Create in apps/nextblock/components/. - Only do this if the component is tightly coupled to Next.js features (like cookies, headers, or specific app logic).

Styling

  • Use className with Tailwind utility classes.
  • Use cn() utility from @nextblock-cms/utils for conditional class merging.
  • Do not use CSS modules or styled-components unless absolutely necessary.

4. Best Practices

  • Client Components: Add 'use client' at the top if using hooks (useState, useEffect) or event listeners.
  • Accessibility: Use Radix UI primitives where possible to ensure a11y compliance.