# IzyPagos · Design System

Sistema de diseño oficial de **IzyPagos** (fintech de pagos). Tokens, estilos base,
componentes y un preset de Tailwind — **framework-agnóstico** y listo para copiar a un
repositorio o publicar como paquete privado, para reutilizar la marca en cualquier proyecto.

> La guía visual completa (estrategia, voz, reglas de uso, logo) vive en el manual
> `../index.html`. Este paquete es la **capa de implementación** de esa identidad.

## Contenido

```
design-system/
├─ package.json
├─ tokens/
│  ├─ tokens.css        # custom properties (fuente de verdad en runtime) + tema oscuro
│  ├─ tokens.scss       # variables SCSS
│  └─ tokens.json       # W3C design tokens (para pipelines / Style Dictionary)
├─ css/
│  ├─ izypagos.css      # bundle: importa todo lo de abajo
│  ├─ reset.css         # reset moderno y neutro
│  ├─ base.css          # tipografía, enlaces, foco, cuerpo
│  ├─ components.css     # botones, inputs, badges, alerts, cards, tabla, switch, tabs…
│  └─ utilities.css      # contenedor, stack/cluster, spacing, helpers de texto
├─ tailwind/
│  └─ izypagos.preset.js # preset con colores, tipografía, radios y sombras de marca
└─ assets/logo/         # logo en SVG + PNG + favicon/app icons
```

## Instalación

### Opción A — copiar la carpeta
Copia `design-system/` a tu repo (por ejemplo en `src/design-system/`) e impórtala.

### Opción B — dependencia local / privada
```bash
npm install ./ruta/al/design-system
# o publícalo en tu registro privado y:
npm install @izypagos/design-system
```

## Uso

### 1) CSS puro (cualquier stack)
```html
<!-- Tipografías públicas (SIL OFL) -->
<link href="https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet"/>
<!-- Sistema de diseño -->
<link rel="stylesheet" href="design-system/css/izypagos.css"/>
```
```js
// o con bundler
import '@izypagos/design-system';           // todo
import '@izypagos/design-system/tokens';    // solo tokens
```

```html
<button class="btn btn-primary">Cobrar ahora</button>
<span class="badge badge-approved">Aprobado</span>
<div class="card">…</div>
```

### 2) Solo tokens (usa tus propios componentes)
```css
@import '@izypagos/design-system/tokens';
.mi-boton { background: var(--accent); color:#fff; border-radius: var(--radius-md); }
```

### 3) Tailwind CSS
```js
// tailwind.config.js
import izypagos from '@izypagos/design-system/tailwind';
export default { presets: [izypagos], content: ['./src/**/*.{html,js,ts,jsx,tsx,vue}'] };
```
```html
<button class="bg-izy-600 text-white rounded-md px-5 py-3 font-semibold">Cobrar</button>
```

## Tema oscuro
Activa el tema oscuro con un atributo en la raíz:
```html
<html data-theme="dark"> … </html>
```
Todos los tokens de rol (`--bg`, `--surface`, `--fg`, `--accent`…) se recalculan solos.

## Principios (resumen)
- **Un acento por pantalla** — azul primario, cian secundario, verde solo para "aprobado".
- **Rojo = solo error/rechazo**, nunca decorativo.
- **Tipografía**: Sora (display) · Inter (cuerpo) · IBM Plex Mono (datos/montos, `tabular-nums`).
- **Radios** 8/12/16/24 · **grid base 8px** · sombras suaves (3 niveles).
- **Accesibilidad**: contraste AA, foco visible, objetivos táctiles ≥ 44px.

## Versionado
SemVer. Cambios de token o de API de componente = *minor*/*major* según impacto.

© IzyPagos. Recurso oficial de marca.
