Reglas de estilos — Frontend
Tokens y variables
- Colores y tema: usar siempre variables Ionic (
--ion-color-primary,--ion-text-color,--ion-background-color,--ion-color-step-*). El tema claro/oscuro se aplica por clase en el root. - Definiciones de paleta: solo en
src/theme/variables.scss(y en el bloque de tema claro deglobal.scsspara el light mode). No definir hex/rgb nuevos en SCSS de páginas o componentes.
❌ Prohibido
.report-selector ion-segment {
--background: #1a1a1a;
}
.chart-box { background: #1a1a1a; border: 1px solid #333; }
.report-selector ion-segment {
--background: var(--ion-background-color);
}
.chart-box {
background: var(--ion-card-background);
border: 1px solid var(--ion-color-step-200);
}
- AG Grid y terceros: si el componente no acepta variables CSS, definir un bloque en
global.scss(o en un único archivo de tema) con variables--ag-*y referenciar variables Ionic allí. No repetir los mismos hex en varios archivos.
!important
- Evitar
!importantsalvo para sobrescribir estilos de librería (Ionic/AG Grid) cuando no haya otra forma. Si se usa, comentar el motivo.
❌ Prohibido
✅ Correcto/* Forzar fondo opaco en modal empleados (tema claro) para contraste */
.employee-list-modal .modal-content {
background: var(--ion-card-background);
}
/* Si realmente hace falta: background: var(--ion-card-background) !important; */
Duplicación
- Estilos de modales genéricos (backdrop, content, header): definir una vez en
global.scss(p. ej..employee-list-modal) y reutilizar. No copiar el mismo bloque endashboard.page.scssytime-control.page.scss.
Media queries
- Breakpoint principal desktop:
768px. Mantener consistencia; si se añade otro (ej. 640px), documentarlo aquí o en el archivo.