@edusites/bancos-brasil
@edusites/bancos-brasil
Biblioteca JavaScript para renderizar ícones SVG de bancos brasileiros com total customização.
Instalação
npm install @edusites/bancos-brasil
yarn add @edusites/bancos-brasil
pnpm add @edusites/bancos-brasil
Uso
O navegador baixa só os bancos que aparecem na tela: cada banco é um arquivo próprio, carregado sob demanda. No servidor (Node, SSR) tudo resolve na hora.
Nuxt (recomendado: o módulo)
Uma linha no nuxt.config registra <SvgBanco> no app inteiro e faz o build levar só os bancos que o site usa:
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@edusites/bancos-brasil/nuxt-module']
})
O módulo acha os bancos procurando os nomes entre aspas no código (nome="nubank", { banco: 'itau' }). Nome montado em tempo de execução não aparece no código: liste em incluir.
export default defineNuxtConfig({
modules: ['@edusites/bancos-brasil/nuxt-module'],
edusitesBancos: { incluir: ['cora', 'picpay'] }
})
<template>
<SvgBanco nome="nubank" />
<SvgBanco nome="cora" formato="circulo" />
<SvgBanco nome="itau" cor="#FFFFFF" fundo="#EC7000" :tamanho="96" />
</template>
Com SSR o SVG sai no HTML do servidor e o navegador reaproveita o que já está na tela (não baixa de novo nem pisca).
plugins/bancos.js:
import { instalarBancos } from '@edusites/bancos-brasil/nuxt'
export default defineNuxtPlugin((nuxtApp) => {
instalarBancos(nuxtApp)
})
Funciona igual na tela, mas o build gera um arquivo por banco da lib (o visitante só baixa os usados; os demais o Nuxt deixa como prefetch).
Vite (Vue, React, Svelte...)
Para o build levar só os bancos usados, adicione o plugin:
// vite.config.js
import { edusitesBancosVite } from '@edusites/bancos-brasil/vite'
export default {
plugins: [edusitesBancosVite({ incluir: ['cora'] })]
}
Vue 3
import { SvgBanco } from '@edusites/bancos-brasil'
<SvgBanco nome="nubank" />
<SvgBanco nome="cora" formato="circulo" />
JavaScript puro
import { svgBanco } from '@edusites/bancos-brasil/core'
// Com preset (configuração padrão)
const svg = await svgBanco({ nome: 'nubank' })
document.getElementById('app').innerHTML = svg
// Customizado
const outro = await svgBanco({
nome: 'cora',
formato: 'circulo',
cor: '#FFFFFF',
fundo: '#FE3E6D',
tamanho: 96
})
svgBanco devolve a string na hora quando o banco já está em memória (sempre no servidor) e, no navegador, uma Promise enquanto baixa o arquivo daquele banco. Com await funciona nos dois casos. Também existem svgBancoAsync (sempre Promise) e svgBancoSync (string ou null, nunca Promise).
@edusites/bancos-brasil/core não depende de Vue; a entrada principal também exporta o componente Vue.
React
import { svgBancoAsync } from '@edusites/bancos-brasil/core'
import { useEffect, useState } from 'react'
function BancoIcon({ nome, formato, cor, fundo, tamanho }) {
const [svg, setSvg] = useState('')
useEffect(() => {
let ativo = true
svgBancoAsync({ nome, formato, cor, fundo, tamanho }).then((s) => ativo && setSvg(s || ''))
return () => (ativo = false)
}, [nome, formato, cor, fundo, tamanho])
return <div dangerouslySetInnerHTML={{ __html: svg }} />
}
export default function App() {
return (
<div>
<BancoIcon nome="nubank" />
<BancoIcon nome="cora" formato="circulo" />
<BancoIcon nome="itau" cor="#FFFFFF" fundo="#EC7000" tamanho={96} />
</div>
)
}
Svelte
<script>
import { svgBancoAsync } from '@edusites/bancos-brasil/core'
export let nome
export let formato = undefined
export let cor = undefined
export let fundo = undefined
export let tamanho = undefined
let svg = ''
$: svgBancoAsync({ nome, formato, cor, fundo, tamanho }).then((s) => (svg = s || ''))
</script>
{@html svg}
Parâmetros
| Propriedade | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
nome |
string |
✅ Sim | - | Nome do banco |
formato |
string |
❌ Não | "quadrado" |
"quadrado", "circulo" ou "sem" |
cor |
string |
❌ Não | Preset | Cor do ícone (hex) |
fundo |
string |
❌ Não | Preset | Cor de fundo (hex) |
tamanho |
number |
❌ Não | 64 |
Tamanho em pixels |
className |
string |
❌ Não | - | Classe CSS |
Bancos Disponíveis
| Nome | Cor Ícone | Cor Fundo |
|---|---|---|
agibank |
#FFFFFF |
#0133B0 |
asaas |
#FFFFFF |
#0036E1 |
avenue |
#FFFFFF |
#002820 |
bancodobrasil |
#FFDD00 |
#003D7A |
bmg |
#FFFFFF |
#F26321 |
bradesco |
#FFFFFF |
#CC092F |
bs2 |
#FFFFFF |
#0021AF |
btg |
#FFFFFF |
#001E62 |
bv |
#223AD2 |
#FFFFFF |
c6 |
#FFFFFF |
#121212 |
caixa |
#FFFFFF |
#0066A1 |
cora |
#FFFFFF |
#FE3E6D |
digio |
#FFFFFF |
#00275C |
efibank |
#F37025 |
#000000 |
infinitepay |
#7DDB13 |
#171527 |
inter |
#FFFFFF |
#FF7A00 |
itau |
#FFFFFF |
#EC7000 |
iugu |
#000000 |
#FFFFFF |
mercadopago |
#0A0080 |
#00BCFF |
mercantil |
#FFFFFF |
#1526FF |
neon |
#01C4E0 |
#161C3E |
next |
#000000 |
#00FF5F |
ngcash |
#FFFFFF |
#000000 |
nomad |
#000000 |
#FFCE04 |
nubank |
#FFFFFF |
#820AD1 |
original |
#FFFFFF |
#00A857 |
pagbank |
#000000 |
#42A936 |
pan |
#414141 |
#FFFFFF |
paypal |
#222D65 |
#FFFFFF |
picpay |
#FFFFFF |
#21C25E |
revolut |
#FFFFFF |
#000000 |
rico |
#FF5200 |
#010042 |
safra |
#C3AC6C |
#151D43 |
santander |
#FFFFFF |
#EC0000 |
sicoob |
#B8D335 |
#003B43 |
sicredi |
#3DAE2B |
#FFFFFF |
stone |
#00A868 |
#FFFFFF |
stripe |
#FFFFFF |
#635BFF |
ton |
#FFFFFF |
#0DEA4A |
wise |
#163300 |
#9FE870 |
xp |
#000000 |
#FFFFFF |
Formatos
quadrado- Quadrado com bordas arredondadas (padrão)circulo- Circularsem- Sem fundo, apenas o ícone
Licença
MIT © Lecdt.com
Related Packages
Biblioteca JavaScript com 1588 ícones SVG em português (bancos, fintechs, 160+ m...
Version History
| Version | Released | License |
|---|---|---|
| 1.3.0 | MIT | |
| 1.2.0 | MIT | |
| 1.1.0 | MIT | |
| 1.0.9 | MIT | |
| 1.0.8 | MIT | |
| 1.0.7 | MIT | |
| 1.0.6 | MIT | |
| 1.0.5 | MIT | |
| 1.0.4 | MIT | |
| 1.0.3 | MIT | |
| 1.0.2 | MIT | |
| 1.0.1 | MIT | |
| 1.0.0 | MIT |