Guía de estilos

Componentes canónicos: botones, cabecera, filtros, tablas, modales y avisos

Esta página reúne los formatos que deben usarse en todas las pantallas. Todo el sistema se carga con un único <link href="bipro-ui.css"> más Font Awesome. Reutiliza estas clases en lugar de crear estilos nuevos por página, y consume siempre las variables de tokens.css en vez de escribir colores a mano.

Color

Cada color tiene un significado fijo. No uses el azul para un botón de borrado ni el naranja para una acción principal.

blue · acción principal
green · guardar / activo
orange · editar / aviso
red · eliminar / error
green-excel · Excel
grouped-bg · superficies

Tipografía: 13px (--font-size-sm) es el tamaño de trabajo de tablas, botones y formularios; 11px (--font-size-xs) para cabeceras de tabla y etiquetas de filtro.

Sidebar

Navegación lateral de la aplicación. El módulo activo va en azul; los módulos aún no construidos se muestran deshabilitados con su etiqueta, para que se vea el mapa completo sin prometer que funcionan. El sidebar se filtra por rol: quien no tiene permiso no ve la entrada, en vez de verla y recibir un error al pulsarla.

Contenido de la página

Clases: .app-shell envuelve .sidebar + .app-main. Enlaces: .sidebar-link con .activo o .deshabilitado. En móvil (≤768px) el sidebar pasa a barra superior desplazable.

Botones

Clase base .btn más una variante de color. Solo una acción principal (azul) por pantalla.

.btn .btn-primary
.btn .btn-success
.btn .btn-warning
.btn .btn-danger
.btn .btn-secondary
.btn .btn-outline
.btn-excel

Botón "Editar" universal: siempre .btn .btn-warning (naranja), icono fa-edit y texto "Editar". En pantallas con modo edición, al activarlo se convierte en "Salir" / "Cancelar" con .btn .btn-secondary.

Tamaños y estado deshabilitado:

.btn-sm
(base)
.btn-lg
:disabled

Acciones de fila

Botones de icono tipo "chip" para las acciones dentro de una fila de tabla. Base .btn .btn-icon más un modificador de color.

.btn-icon.edit
.btn-icon.delete
.btn-icon.view
.btn-icon.save
.btn-icon.cancel
.btn-icon.toggle-on
.btn-icon.toggle-off

Cabecera de página

Título y subtítulo a la izquierda, acciones a la derecha. Orden recomendado: [Maestro] · [Nuevo] · [Excel] · [Editar].

Título de la sección

Descripción breve de lo que muestra la página

Estructura: .page-title-bar.page-title-left (h1 + .page-subtitle) + .page-actions.

Panel de filtros

Barra de desplegables sobre la tabla. Los filtros son en cascada: cada uno solo ofrece los valores que existen para la combinación actual.

Filtros

Tabla

Contenedor .table-container con cabecera .table-header (título + contador .results-count) y la tabla .apple-table: cabecera fija, filas alternas, orden y filtro por columna.

Registros 3 resultados
Código Nombre Estado Acciones
001Ejemplo uno Activo
002Ejemplo dos Inactivo
003Ejemplo tres Alquiler
Mostrando 1-3 de 216 registros
Página 1 de 9

Para tablas de pocas columnas, envuelve la columna de contenido (cabecera + filtros + tabla) en .tabla-estrecha para que no se estire a todo el ancho. La edición de un registro se hace en modal, no en línea.

Modo edición de tablas

La tabla arranca en modo lectura. Al pulsar Editar, tres señales visuales obligatorias: marco naranja en el contenedor, píldora "Modo edición activo" y borde rojo en cada celda modificada. Los cambios se acumulan y se guardan en lote, nunca celda a celda.

Modo edición activo
CódigoNombreSuperficie
001
002

Clases: .edit-mode-active (marco naranja) · .edit-mode-indicator / .edit-status.activo (píldora) · .cell-input.modified (celda cambiada). Al cancelar con cambios pendientes, modal de confirmación — nunca confirm() nativo. Detalle completo en docs/edicion.md.

Estados

Etiquetas para columnas de estado o categoría. Verde para positivo/activo, rojo para inactivo, azul para informativo, naranja para pendiente.

Activo.badge.on
Inactivo.badge.off
Alquiler.badge.info
Pendiente.badge.warn
Aprobado.status-badge.status-approved
Pendiente.status-badge.status-pending

Formularios

Etiqueta encima, control debajo. Borde fino, esquinas redondeadas y foco azul. Clase .form-field.

Introduce un número válido
.apple-switch

Botón de texto y toggle de vista

Acción terciaria sin fondo (.btn-link) y botón que activa o desactiva una vista (por ejemplo "mostrar inactivos").

.btn .btn-link
.btn-link .btn-sm
toggle inactivo
toggle activo

Avisos y notificaciones

El resultado de una acción se comunica con un toast (arriba a la derecha), nunca con alert(). Los avisos en línea (.alert) se usan para contexto permanente dentro de la página.

Aviso informativo dentro de la página.
Aviso: revisa los datos antes de continuar.
Error: faltan campos obligatorios.

Modal

Caja centrada sobre fondo oscurecido. Abrir/cerrar = añadir/quitar .visible en .modal-overlay. Es donde se edita un registro.

.modal-overlay › .modal-box