@sailingrotevista/rotevista-dash 3.0.4 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/style.css +116 -83
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sailingrotevista/rotevista-dash",
3
- "version": "3.0.4",
3
+ "version": "3.0.5",
4
4
  "description": "Public Wind Dashboard with navigation and course aids",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
package/style.css CHANGED
@@ -81,58 +81,45 @@ body {
81
81
  }
82
82
 
83
83
  /* ==========================================================================
84
- 4. TIPOGRAFIA GERARCHICA (REGOLE BASE + PROTEZIONE SCHERMI BASSI)
84
+ 4. TIPOGRAFIA GERARCHICA (OTTIMIZZATA PER TUTTI I DISPLAY)
85
85
  ========================================================================== */
86
86
 
87
87
  /* --- VALORI STANDARD (STW, SOG, DEPTH, TWS) --- */
88
88
  .value {
89
89
  color: #000;
90
- /* Default Tablet: Usiamo cqw per la larghezza ma controlliamo l'altezza con cqh */
91
- font-size: clamp(1.2rem, 25cqh, 32cqw);
90
+ /* Su Tablet: 25% altezza box. Su schermi stretti max 32% larghezza */
91
+ font-size: clamp(1.1rem, 25cqh, 32cqw);
92
92
  font-weight: 600; line-height: 0.85; letter-spacing: -1.5px;
93
93
  margin-top: auto; margin-bottom: 2px;
94
94
  }
95
95
 
96
- /* PROTEZIONE IPHONE LANDSCAPE: Se lo schermo è basso (<450px), riduciamo l'altezza del font */
96
+ /* Protezione iPhone Landscape: Schermi molto bassi */
97
97
  @media screen and (max-height: 450px) {
98
- .value { font-size: clamp(1.1rem, 18cqh, 28cqw) !important; }
99
- }
100
-
101
- /* PROTEZIONE SMART: Se il box è stretto (Split View), riduciamo leggermente */
102
- @container (max-width: 300px) {
103
- .value { font-size: clamp(1.1rem, 24cqw, 2.8rem) !important; letter-spacing: -1px; }
98
+ .value { font-size: clamp(1rem, 18cqh, 25cqw) !important; }
104
99
  }
105
100
 
106
101
  /* --- VALORI MEDIATI (HEADING, COG, TWA, AWA) --- */
107
102
  .value-large {
108
103
  font-weight: 600; line-height: 1; margin: auto 0;
109
- /* Default Tablet: 55% dell'altezza del box */
110
- font-size: clamp(1.5rem, 55cqh, 25cqw) !important;
104
+ /* 55cqh riempie il box verticalmente, 22cqw protegge la larghezza */
105
+ font-size: clamp(1.5rem, 55cqh, 22cqw) !important;
111
106
  }
112
107
 
113
- /* PROTEZIONE IPHONE LANDSCAPE: Se lo schermo è basso, abbassiamo al 40% */
114
108
  @media screen and (max-height: 450px) {
115
- .value-large { font-size: clamp(1.4rem, 40cqh, 22cqw) !important; }
116
- }
117
-
118
- @container (max-width: 300px) {
119
- .value-large { font-size: clamp(1.4rem, 45cqh, 25cqw) !important; }
109
+ .value-large { font-size: clamp(1.4rem, 40cqh, 20cqw) !important; }
120
110
  }
121
111
 
122
112
  /* --- BOX TWD (Bussola Meteo) --- */
123
113
  .value-with-compass {
124
114
  display: flex; flex-direction: row; justify-content: space-between;
125
- align-items: center; width: 100%; height: 85%;
115
+ align-items: center; width: 100%; height: 85%;
126
116
  }
127
-
128
117
  .box-twd .mini-compass {
129
118
  height: 85cqh !important; width: auto !important; aspect-ratio: 1/1; flex-shrink: 0;
130
119
  }
131
-
132
- /* PROTEZIONE IPHONE LANDSCAPE: Rimpiccioliamo la bussola se il box è basso */
133
120
  @media screen and (max-height: 450px) {
134
121
  .box-twd .mini-compass { height: 65cqh !important; }
135
- .box-twd #twd-avg { font-size: clamp(1.4rem, 45cqh, 22cqw) !important; }
122
+ .box-twd #twd-avg { font-size: clamp(1.4rem, 45cqh, 20cqw) !important; }
136
123
  }
137
124
 
138
125
  /* --- BOX TACK (Mure Opposte) --- */
@@ -141,23 +128,12 @@ body {
141
128
  .box-tack .dual-value-col:first-child { align-items: flex-start; }
142
129
  .box-tack .dual-value-col:last-child { align-items: flex-end; }
143
130
  .box-tack .dual-label { color: #888; font-size: 0.5rem; font-weight: 800; margin-bottom: -2px; }
131
+ .box-tack .value.dual-val { font-size: clamp(1rem, 32cqh, 10cqw) !important; line-height: 0.9; }
144
132
 
145
- .box-tack .value.dual-val {
146
- font-size: clamp(1rem, 35cqh, 12cqw) !important; line-height: 0.9;
147
- }
148
-
149
- /* PROTEZIONE IPHONE LANDSCAPE: TACK ancora più sottile */
150
133
  @media screen and (max-height: 450px) {
151
134
  .box-tack .value.dual-val { font-size: clamp(0.9rem, 28cqh, 10cqw) !important; }
152
135
  }
153
136
 
154
- /* --- TAG HERCULES --- */
155
- .box-hercules { background: rgba(255, 0, 0, 0.05) !important; }
156
- .box-hercules .unit::before {
157
- font-size: 7px; color: #ff4444; font-weight: 900;
158
- letter-spacing: 1px; text-transform: uppercase; content: "HERCULES ";
159
- }
160
-
161
137
  /* ==========================================================================
162
138
  5. TACTICAL FOCUS MODE
163
139
  ========================================================================== */
@@ -183,14 +159,27 @@ body {
183
159
  justify-content: center !important;
184
160
  }
185
161
 
186
- /* PRIORITÀ COLORE HERCULES IN FOCUS:
187
- Forza lo sfondo rosso anche quando il box è ingrandito */
162
+ /* Ingrandimento scale nel Focus Mode */
163
+ .focus-active .is-focused .scale-labels {
164
+ font-size: clamp(14px, 2vw, 24px) !important;
165
+ min-width: 60px !important;
166
+ color: #444 !important;
167
+ }
168
+
169
+ /* Margine extra per le scale nel Focus */
170
+ .focus-active .is-focused .graph-wrapper { margin-top: 25px !important; }
171
+
172
+ /* PRIORITÀ COLORE HERCULES IN FOCUS */
188
173
  .focus-active .is-focused.box-hercules {
189
174
  background: rgba(255, 0, 0, 0.12) !important;
190
175
  box-shadow: inset 0 0 30px rgba(255, 0, 0, 0.1);
191
176
  }
192
177
 
193
- .focus-active .is-focused .value { font-size: clamp(4rem, 25cqh, 15rem) !important; margin-top: 20px; }
178
+ .focus-active .is-focused .value {
179
+ font-size: clamp(4rem, 25cqh, 15rem) !important;
180
+ margin-top: 20px !important;
181
+ }
182
+
194
183
  .focus-active .box-gauge { display: flex !important; grid-area: gauge !important; }
195
184
 
196
185
  /* ==========================================================================
@@ -436,91 +425,135 @@ rect[fill="#222"] { fill: #eee !important; }
436
425
  #wind-gauge { width: 100%; height: 100%; max-height: 100%; object-fit: contain; }
437
426
 
438
427
  /* ==========================================================================
439
- 10. NIGHT MODE (TACTICAL RED - INTEGRALE E RIFINITO)
428
+ 10. NIGHT MODE (TACTICAL RED - VERSIONE DEFINITIVA E REVISIONATA)
440
429
  ========================================================================== */
441
- body.night-mode { background-color: #000 !important; color: #ff0000 !important; }
430
+ body.night-mode {
431
+ background-color: #000 !important;
432
+ color: #ff3333 !important;
433
+ }
442
434
 
443
- /* Pannelli e Box */
444
- .night-mode .data-box { background: rgba(20, 0, 0, 0.4) !important; border-color: #330000; }
435
+ /* --- STRUTTURA E GRIGLIA --- */
436
+ .night-mode .data-box {
437
+ background: rgba(15, 0, 0, 0.6) !important;
438
+ border-color: #440000 !important; /* Confini box visibili in rosso cupo */
439
+ }
440
+
441
+ /* Etichette e Testi secondari */
445
442
  .night-mode .label,
446
443
  .night-mode .unit,
447
- .night-mode .dual-label { color: #800000 !important; }
444
+ .night-mode .dual-label,
445
+ .night-mode .dual-label {
446
+ color: #800000 !important;
447
+ }
448
448
 
449
+ /* Valori Numerici */
449
450
  .night-mode .value,
450
451
  .night-mode .value-large {
451
452
  color: #ff3333 !important;
452
453
  text-shadow: 0 0 8px rgba(255, 0, 0, 0.4);
453
454
  }
454
455
 
456
+ /* Stato Online/Offline */
455
457
  .night-mode #status {
456
- background: rgba(255, 0, 0, 0.1);
457
- color: #ff0000;
458
+ background: rgba(255, 0, 0, 0.1) !important;
459
+ color: #ff3333 !important;
458
460
  }
459
461
 
460
- /* --- GRAFICI NIGHT MODE: Solo linee, zero abbagliamento --- */
461
- .night-mode .graph-wrapper { background: rgba(30, 0, 0, 0.3) !important; border: 1px solid #330000; }
462
- .night-mode .sparkline path:first-of-type { display: none !important; }
462
+ /* --- GRAFICI (RIGOROSAMENTE 1PX, SENZA RIEMPIMENTO) --- */
463
+ .night-mode .graph-wrapper { background: rgba(0, 0, 0, 0.6) !important; border: 1px solid #330000; }
464
+ .night-mode .sparkline path:first-of-type { display: none !important; } /* Rimuove l'alone bianco/grigio */
463
465
  .night-mode .sparkline path {
464
466
  fill: none !important;
465
467
  stroke: #ff3333 !important;
466
468
  stroke-width: 1px !important;
467
469
  filter: drop-shadow(0 0 2px rgba(255, 0, 0, 0.4));
468
470
  }
469
- .night-mode .sparkline line { stroke: rgba(150, 0, 0, 0.1) !important; }
471
+ .night-mode .sparkline line { stroke: rgba(150, 0, 0, 0.15) !important; } /* Griglia soffusa */
470
472
  .night-mode #tws-graph line:not([stroke*="rgba"]) {
471
473
  stroke: #ff3333 !important;
472
474
  stroke-width: 1px !important;
473
475
  }
474
- .night-mode .scale-labels { color: #660000 !important; }
475
476
 
476
- /* Hercules in Night Mode */
477
- .night-mode .box-hercules { background: rgba(60, 0, 0, 0.2) !important; }
478
- .night-mode .line-hercules { filter: drop-shadow(0 0 6px #ff0000) !important; }
477
+ /* Scale graduate dei grafici */
478
+ .night-mode .scale-labels { color: #800000 !important; }
479
+ .night-mode .is-focused .scale-labels { color: #ff3333 !important; }
479
480
 
480
- /* --- WIND GAUGE NIGHT: Scurimento settori e icone --- */
481
- .night-mode #wind-gauge circle[fill="#050505"],
482
- .night-mode #wind-gauge circle[fill="#fcfcfc"] { fill: #050505 !important; }
481
+ /* --- WIND GAUGE NIGHT (OSCURAMENTO TOTALE E FIX BIANCO) --- */
482
+ /* Forza tutti i cerchi della bussola al nero per eliminare il disco bianco */
483
+ .night-mode #wind-gauge circle {
484
+ fill: #000 !important;
485
+ stroke: #220000 !important;
486
+ }
483
487
 
484
- .night-mode #wind-gauge circle[fill="#121212"],
485
- .night-mode #wind-gauge circle[fill="#f0f0f0"] { fill: #0a0000 !important; }
488
+ /* Cerchio intermedio e hotspot centrale */
489
+ .night-mode #wind-gauge circle:nth-of-type(2),
490
+ .night-mode #fullscreen-hotspot {
491
+ fill: #050000 !important;
492
+ stroke: #330000 !important;
493
+ }
486
494
 
487
- /* Glow e Hotspot centrale */
488
- .night-mode #fullscreen-hotspot { fill: #000 !important; stroke: #330000 !important; }
489
- .night-mode #center-glow feDropShadow { flood-color: #ff0000 !important; flood-opacity: 0.6 !important; }
495
+ /* Correzione Glow centrale (da bianco a rosso neon) */
496
+ .night-mode #center-glow feDropShadow {
497
+ flood-color: #ff0000 !important;
498
+ flood-opacity: 0.6 !important;
499
+ }
490
500
 
491
- .night-mode #boat-icon { fill: #330000 !important; opacity: 0.6 !important; }
501
+ /* AWS Interno: Etichetta e Valore */
502
+ .night-mode #aws-display-group text { fill: #800000 !important; }
492
503
  .night-mode #aws-val-svg { fill: #ff3333 !important; }
493
- .night-mode #aws-display-group text { fill: #660000 !important; }
494
504
 
495
- /* SCALA GRADUATA BUSSOLA: Tacche e numeri rosso cupo */
496
- .night-mode #ticks line { stroke: #4d0000 !important; }
505
+ /* FIX LOGO BARCA: Ombra scura e coerente */
506
+ .night-mode #boat-icon {
507
+ fill: #150000 !important;
508
+ opacity: 0.8 !important;
509
+ }
510
+
511
+ /* FIX COG/TRACK: Triangolo rosso senza bordo bianco */
512
+ .night-mode #track-pointer path {
513
+ fill: #ff3333 !important;
514
+ stroke: none !important;
515
+ }
516
+
517
+ /* Tacche e Numeri Gradi Bussola */
518
+ .night-mode #ticks line { stroke: #550000 !important; }
497
519
  .night-mode #tick-labels { fill: #800000 !important; }
498
520
 
499
- /* SETTORI VENTO: Il verde diventa un rosso scuro trattteggiato */
500
- .night-mode #wind-gauge path[stroke="#ff0000"] { stroke: #660000 !important; opacity: 0.8; }
501
- .night-mode #wind-gauge path[stroke="#00ff00"] { stroke: #440000 !important; stroke-dasharray: 4, 3; opacity: 0.6; }
502
- .night-mode #wind-gauge path[stroke="#ff8800"] { stroke: #330000 !important; stroke-width: 8; }
521
+ /* Settori Vento: Scuriti e differenziati per mure */
522
+ .night-mode #wind-gauge path[stroke="#ff0000"] { stroke: #800000 !important; opacity: 0.8; }
523
+ .night-mode #wind-gauge path[stroke="#00ff00"] {
524
+ stroke: #440000 !important;
525
+ stroke-dasharray: 5, 4 !important;
526
+ opacity: 0.7;
527
+ }
528
+ .night-mode #wind-gauge path[stroke="#ff8800"] { stroke: #330000 !important; opacity: 0.6; }
503
529
 
504
- /* --- LEEWAY & POINTERS NIGHT --- */
505
- .night-mode rect[fill="url(#leeway-grad)"] { fill: url(#leeway-night-grad) !important; }
506
- .night-mode #leeway-val { fill: #ff3333 !important; }
507
- .night-mode rect[fill="#222"], .night-mode rect[fill="#eee"] { fill: #0a0000 !important; stroke: #200000; }
530
+ /* Lancette AWA/TWA */
531
+ .night-mode #awa-pointer path { fill: #ff0000 !important; stroke: #000 !important; }
532
+ .night-mode #twa-pointer path { fill: #800000 !important; stroke: #000 !important; }
508
533
 
509
- /* Scala graduata Leeway: tacche e numeri */
510
- .night-mode g[stroke="#555"] line { stroke: #4d0000 !important; }
511
- .night-mode g[fill="#555"] text { fill: #660000 !important; }
534
+ /* --- LEEWAY NIGHT (FIX SCRITTA E GRADIENTE) --- */
535
+ .night-mode #leeway-val {
536
+ fill: #ff3333 !important;
537
+ color: #ff3333 !important;
538
+ }
539
+ .night-mode rect[fill="url(#leeway-grad)"] { fill: url(#leeway-night-grad) !important; }
540
+ .night-mode rect[fill="#eee"],
541
+ .night-mode rect[fill="#222"] {
542
+ fill: #0a0000 !important;
543
+ stroke: #330000 !important;
544
+ }
512
545
 
513
- /* Lancette */
514
- .night-mode #awa-pointer path { fill: #ff0000; stroke: #000; }
515
- .night-mode #twa-pointer path { fill: #800000; stroke: #000; }
516
- .night-mode #track-pointer path { fill: #ff0000; stroke: #fff; stroke-width: 0.5; }
546
+ /* Scala graduata Leeway (tacche e numeri) */
547
+ .night-mode g[stroke="#555"] line { stroke: #440000 !important; }
548
+ .night-mode g[fill="#555"] text { fill: #800000 !important; }
517
549
 
518
550
  /* --- MINI BUSSOLA TWD NIGHT --- */
519
- .night-mode .mini-compass { border-color: #330000; background: #000; }
551
+ .night-mode .mini-compass { border-color: #330000 !important; background: #000 !important; }
552
+ .night-mode .mini-compass circle { stroke: #330000 !important; }
520
553
  .night-mode .mini-compass text { fill: #800000 !important; }
521
- .night-mode .mini-compass text:last-of-type { fill: #800000 !important; opacity: 1; }
554
+ .night-mode .mini-compass text:last-of-type { fill: #800000 !important; opacity: 1; } /* La "S" */
522
555
  .night-mode #twd-boat-wrap path { fill: #ff3333 !important; opacity: 0.4 !important; }
523
- .night-mode #twd-arrow #twd-wind-chevron { stroke: #ff3333 !important; filter: drop-shadow(0 0 4px #ff0000); }
556
+ .night-mode #twd-arrow #twd-wind-chevron { stroke: #ff3333 !important; }
524
557
 
525
558
  /* ==========================================================================
526
559
  11. TREND E ANIMAZIONI