Fuente de verdad visual del CRM Webservise. Todo componente nuevo se documenta acá antes de usarse en las pantallas del admin.
Variables en tokens.css + themes.css.
Rampa neutra --gray-0…--gray-11 (oscuro y claro) + aliases semánticos.
Nunca hardcodear hex en páginas.
Mismo índice = mismo rol en ambos temas (0 canvas → 11 más elevado / contraste).
Para matices finos usá la rampa; en componentes preferí aliases (--color-shell, --color-input…).
Modo claro/oscuro en themes.css (data-theme en <html>).
Color principal configurable vía WebserviseTheme.setPrimary('#hex') — persiste en localStorage.
En componentes usar siempre --color-accent, nunca --color-primary directo.
Familia: Inter (--font-family).
Heading 2xl — 28px bold
Heading xl — 24px semibold
Heading lg — 18px semibold
Body md — 16px regular
Body base — 14px regular
Body sm secondary — 13px
Caption xs muted — 11px
Label caps — secciones sidebar
Usar tokens de radius. Bordes: --color-border-subtle, --color-border o --color-border-strong.
| Token | Valor | Uso |
|---|---|---|
--radius-sm | 6px | Badges internos, shortcuts |
--radius-md | 8px | Botones, inputs, nav items |
--radius-lg | 12px | Cards, paneles |
--radius-xl | 16px | Modales (futuro) |
--radius-full | 9999px | Avatares, badges circulares |
Librería Lucide (estilo Linear: trazo fino, sin relleno). Uso: <i data-lucide="nombre"></i>.
Ver catálogo en lucide.dev.
Stroke: 1.5. Tamaños vía .icon--sm (16px), .icon--md (18px), .icon--lg (24px).
| Contexto | Tamaño | Clase contenedora |
|---|---|---|
| App rail | 20px | .app-rail__icon |
| Sidebar nav | 16px | .sidebar__icon |
| Botones | 14px | .btn |
| Botón icon-only | 18px | .btn--icon |
| Stat card KPI | 18px | .stat-card__icon |
| Empty state | 32px | .empty-state__icon |
| Input búsqueda | 16px | .input-group__icon |
Regla: nunca emojis en la UI. Siempre iconos Lucide.
Barra de sistema a la izquierda (.app-rail, fondo --color-rail) para cambiar entre
las grandes secciones del Admin (Trabajo, Equipo, Mail, Chat…). Se mantiene oscura en ambos temas,
el ítem activo usa un recuadro accent y las etiquetas van en mayúsculas.
El menú contextual (.sidebar) cambia según la sección activa.
Sección tipo proyecto (inspiración Asana). Estilos en assets/css/tareas.css.
Una sola lista de tareas en assets/js/tareas.js alimenta las vistas
list, board, calendar y panel.
Las pestañas se pueden reordenar (drag); la primera es la vista predeterminada.
Tags: .task-tag + modificador de color.
Agenda del productor agrupada por compañía. Estilos en assets/css/contactos.css.
Exportación lista: .vcf (iPhone, Android, Apple, Google) y CSV de Google Contacts.
Sync nativo Google (People API) y Apple (CardDAV) queda documentado como próximo: Apple no ofrece API web pública comparable.
Clase base .btn + modificador.
Clase .input. Para búsqueda con icono: .input-group.
Clase .card. Header opcional con título y link.
Disponible próximamente
Sin vencimientos en los próximos 60 días
Clase .stat-card con icono semántico.
Notificaciones en sidebar y contadores.
Clase .empty-state para cuando no hay datos.
Sin movimientos en las últimas 48 horas
La actividad reciente aparecerá acá cuando haya novedades.
Componentes de la sección Agenda. Estilos extra en assets/css/agenda.css.
Esquina superior derecha del calendario — .calendar-dropdown.
Filtra: Todos, Vencimientos, Cobranzas, Refacturaciones, Tickets, Cumpleaños.
.modal — diálogo centrado con backdrop. Cerrar con Escape, backdrop o botón ×.
Creación de tareas inline (composer en lista, tablero o día) y panel
.tasks-day-panel (tareas del día). No usar overlay a pantalla completa para estos flujos.
Por defecto muestra las tareas de hoy en .calendar-panel__day (solo en vistas Mes y Lista).
Al seleccionar otro día en el calendario, lista sus eventos.
--color-accent*. Grises: rampa --gray-0…--gray-11 o aliases (--color-shell, --color-surface-sunken, --color-input…).data-theme en <html>. Color principal: --color-primary (solo vía WebserviseTheme).icons.css y usan clases existentes.data-lucide — nunca emojis..app-rail): nav general del Admin, fondo --color-rail (siempre oscuro). Sidebar (.sidebar): navegación contextual de la sección activa..sidebar__link--active con fondo accent-muted..label-caps en .sidebar__section-label..card__link en color accent.