bren-icons
v2.2.0
Published
Uma biblioteca completa de 300+ ícones SVG personalizados para React, construída com TypeScript e otimizada para performance
Maintainers
Readme
🎨 Bren Icons
Uma biblioteca completa de 323 ícones SVG personalizados para React, construída com TypeScript e otimizada para performance.
✨ Características
- 323 ícones SVG organizados por categoria
- Componentes React TypeScript totalmente tipados
- Props personalizáveis (size, color, className)
- Tree-shaking suportado para bundles otimizados
- Acessibilidade integrada com atributos ARIA
- Suporte a CommonJS e ES Modules
- Zero dependências externas
- Bundle size otimizado
🚀 Instalação
NPM
npm install bren-iconsYarn
yarn add bren-iconsPNPM
pnpm add bren-iconsCDN (para uso direto no browser)
<script src="https://unpkg.com/[email protected]/dist/index.js"></script>📖 Uso Básico
import { Home, Search, Add, Star } from 'bren-icons';
function App() {
return (
<div>
<Home size={24} color="#007bff" />
<Search size={32} color="#28a745" />
<Add size={48} color="#dc3545" />
<Star size={36} color="gold" />
</div>
);
}🎨 Props Disponíveis
Todos os ícones aceitam as seguintes props:
| Prop | Tipo | Padrão | Descrição |
|------|------|--------|-----------|
| size | number \| string | 24 | Tamanho do ícone em pixels |
| color | string | currentColor | Cor do ícone |
| className | string | '' | Classes CSS adicionais |
| ...props | SVGProps | - | Todas as props padrão de SVG |
🔧 Uso Avançado
Uso Dinâmico
import { Icons } from 'bren-icons';
function IconRenderer({ iconName, ...props }) {
const IconComponent = Icons[iconName];
if (!IconComponent) {
return <span>Ícone não encontrado</span>;
}
return <IconComponent {...props} />;
}
// Uso
<IconRenderer iconName="Home" size={32} color="blue" />Customização com CSS
import { Home } from 'bren-icons';
function CustomIcon() {
return (
<Home
className="my-custom-icon hover:scale-110 transition-transform"
size={24}
/>
);
}Ícones com Estados
import { Home } from 'bren-icons';
function NavigationIcon({ isActive }) {
return (
<Home
color={isActive ? '#007bff' : '#6c757d'}
className={`transition-colors ${isActive ? 'scale-110' : ''}`}
/>
);
}📚 Ícones Disponíveis (323 Total)
🧭 Navegação (12 ícones)
AccountCircle- Ícone de perfil de usuárioHouse- Ícone de casaHouseFilled- Ícone de casa preenchidoLocationOn- Ícone de localizaçãoLocationOnFilled- Ícone de localização preenchidoMail- Ícone de emailMailOpen- Ícone de email abertoMenu- Ícone de menu hambúrguerMenu3dot- Ícone de menu com 3 pontosNavigateBefore- Ícone de navegação anteriorNavigateNext- Ícone de navegação próximaSearch- Ícone de busca
⚡ Ações (26 ícones)
Add- Ícone de adicionarAddCircle- Ícone de adicionar em círculoCancel- Ícone de cancelarCancelCircleRed- Ícone de cancelar em círculo vermelhoCheck- Ícone de verificaçãoCheckCircleGreen- Ícone de verificação em círculo verdeCheckList- Ícone de lista de verificaçãoCheckSmall- Ícone de verificação pequenoCheckbox- Ícone de checkboxCheckboxfilled- Ícone de checkbox preenchidoCheckboxoutlineblank- Ícone de checkbox vazioCheckboxoutlineblankminus- Ícone de checkbox vazio com menosCheckboxoutlineblankminusfilled- Ícone de checkbox vazio com menos preenchidoClose- Ícone de fecharCopy- Ícone de copiarDelete- Ícone de deletarDownload- Ícone de downloadEdit- Ícone de editarEyeclosed- Ícone de olho fechadoEyeopen- Ícone de olho abertoInboxDownload- Ícone de caixa de entrada para downloadInboxUpload- Ícone de caixa de entrada para uploadRadioButtonChecked- Ícone de botão de rádio marcadoRadioButtonUnchecked- Ícone de botão de rádio desmarcadoScissor- Ícone de tesouraSeal- Ícone de seloShare- Ícone de compartilharUpload- Ícone de upload
🎬 Mídia (17 ícones)
Camera- Ícone de câmeraFastForwardFilled- Ícone de avançar rápido preenchidoFastbackrewind- Ícone de voltar rápidoFastbackrewindfilled- Ícone de voltar rápido preenchidoFastfoward- Ícone de avançar rápidoGIF- Ícone de GIFMic- Ícone de microfoneMusicNote- Ícone de nota musicalPause- Ícone de pausarPhoto- Ícone de fotoPlay- Ícone de reproduzirPlayfilled- Ícone de reproduzir preenchidoSkip- Ícone de pularSkipfilled- Ícone de pular preenchidoSkippreviousback- Ícone de pular para anteriorSkippreviousbackfilled- Ícone de pular para anterior preenchidoVideocam- Ícone de câmera de vídeo
💫 Interface (13 ícones)
AlertCircleYellow- Ícone de alerta amareloBookmark- Ícone de marcadorBookmarkFilled- Ícone de marcador preenchidoEyeopen- Ícone de olho abertoGroups- Ícone de gruposHeart- Ícone de coraçãoNotifications- Ícone de notificaçõesPerson- Ícone de pessoaSettings- Ícone de configuraçõesSettingsfilled- Ícone de configurações preenchidoSmile- Ícone de sorrisoStar- Ícone de estrelaStarFilled- Ícone de estrela preenchida
🚗 Transporte (6 ícones)
Bus- Ícone de ônibusCar- Ícone de carroCarParking- Ícone de estacionamentoDirectionsWalk- Ícone de direções para caminhadaSubway- Ícone de metrôTaxi- Ícone de táxi
💬 Comunicação (3 ícones)
ChatBubble- Ícone de balão de chatInbox- Ícone de caixa de entradaSend- Ícone de enviar
⚙️ Sistema (9 ícones)
Darkmode- Ícone de modo escuroFolder- Ícone de pastaFolderFilled- Ícone de pasta preenchidaLightmode- Ícone de modo claroMoon- Ícone de luaSplitSceneRounded- Ícone de cena dividida arredondadaSplitSceneRoundedFilled- Ícone de cena dividida arredondada preenchidaSun- Ícone de solTreedothorizontal- Ícone de árvore horizontal
📝 Formulário (0 ícones)
Nenhum ícone específico de formulário ainda
₿ Criptomoeda (2 ícones)
Bitcoin- Ícone de BitcoinBitcoinfilled- Ícone de Bitcoin preenchido
🛠️ Utilitários (38 ícones)
AlertCircle- Ícone de alertaArrowSquareIn- Ícone de seta para dentro do quadradoArrowSquareOut- Ícone de seta para fora do quadradoArrowleft- Ícone de seta para esquerdaArrowright- Ícone de seta para direitaAttachFile- Ícone de anexar arquivoCalendar- Ícone de calendárioClock- Ícone de relógioDotsSixVertical- Ícone de 6 pontos verticaisInternet- Ícone de internetKeyboard- Ícone de tecladoKeyboardReturn- Ícone de tecla returnKeyboardarrowdown- Ícone de seta do teclado para baixoKeyboardarrowup- Ícone de seta do teclado para cimaKeyboardleft- Ícone de seta do teclado para esquerdaKeyboardright- Ícone de seta do teclado para direitaLetterSpacing- Ícone de espaçamento de letrasLinkForward- Ícone de link para frenteMinikeydown- Ícone de tecla mini para baixoMinikeyright- Ícone de tecla mini para direitaMinikeyup- Ícone de tecla mini para cimaMinusSign- Ícone de sinal de menosMobileFriendly- Ícone de mobile friendlyTicket- Ícone de ingressoTicketFilled- Ícone de ingresso preenchidoTranslation- Ícone de tradução
🎨 Demo Interativo
Visite nosso demo online: Demo Bren Icons
✨ Funcionalidades do Demo
- Visualização completa de todos os 323 ícones
- Busca em tempo real por nome ou categoria
- Filtros por categoria organizados
- Cópia de código com um clique
- Interface responsiva para todos os dispositivos
- Preview em tempo real dos ícones
🚀 Tecnologias do Demo
- Next.js 14 - Framework React moderno
- Tailwind CSS - Estilização responsiva
- TypeScript - Tipagem estática
- Vercel - Deploy automático
🛠️ Desenvolvimento
Pré-requisitos
- Node.js 16+
- npm/yarn/pnpm
Setup Local
# Clone o repositório
git clone https://github.com/SrPalha/Bren-Icons.git
cd Bren-Icons
# Instale dependências
npm install
# Gere componentes de ícones
npm run generate-icons
# Build do projeto
npm run build
# Desenvolvimento
npm run devScripts Disponíveis
| Script | Descrição |
|--------|-----------|
| npm run build | Build de produção |
| npm run dev | Modo desenvolvimento |
| npm run generate-icons | Gera componentes de ícones |
| npm run clean | Limpa arquivos de build |
| npm run publish:check | Verifica se pode publicar |
📁 Estrutura do Projeto
src/
├── icons/ # Componentes dos ícones
├── types/ # Definições TypeScript
└── index.ts # Arquivo principal de exportação
scripts/
├── generate-icons.js # Script para gerar componentes
└── publish.js # Script de publicação
examples/
└── index.html # Exemplo interativo
demo/ # Demo Next.js para Vercel
├── app/ # Páginas Next.js
├── components/ # Componentes React
└── package.json # Dependências do demo🌐 Deploy
Demo na Vercel
O demo está configurado para deploy automático na Vercel:
- Conecte o repositório na Vercel
- Deploy automático a cada push para main
- Domínio personalizado disponível
- Build otimizado para produção
Configuração Automática
- ✅
vercel.jsonconfigurado - ✅ Build command otimizado
- ✅ Output directory correto
- ✅ Framework detectado automaticamente
🤝 Contribuindo
Contribuições são bem-vindas! Por favor, leia nosso Guia de Contribuição antes de submeter um Pull Request.
Como Contribuir
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Adicionando Novos Ícones
- Adicione o arquivo SVG na pasta
icones/ - Execute
npm run generate-icons - Teste se o ícone aparece corretamente
- Faça commit das mudanças
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🙏 Agradecimentos
- React pela base sólida
- TypeScript pela tipagem estática
- SVG pelos ícones vetoriais
- Vercel pelo hosting do demo
- Comunidade pelo feedback e contribuições
📞 Suporte
- Issues: GitHub Issues
- Documentação: README.md
- Demo: Demo Online
- NPM: bren-icons
Desenvolvido com ❤️ pela Bren para a comunidade React
