# Iconografía — MiCapi DS

## Familia única: Lucide (outline, 1.5px stroke)

MiCapi usa **Lucide** como sistema único de íconos. Es open-source (ISC), tiene cobertura completa para flujos financieros/cripto, y mantiene una weight consistente que coincide con la sobriedad del brand.

- Stroke uniforme: **1.5px**
- Estilo: outline (sin fills decorativos, sin variantes filled mezcladas)
- Tamaños canónicos: **16px** (inline en texto), **20px** (botones), **24px** (nav, headers), **32px+** (estados vacíos)
- Color: hereda `currentColor` salvo en estados semánticos (success/warning/error).

## Cómo usar

### Vía CDN (recomendado para prototipos y este DS)

```html
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
<i data-lucide="wallet"></i>
<script>lucide.createIcons();</script>
```

### En producción

Recomendamos `lucide-react` (`npm i lucide-react`) para tree-shaking real. Importar **solo** los íconos usados; no el paquete entero.

## Inventario base — íconos críticos para MiCapi

| Flujo | Íconos |
|---|---|
| Navegación | `home`, `arrow-left-right`, `wallet`, `clock`, `user` |
| Acciones | `arrow-up`, `arrow-down`, `repeat-2` (swap), `plus`, `minus`, `copy`, `check`, `x` |
| Cripto / tokens | `bitcoin`, `coins`, `landmark` (banco) |
| KYC / seguridad | `shield-check`, `id-card`, `camera`, `fingerprint`, `lock` |
| Feedback | `check-circle-2`, `alert-circle`, `alert-triangle`, `info`, `loader-2` |
| Datos | `eye`, `eye-off`, `search`, `filter`, `download`, `external-link` |
| Status | `circle-dot`, `clock-3`, `circle-check`, `circle-x` |

## Reglas

- **Nunca mezclar familias.** Si Lucide no tiene un ícono, se solicita custom hecho con la misma stroke-width y construcción geométrica.
- **No usar emoji** como sustitutos de íconos. Ni en UI, ni en notificaciones, ni en marketing.
- **No usar caracteres Unicode** (✓, →, etc.) como íconos. Solo Lucide o nada.
- Íconos siempre con `aria-label` o `aria-hidden="true"` si decorativos.
- Para íconos de información popover/(i) usar específicamente `info` (círculo con `i`). Spec en `aviso-privacidad-inapp.md` §0.

## Substituciones flagged

- `bitcoin` de Lucide se usa para el logotipo de BTC dentro de UI. Para logos canónicos de tokens en listas de mercado se recomienda usar **logos oficiales** (CoinGecko CDN o asset interno). Pendiente decisión del equipo de marca.

## Logo MiCapi — caveat

El logo oficial **no fue entregado**. En `assets/logo/` hay un wordmark + monograma provisionales construidos con Inter Semibold y el primary teal aprobado, siguiendo las reglas de marca. **Substitución temporal — pendiente entrega del archivo oficial.**
