UD03T03_DashboardIoT

02_Vista

🎨 DESARROLLO DE LA VISTA (FXML + CSS)

πŸ“‹ PASO 1 VISTA FXML (Dashboard.fxml)

🎯 Propósito

Definir laΒ estructura visualΒ de la interfaz de usuario de forma declarativa usando XML.

1.1. Layout Principal - BorderPane

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   <top>                     β”‚
β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                β”‚
β”‚              β”‚  MenuBar    β”‚                β”‚
β”‚              β”‚  - Archivo  β”‚                β”‚
β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚               <center>                      β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚   β”‚     HBox principal (horizontal)    β”‚   β”‚
β”‚   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚   β”‚
β”‚   β”‚  β”‚ Columna  β”‚    Columna       β”‚   β”‚   β”‚
β”‚   β”‚  β”‚ Izquierdaβ”‚    Derecha       β”‚   β”‚   β”‚
β”‚   β”‚  β”‚ (360px)  β”‚    (restante)    β”‚   β”‚   β”‚
β”‚   β”‚  β”‚          β”‚                  β”‚   β”‚   β”‚
β”‚   β”‚  β”‚ β€’ Card   β”‚ β€’ Card Filtros   β”‚   β”‚   β”‚
β”‚   β”‚  β”‚  Sensor  β”‚ β€’ Card GrΓ‘fico   β”‚   β”‚   β”‚
β”‚   β”‚  β”‚ β€’ Card   β”‚                  β”‚   β”‚   β”‚
β”‚   β”‚  β”‚  Avisos  β”‚                  β”‚   β”‚   β”‚
β”‚   β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚   β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

ConfiguraciΓ³n del Eje X (Tiempo):

Propiedad Valor Significado
fx:id xAxis Referencia para modificar dinΓ‘micamente
label "Tiempo (s)" Etiqueta del eje
autoRanging false LΓ­mites MANUALES (ventana deslizante)
lowerBound 0 LΓ­mite inferior inicial
upperBound 30 LΓ­mite superior inicial (30s)
tickUnit 5 Marcas cada 5 segundos

ConfiguraciΓ³n del Eje Y (Valor):

Propiedad Valor Significado
fx:id yAxis Referencia (no se modifica en este proyecto)
label "Valor" Etiqueta del eje
autoRanging true Límites AUTOMÁTICOS (se ajustan a datos)

πŸ“‹ PASO 2: ESTILOS CSS (dashboard.css)

2.1. Estilo: Contenedor Principal

CaracterΓ­sticas en EspaΓ±ol:

Selector: .root-pad
β”œβ”€ PROPIEDAD: Color de fondo
β”‚  └─ VALOR: Gris muy claro (#f5f7fb)

Aplicado a:Β HBox principal (contenedor de las dos columnas)


2.2. Estilo: Tarjetas (Cards)

CaracterΓ­sticas:

Selector: .card
β”œβ”€ PROPIEDAD: Color de fondo
β”‚  └─ VALOR: Blanco
β”œβ”€ PROPIEDAD: Color del borde
β”‚  └─ VALOR: Gris muy suave (#e6e9f2)
β”œβ”€ PROPIEDAD: Radio de esquinas del borde
β”‚  └─ VALOR: 12 pΓ­xeles
β”œβ”€ PROPIEDAD: Radio de esquinas del fondo
β”‚  └─ VALOR: 12 pΓ­xeles
β”œβ”€ PROPIEDAD: Relleno interno (padding)
β”‚  └─ VALOR: 14 pΓ­xeles en todos los lados
└─ PROPIEDAD: Efecto visual de sombra (dropshadow)
   β”œβ”€ TIPO: Sombra difuminada gaussiana
   β”œβ”€ COLOR: Negro con 8% de opacidad
   β”œβ”€ RADIO DE DIFUMINADO: 14 pΓ­xeles
   β”œβ”€ FACTOR DE EXTENSIΓ“N: 0.15
   β”œβ”€ DESPLAZAMIENTO HORIZONTAL: 0 pΓ­xeles
   └─ DESPLAZAMIENTO VERTICAL: 3 pΓ­xeles (hacia abajo)

ExplicaciΓ³n de dropshadow:

dropshadow(tipo, color, radio, spread, offsetX, offsetY)
- tipo: gaussian (difuminado suave)
- color: rgba(0,0,0,0.08) (negro 8% opaco)
- radio: 14px (tamaΓ±o del difuminado)
- spread: 0.15 (expansiΓ³n de la sombra)
- offsetX: 0px (sin desplazamiento horizontal)
- offsetY: 3px (desplazada 3px hacia abajo)

2.3. Estilo: TΓ­tulos

Card Title:

Selector: .card-title
β”œβ”€ PROPIEDAD: TamaΓ±o de fuente
β”‚  └─ VALOR: 16 pΓ­xeles
β”œβ”€ PROPIEDAD: Grosor de fuente
β”‚  └─ VALOR: Negrita (bold)
└─ PROPIEDAD: Color del texto
   └─ VALOR: Azul oscuro (#1f2a44)

Section Title:

Selector: .section-title
β”œβ”€ PROPIEDAD: TamaΓ±o de fuente
β”‚  └─ VALOR: 13 pΓ­xeles
β”œβ”€ PROPIEDAD: Grosor de fuente
β”‚  └─ VALOR: Negrita (bold)
└─ PROPIEDAD: Color del texto
   └─ VALOR: Gris azulado oscuro (#2b3553)

2.4. Estilo: Texto Secundario

Selector: .muted
└─ PROPIEDAD: Color del texto
   └─ VALOR: Gris medio (#6b7486)

2.5. Estilo: BotΓ³n con Borde

Selector: .btn-outline
β”œβ”€ PROPIEDAD: Color de fondo
β”‚  └─ VALOR: Transparente
β”œβ”€ PROPIEDAD: Color del borde
β”‚  └─ VALOR: Azul (#2b6cb0)
β”œβ”€ PROPIEDAD: Color del texto
β”‚  └─ VALOR: Azul (#2b6cb0)
β”œβ”€ PROPIEDAD: Radio de esquinas del borde
β”‚  └─ VALOR: 10 pΓ­xeles
β”œβ”€ PROPIEDAD: Radio de esquinas del fondo
β”‚  └─ VALOR: 10 pΓ­xeles
β”œβ”€ PROPIEDAD: Relleno interno (padding)
β”‚  └─ VALORES: vertical=6px, horizontal=14px
└─ PROPIEDAD: Tipo de cursor
   └─ VALOR: Mano (hand) - indica clickeable

Pseudoclase: :hover (cuando el ratΓ³n estΓ‘ encima)
└─ PROPIEDAD: Color de fondo
   └─ VALOR: Azul con 8% de opacidad

2.6. Estilo: Pastillas de Advertencia (alertas)

Selector: .warn-pill
β”œβ”€ PROPIEDAD: Color de fondo
β”‚  └─ VALOR: Rojo con 10% de opacidad
β”œβ”€ PROPIEDAD: Color del texto
β”‚  └─ VALOR: Rojo oscuro (#b91c1c)
β”œβ”€ PROPIEDAD: Relleno interno (padding)
β”‚  └─ VALORES: vertical=8px, horizontal=10px
β”œβ”€ PROPIEDAD: Radio de esquinas del fondo
β”‚  └─ VALOR: 10 pΓ­xeles
β”œβ”€ PROPIEDAD: Radio de esquinas del borde
β”‚  └─ VALOR: 10 pΓ­xeles
└─ PROPIEDAD: Color del borde
   └─ VALOR: Rojo con 25% de opacidad

2.7. Estilo: Pastilla OK (alertas)

Selector: .ok-pill
β”œβ”€ PROPIEDAD: Color de fondo
β”‚  └─ VALOR: Verde con 10% de opacidad
β”œβ”€ PROPIEDAD: Color del texto
β”‚  └─ VALOR: Verde oscuro (#166534)
β”œβ”€ PROPIEDAD: Relleno interno (padding)
β”‚  └─ VALORES: vertical=8px, horizontal=10px
β”œβ”€ PROPIEDAD: Radio de esquinas del fondo
β”‚  └─ VALOR: 10 pΓ­xeles
β”œβ”€ PROPIEDAD: Radio de esquinas del borde
β”‚  └─ VALOR: 10 pΓ­xeles
└─ PROPIEDAD: Color del borde
   └─ VALOR: Verde con 25% de opacidad

2.8. Estilo: GrΓ‘fico

Selector: .chart
└─ PROPIEDAD: Relleno interno (padding)
   └─ VALOR: 6 pΓ­xeles

Selector: .chart-plot-background
└─ PROPIEDAD: Color de fondo del Γ‘rea de trazado
   └─ VALOR: Azul muy claro (#fbfcff)

Selectores: .chart-vertical-grid-lines, .chart-horizontal-grid-lines
└─ PROPIEDAD: Color de trazo de lΓ­neas de cuadrΓ­cula
   └─ VALOR: Negro con 8% de opacidad

🎨 PALETA DE COLORES DEL PROYECTO

Nombre CΓ³digo Uso Principal
Blanco #ffffffΒ /Β white Fondos de cards
Gris muy claro #f5f7fb Fondo general de la app
Gris borde #e6e9f2 Bordes suaves de cards
Gris medio #6b7486 Texto secundario (etiquetas)
Gris azulado #2b3553 SubtΓ­tulos
Azul oscuro #1f2a44 TΓ­tulos principales
Azul #2b6cb0 Botones y acentos
Rojo alerta #dc2626Β /Β #b91c1c Advertencias
Verde OK #16a34aΒ /Β #166534 Estado normal
Azul muy claro #fbfcff Fondo del grΓ‘fico