スキル一覧に戻る
keidsondesigner

create-component

by keidsondesigner

0🍴 0📅 2026年1月16日
GitHubで見るManusで実行

SKILL.md


name: create-component description: Cria componentes React seguindo os padrões Bewear com shadcn/ui, TypeScript e Tailwind CSS. Use quando precisar criar novos componentes ou modificar componentes existentes. tools: Read, Write, Edit, Glob, Grep, Bash

Create Component Skill

Esta skill cria componentes React seguindo os padrões estabelecidos no projeto Bewear E-commerce.

Quando Usar

  • Criar novos componentes React
  • Modificar componentes existentes
  • Adicionar interatividade a páginas Server Components

Regras Obrigatórias

1. Client vs Server Components

NUNCA adicione "use client" em page.tsx. Páginas devem sempre ser Server Components.

Para interatividade, crie um Client Component separado:

  • Se usado apenas em uma página: src/app/[rota]/components/nome-component.tsx
  • Se reutilizável: src/components/nome-component.tsx

Exemplo de referência: Ver src/app/cart/identification/page.tsx (Server) que importa src/app/cart/components/addresses.tsx (Client)

2. Nomenclatura

  • Use kebab-case para nomes de arquivos: add-address-form.tsx
  • Use PascalCase para nomes de componentes: AddAddressForm
  • Export default para o componente principal

3. shadcn/ui Components

SEMPRE use componentes shadcn/ui disponíveis:

  • Button, Card, Form, Input, Label, Tabs, Avatar, Carousel
  • Separator, ScrollArea, Sheet, RadioGroup, Dialog, Accordion, Badge

Instalar novos componentes: npx shadcn@2.9.2 add [component-name]

4. TypeScript

  • Sempre use TypeScript com tipos explícitos
  • Use z.infer para tipos derivados de schemas Zod
  • Evite any e unknown

5. Imports

// shadcn/ui components
import { Button } from "@/components/ui/button"
import { Card } from "@/components/ui/card"

// Shared components
import Header from "@/components/header"

// Icons
import { ChevronDown } from "lucide-react"

// Utilities
import { cn } from "@/lib/utils"

6. Styling

  • Use Tailwind CSS classes
  • Use cn() utility para merge condicional de classes
  • Suporte dark mode com classes do Tailwind

Template: Client Component Básico

"use client";

import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
import { useState } from "react";

const NomeComponente = () => {
  const [estado, setEstado] = useState<string>("");

  const handleAction = () => {
  };

  return (
    <Card>
      <CardHeader>
        <CardTitle>Título</CardTitle>
      </CardHeader>
      <CardContent>
        <Button onClick={handleAction}>
          Ação
        </Button>
      </CardContent>
    </Card>
  );
};

export default NomeComponente;

Template: Server Component (page.tsx)

import { headers } from "next/headers";
import { redirect } from "next/navigation";
import { auth } from "@/lib/auth";
import { db } from "@/db";
import Header from "@/components/header";
import ClientComponent from "./components/client-component";

const PageName = async () => {
  const session = await auth.api.getSession({
    headers: await headers(),
  });

  if (!session?.user) {
    redirect("/auth");
  }

  const data = await db.query.tableTable.findFirst({
    where: eq(tableTable.userId, session.user.id),
  });

  return (
    <>
      <Header />
      <div className="max-w-[1280px] mx-auto p-5">
        <ClientComponent data={data} />
      </div>
    </>
  );
};

export default PageName;

Processo de Criação

  1. Analisar requisitos: Determinar se é Client ou Server Component
  2. Verificar local: Usar /components para específico da página ou /components para reutilizável
  3. Usar shadcn/ui: Priorizar componentes existentes
  4. Seguir padrões: Ver arquivos de referência no projeto
  5. Testar: Verificar compilação TypeScript

Arquivos de Referência

  • Client Component com hooks: src/app/cart/components/addresses.tsx
  • Server Component (page.tsx): src/app/cart/identification/page.tsx
  • Form Component: src/app/auth/components/sign-in-form.tsx
  • shadcn/ui components: src/components/ui/

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です