Conversão de moedas em tempo real — Fiat + Cripto + Gráficos
- Bootstrap 5.3.8 — Layout responsivo via CDN (css + js bundle)
- Material Design 3 — Visual completo com sistema de cores Material, elevation/shadows, ripple effects, cards arredondados, FABs, chips, tipografia Inter
- Material Icons — Substituição total de emojis por Material Icons Outlined via CDN
- Criptomoedas — Integração com CoinGecko API (sem chave!)
- Conversor de cripto → moeda fiduciária
- Lista das Top 10 criptos com preço e variação 24h
- Gráfico histórico de criptomoedas (1d a 1 ano)
- Dark Mode — Alternância com ícone, respeitando preferência do sistema
- 4 Seções — Moedas Fiat, Cripto, Histórico, Gráficos
- Navegação Mobile — Bottom navigation em telas pequenas
| Tecnologia | Versão | Uso |
|---|---|---|
| Bootstrap | 5.3.8 | Grid, utilitários, bundle JS |
| Material Icons | Outlined | Ícones em toda a UI |
| Inter | Google Fonts | Tipografia Material |
| Chart.js | 4.4.7 | Gráficos de variação |
| Frankfurter API | — | Cotações fiat (BCE) |
| CoinGecko API | v3 | Preços e gráficos de cripto |
- Clone ou baixe este repositório
- Abra
index.htmlno navegador — funciona 100% client-side! - Nenhuma dependência para instalar (tudo via CDN)
# Ou sirva com qualquer servidor estático:
npx serve .
# ou
python3 -m http.server 8000ExchangeRate.fun/
├── index.html ← Página principal (Bootstrap + Material Icons)
├── styles.css ← Material Design 3 completo (light/dark)
├── app.js ← Lógica: Fiat + Crypto + Charts
├── types.ts ← Definições TypeScript
├── tsconfig.json ← Config do TypeScript
└── README.md
- URL:
https://api.frankfurter.app - Auth: Nenhuma necessária
- Endpoints:
/latest,/{date}..{date} - Fonte: Banco Central Europeu
- URL:
https://api.coingecko.com/api/v3 - Auth: Nenhuma necessária (API pública)
- Rate limit: ~10-30 calls/min (por IP)
- Endpoints:
GET /simple/price— Preço de moedas específicasGET /coins/markets— Top N com dados de mercadoGET /coins/{id}/market_chart— Gráfico histórico
Nota: A CoinGecko API pública tem rate limit por IP. Em caso de erro 429, aguarde alguns segundos e tente novamente.
- Primary:
#4f46e5(Indigo 600) - Crypto:
#f59e0b(Amber 500) - Surface:
#fef7ff - On Surface:
#1c1b1f
- Primary:
#b8b0ff - Crypto:
#fbbf24 - Surface:
#141218 - On Surface:
#e6e1e5
- Level 1–4 com box-shadow progressivo
- Cards:
elevation-2(repouso) →elevation-3(hover)
- Cards com
border-radius: 16px - FABs com
border-radius: 16px - Chips/pílulas com
border-radius: 9999px - Ripple effect em botões e FABs
- Snackbar para notificações
- Dropdowns com busca para seletores de moeda
- Desktop: Layout com grid Bootstrap, tabs no app bar
- Mobile (<768px): Bottom navigation, layout empilhado
MIT — Use livremente!
ExchangeRate.fun © 2026