Package Exports
- eai-frontend-components
- eai-frontend-components/dist/index.esm.js
- eai-frontend-components/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eai-frontend-components) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
🎨 EAI Design System Components
Biblioteca de componentes UI reutilizáveis baseada em shadcn/ui e Radix UI para projetos EAI.
📦 Instalação
# NPM
npm install eai-frontend-components
# Yarn
yarn add eai-frontend-components
# PNPM
pnpm add eai-frontend-components
🌟 Por que usar eai-frontend-components?
- ⚡ Performático: Tree-shaking otimizado, apenas importe o que usar
- 🎨 Personalizável: Baseado em Tailwind CSS com tokens de design
- ♿ Acessível: Construído com Radix UI primitives (WCAG 2.1)
- 🔧 TypeScript: Totalmente tipado para melhor DX
- 🌙 Dark Mode: Suporte nativo a múltiplos temas
- 📱 Responsivo: Mobile-first e totalmente adaptativo
- 🚀 Moderno: React 18+, ESM, e as melhores práticas
🚀 Release Automático
Este projeto usa Semantic Release para publicação automática no NPM:
feat:
→ Nova funcionalidade (versão minor)fix:
→ Correção de bug (versão patch)feat!:
→ Breaking change (versão major)
Exemplo:
git commit -m "feat: adicionar componente DatePicker"
git push origin master
# → Versão 2.0.4 vira 2.1.0 automaticamente! 🎉
📚 Documentação Adicional
- 📖 Guia de Publicação - Como funciona o release automático
- 📝 Conventional Commits - Padrão de commits obrigatório
🚀 Características
- ⚡ Performance: Componentes otimizados com Tree-shaking
- 🎨 Customizável: Sistema de design tokens com Tailwind CSS
- ♿ Acessível: Construído com Radix UI primitives
- 🔧 TypeScript: Totalmente tipado
- 📦 Modular: Importe apenas o que você precisa
- 🌙 Dark Mode: Suporte nativo a temas
📦 Instalação
npm install eai-frontend-components
# ou
yarn add eai-frontend-components
🛠️ Configuração
1. Adicione os estilos CSS
Importe os estilos globais no seu projeto:
// src/main.tsx ou src/App.tsx
import 'eai-frontend-components/dist/styles.css';
2. Configure o Tailwind CSS
Adicione o conteúdo da biblioteca no seu tailwind.config.js
:
module.exports = {
content: [
"./src/**/*.{js,ts,jsx,tsx}",
"./node_modules/eai-frontend-components/dist/**/*.{js,ts,jsx,tsx}",
],
// ... resto da configuração
}
3. Configure as variáveis CSS
Adicione as variáveis de tema no seu CSS:
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
/* ... outras variáveis */
}
🎯 Uso Básico
import { Button, Card, Input } from 'eai-frontend-components';
function App() {
return (
<Card className="p-6">
<Input placeholder="Digite algo..." />
<Button onClick={() => alert('Clicou!')}>
Clique aqui
</Button>
</Card>
);
}
📚 Componentes Disponíveis
Layouts
Card
- Cartões com header, content e footerSheet
- Painel lateral deslizanteDialog
- Modais e dialogsAccordion
- Conteúdo expansível
Formulários
Button
- Botões com múltiplas variantesInput
- Campos de textoSelect
- Seletor dropdownCheckbox
- Caixas de seleçãoRadioGroup
- Grupos de radio buttonsTextarea
- Área de textoSwitch
- InterruptoresSlider
- Controles deslizantes
Navegação
Tabs
- Abas navegáveisBreadcrumb
- Navegação hierárquicaPagination
- Paginação de dadosCommand
- Paleta de comandos
Feedback
Alert
- Alertas e notificaçõesToast
- Notificações temporáriasProgress
- Barras de progressoBadge
- Etiquetas e tagsSkeleton
- Loading states
Exibição de Dados
Table
- Tabelas estruturadasAvatar
- Imagens de perfilCalendar
- Seletor de datasTooltip
- Dicas contextuais
🎨 Customização
Variantes de Componentes
<Button variant="default">Padrão</Button>
<Button variant="outline">Contorno</Button>
<Button variant="ghost">Fantasma</Button>
<Button variant="destructive">Destrutivo</Button>
Tamanhos
<Button size="sm">Pequeno</Button>
<Button size="default">Padrão</Button>
<Button size="lg">Grande</Button>
Classes Customizadas
<Button className="bg-purple-600 hover:bg-purple-700">
Customizado
</Button>
🌙 Dark Mode
Configure o dark mode adicionando a classe dark
ao elemento raiz:
// Exemplo com context
const [theme, setTheme] = useState('light');
return (
<div className={theme === 'dark' ? 'dark' : ''}>
<App />
</div>
);
📖 Storybook
Execute o Storybook para visualizar todos os componentes:
yarn dev
🔧 Desenvolvimento
# Instale as dependências
yarn install
# Desenvolvimento com watch
yarn build:watch
# Build de produção
yarn build
# Lint
yarn lint
📝 Exemplos
Formulário Completo
import {
Card,
CardContent,
CardHeader,
CardTitle,
Button,
Input,
Label,
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue
} from 'eai-frontend-components';
function ContactForm() {
return (
<Card className="w-96">
<CardHeader>
<CardTitle>Contato</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<div>
<Label htmlFor="name">Nome</Label>
<Input id="name" placeholder="Seu nome" />
</div>
<div>
<Label htmlFor="type">Tipo</Label>
<Select>
<SelectTrigger>
<SelectValue placeholder="Selecione..." />
</SelectTrigger>
<SelectContent>
<SelectItem value="comercial">Comercial</SelectItem>
<SelectItem value="suporte">Suporte</SelectItem>
</SelectContent>
</Select>
</div>
<Button className="w-full">Enviar</Button>
</CardContent>
</Card>
);
}
🤝 Contribuição
- Faça o fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature
) - Commit suas mudanças (
git commit -m 'feat: adiciona nova feature'
) - Push para a branch (
git push origin feature/nova-feature
) - Abra um Pull Request
📄 Licença
MIT © EAI Team