Biblioteca oficial de ícones React do ecossistema Balzer.
Compatível com React 18+, SVG otimizado, tree-shakable, build em ESModule e UMD, com documentação automática via GitHub Pages.
Os SVGs da biblioteca devem usar currentColor em fill e/ou stroke para responder corretamente à prop color do componente Icon.
Homepage: https://cesarbalzer.github.io/balzer-icon/
Package NPM: https://www.npmjs.com/package/balzer-icon/
yarn add balzer-iconou
npm install balzer-iconimport { Icon } from 'balzer-icon';
export default function Example() {
return (
<Icon name="home" size={24} color="#000" />
);
}balzer-icon/
├── lib/ # Componentes principais
│ └── Icon.tsx
├── lib/svg/ # SVGs base e índice gerado
├── utils/
│ └── generateNames.js # Script de geração automática
├── docs/ # Documentação (GitHub Pages)
├── dist/ # Build publicado no npm
├── vite.config.ts
├── vite.config.docs.ts
├── package.json
Coloque o arquivo em:
lib/svg/
Exemplo:
lib/svg/user.svg
Importante:
<path fill="currentColor" />ou
<path stroke="currentColor" />Evite cores fixas como fill="#000" ou stroke="#000", porque isso impede que a prop color do componente altere a cor do ícone.
yarn namesEsse comando atualiza automaticamente a lista de ícones.
yarn devOu visualizar docs:
yarn preview:docsBuild da biblioteca:
yarn buildOutput:
dist/
Build da documentação:
yarn build:docsOutput:
docs/
Deploy automático ocorre em:
- push na branch main
- criação de release
- execução manual do workflow
Este projeto usa Conventional Commits.
Nova funcionalidade
git commit -m "feat: add new icons"Correção
git commit -m "fix: correct icon rendering"Manutenção
git commit -m "chore: update dependencies"Documentação
git commit -m "docs: update readme"Refatoração
git commit -m "refactor: improve icon loader"git commit -m "feat!: change icon API"# adicionar ícone
lib/svg/new-icon.svg
# gerar nomes
yarn names
# testar
yarn dev
# commit
git add .
git commit -m "feat: add new icon"
# push
git push origin mainyarn install
yarn devA biblioteca é construída usando:
- Vite (build tool)
- TypeScript
- Rollup (via Vite)
- SVG como fonte primária
- geração automática de tipos
- output em ESModule e UMD
Fluxo interno:
SVG → generateNames → Icon component → Vite build → dist → npm publish
React é definido como peerDependency para evitar duplicação.
Passos:
git clone https://github.com/CesarBalzer/balzer-icon
cd balzer-icon
yarn installCriar branch:
git checkout -b feat/new-iconsAdicionar ícones e gerar nomes:
yarn namesCommit:
git commit -m "feat: add new icons"Push:
git push origin feat/new-iconsCriar Pull Request.
MIT
Autor: Cesar Balzer