# web Frontend Angular (standalone, zoneless, señales) del ERP base. Interfaz densa y ligera estilo SAP Business One. ```bash npm run dev:web # desde la raíz; http://localhost:4200 (proxy /api -> localhost:3000) npm run build -w apps/web npm test -w apps/web ``` ## Criterios de rendimiento Es un ERP, no un sitio publicitario: rápido y ligero. - Sin librerías de UI (nada de Material/PrimeNG): componentes propios, densos (13 px). - Fuentes del sistema, sin webfonts; sin animaciones. - Zoneless + `OnPush`; rutas con `loadComponent` para cargar solo lo que se usa. - Presupuesto del bundle inicial: aviso a 260 kB, error a 400 kB (`angular.json`). Hoy: ~200 kB (56 kB comprimido). - Listas largas con paginación del servidor (`$top/$skip`) o virtualización. ## Temas El color sale solo de variables CSS (`src/styles/themes/*.css`). Tema por defecto: **claro**, con la paleta del mockup de Oferta de ventas. Agregar un tema: 1. `src/styles/themes/.css` con un bloque `:root[data-theme='']` (copiar los tokens de `light.css`). 2. `@import` en `src/styles.css`. 3. Una entrada en `src/app/core/theme/themes.ts`. Tokens: `--app --shell --shell-ink --shell-quiet --win --panel --line --line-soft --ink --quiet --field --field-ro --field-b --focus --gold --grid-head --row-sel --row-alt --ok --ok-bg --warn --warn-bg --err --err-bg --btn --btn-b --btn-h --overlay --shadow-pop`. ## Tipos compartidos `@basic-erp/sap-types` (`libs/sap-types`): usuario, respuestas de la API y el evaluador de permisos de menú, los mismos que usa el backend.