<img src="https://vitejs.dev/logo.svg" width="40" align="left" />
npm install ies2-aulapp-ui-kitKit de componentes React construído com Vite (library mode), shadcn/ui, Tailwind CSS 4 e Iconsax. O objetivo é publicar este pacote no npm e reutilizá-lo em múltiplas aplicações, com Storybook integrado para desenvolvimento e documentação isolada.
- React 19 + TypeScript
- Vite 7 configurado para build de biblioteca (ES/CJS + declarações .d.ts)
- Tailwind CSS 4 + @tailwindcss/postcss + tokens do shadcn/ui
- shadcn/ui + Radix UI para primitives
- Iconsax como biblioteca de ícones padrão
- Storybook 10 (builder Vite) + Vitest + Playwright para rodar histórias como testes
- Node.js 20+
- pnpm 10 (corepack enable pnpm facilita o setup)
``bash`
pnpm install
| Comando | Descrição |
| ---------------------- | --------------------------------------------------------------------------------------- |
| pnpm dev | Playground local (src/App.tsx) para inspecionar o kit em tempo real. |pnpm build
| | Build padrão (dev/preview do repo). |pnpm build:lib
| | Gera os artefatos em dist/ (ESM, CJS, tipos e style.css) prontos para publicação. |pnpm storybook
| | Sobe o Storybook em http://localhost:6006 com Tailwind e Iconsax carregados. |pnpm storybook:build
| | Exporta a documentação estática para storybook-static/. |pnpm test
| | Executa o Vitest com o addon do Storybook (cada story roda em Chromium via Playwright). |pnpm storybook:test
| | Atalho direto para o projeto de testes do Storybook. |pnpm lint
| | Executa ESLint, incluindo regras específicas para .stories. |
`cn
src/
├─ components/
│ └─ ui/
│ ├─ button.tsx # componente base usando shadcn/ui + Radix Slot
│ └─ button.stories.tsx # documentação e testes isolados (Storybook)
├─ lib/utils.ts # helper (clsx + tailwind-merge)`
├─ index.ts # ponto de entrada do pacote (reexporta os componentes públicos)
└─ App.tsx # showcase local consumindo o UI Kit
- Tailwind 4 roda através de @tailwindcss/postcss, configurado em postcss.config.cjs.tailwind.config.ts
- O tema () replica os tokens do shadcn e já define variantes personalizadas.src/index.css
- contém os tokens (CSS variables) e estilos específicos do kit (sem utilities/preflight).iconsax-react
- é a biblioteca oficial de ícones; exemplos de uso aparecem no App.tsx e nas stories.
Para evitar conflitos com o Tailwind do app (ex.: classes responsivas md:* sendo sobrescritas),
o UI Kit publica apenas tokens/estilos próprios em um arquivo de estilo dedicado.
No seu main.tsx/index.tsx, faça um único import global:
`ts`
import 'ies2-aulapp-ui-kit/style.css'
> Nota: não importe CSS a partir do entrypoint JS do pacote (import { Button } ...).
> O import de estilos é intencionalmente explícito.
1. Ajuste package.json (nome/versão, descrição, palavras-chave, etc.).pnpm run build:lib
2. Gere o build da lib: .pnpm run storybook:build
3. (Opcional) Gere a doc estática: e publique em algum CDN.npm login
4. Faça login no npm () e rode npm publish --access public.
> Importante: apenas os módulos exportados por src/index.ts serão incluídos no pacote. Sempre reexporte novos componentes ali.
1. Abra uma issue descrevendo o componente ou ajuste desejado.
2. Crie uma branch feat/ ou fix/.pnpm lint
3. Toda alteração deve incluir stories/variantes e passar por , pnpm test e pnpm build.
4. Envie o PR com screenshots/GIFs atualizados do Storybook.
- Adicionar tokens de fundação (cores, tipografia, espaçamentos) como páginas dedicadas no Storybook.
- Automatizar publicação (GitHub Actions + npm) e deploy do Storybook (Vercel/Netlify).
- Expandir a galeria usando pnpm dlx shadcn@latest add