@sailingrotevista/rotevista-dash 2.0.5 → 2.0.7
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.
- package/package.json +1 -1
- package/style.css +105 -38
package/package.json
CHANGED
package/style.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ==========================================================================
|
|
2
|
-
1. BASE E STRUTTURA GENERALE
|
|
2
|
+
1. BASE E STRUTTURA GENERALE (LIQUID GRID LAYOUT)
|
|
3
3
|
========================================================================== */
|
|
4
4
|
body {
|
|
5
5
|
background-color: #000;
|
|
@@ -8,7 +8,6 @@ body {
|
|
|
8
8
|
margin: 0; padding: 0;
|
|
9
9
|
height: 100vh; width: 100vw;
|
|
10
10
|
overflow: hidden;
|
|
11
|
-
/* BLOCCO TOTALE GESTI DI SISTEMA (Android/iOS) */
|
|
12
11
|
-webkit-touch-callout: none;
|
|
13
12
|
-webkit-user-select: none;
|
|
14
13
|
user-select: none;
|
|
@@ -20,11 +19,29 @@ body {
|
|
|
20
19
|
width: 100%; height: 100%;
|
|
21
20
|
padding: 5px; box-sizing: border-box;
|
|
22
21
|
gap: 8px;
|
|
23
|
-
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
LAYOUT LIQUIDO DEFINITIVO:
|
|
25
|
+
SX: Prende 1 frazione di tutto lo spazio libero, minimo 160px.
|
|
26
|
+
CENTRO: Prende ESATTAMENTE la larghezza che serve al cerchio SVG (auto).
|
|
27
|
+
DX: Prende 1 frazione di tutto lo spazio libero, minimo 160px.
|
|
28
|
+
*/
|
|
29
|
+
grid-template-columns: minmax(240px, 1fr) auto minmax(240px, 1fr);
|
|
24
30
|
grid-template-rows: 100%;
|
|
25
31
|
transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
|
|
32
|
+
|
|
33
|
+
/* Assicura che la griglia usi tutto lo spazio orizzontale */
|
|
34
|
+
justify-content: stretch;
|
|
26
35
|
}
|
|
27
36
|
|
|
37
|
+
/* Espansione colonne per schermi larghi (16:10) */
|
|
38
|
+
@media (min-aspect-ratio: 1.5) {
|
|
39
|
+
.main-container {
|
|
40
|
+
/* Aumentiamo il gap e il minimo vitale per schermi enormi */
|
|
41
|
+
grid-template-columns: minmax(200px, 1fr) auto minmax(200px, 1fr);
|
|
42
|
+
gap: 15px;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
28
45
|
/* ==========================================================================
|
|
29
46
|
2. PANNELLI E DATA-BOX
|
|
30
47
|
========================================================================== */
|
|
@@ -49,54 +66,81 @@ body {
|
|
|
49
66
|
touch-action: none;
|
|
50
67
|
}
|
|
51
68
|
|
|
52
|
-
/* Altezze Desktop */
|
|
69
|
+
/* Altezze Desktop (Validate) */
|
|
53
70
|
.data-box:nth-child(1), .data-box:nth-child(2) { height: 25vh; }
|
|
54
71
|
.data-box:nth-child(3), .data-box:nth-child(4), .data-box:nth-child(5) { height: 16.666vh; }
|
|
55
72
|
|
|
56
|
-
/* Allineamento Speculare
|
|
73
|
+
/* Allineamento Speculare Box */
|
|
57
74
|
.left-panel .data-box { align-items: flex-start; text-align: left; }
|
|
58
75
|
.right-panel .data-box { align-items: flex-end; text-align: right; }
|
|
59
76
|
|
|
60
77
|
/* ==========================================================================
|
|
61
|
-
3. TACTICAL FOCUS MODE (
|
|
78
|
+
3. TACTICAL FOCUS MODE (AUTO-EXPANDING SPLIT)
|
|
62
79
|
========================================================================== */
|
|
63
|
-
|
|
80
|
+
|
|
81
|
+
/* Nascondi i pannelli laterali non interessati */
|
|
64
82
|
.focus-active .side-panel:not(.has-focus) { display: none !important; }
|
|
83
|
+
.focus-active .side-panel.has-focus {
|
|
84
|
+
min-width: 400px !important;
|
|
85
|
+
}
|
|
86
|
+
|
|
65
87
|
|
|
66
|
-
|
|
88
|
+
|
|
89
|
+
/*
|
|
90
|
+
LOGICA POSIZIONE E LARGHEZZA:
|
|
91
|
+
Il Vento prende solo la larghezza del suo cerchio (auto).
|
|
92
|
+
Il Box focalizzato si prende TUTTO il resto dello schermo (1fr).
|
|
93
|
+
*/
|
|
94
|
+
.focus-active.focus-side-left {
|
|
95
|
+
grid-template-columns: 1fr auto !important; /* Dati SX giganti, Vento DX compatto */
|
|
96
|
+
}
|
|
67
97
|
.focus-active.focus-side-left .side-panel.has-focus { grid-column: 1 !important; }
|
|
68
|
-
.focus-active.focus-side-left .center-panel { grid-column: 2 !important; }
|
|
69
|
-
|
|
98
|
+
.focus-active.focus-side-left .center-panel { grid-column: 2 !important; justify-content: flex-start; }
|
|
99
|
+
|
|
100
|
+
.focus-active.focus-side-right {
|
|
101
|
+
grid-template-columns: auto 1fr !important; /* Vento SX compatto, Dati DX giganti */
|
|
102
|
+
}
|
|
103
|
+
.focus-active.focus-side-right .center-panel { grid-column: 1 !important; justify-content: flex-start; }
|
|
70
104
|
.focus-active.focus-side-right .side-panel.has-focus { grid-column: 2 !important; }
|
|
71
105
|
|
|
106
|
+
/* Gestione Box Focalizzato a tutto schermo */
|
|
72
107
|
.focus-active .has-focus .data-box:not(.is-focused) { display: none !important; }
|
|
73
|
-
.focus-active .has-focus .data-box.is-focused {
|
|
108
|
+
.focus-active .has-focus .data-box.is-focused {
|
|
109
|
+
height: 100vh !important;
|
|
110
|
+
border: none;
|
|
111
|
+
background: rgba(255, 255, 255, 0.05);
|
|
112
|
+
padding: 20px;
|
|
113
|
+
}
|
|
74
114
|
|
|
75
|
-
/*
|
|
76
|
-
.focus-active .is-focused .value { font-size: clamp(4rem, 25cqh,
|
|
77
|
-
.focus-active .is-focused .scale-labels { font-size:
|
|
78
|
-
.focus-active .is-focused .label-row .label { font-size:
|
|
79
|
-
.focus-active .is-focused .label-row .unit { font-size:
|
|
115
|
+
/* Tipografia Extreme per Focus Mode */
|
|
116
|
+
.focus-active .is-focused .value { font-size: clamp(4rem, 25cqh, 4rem) !important; margin-top: 15px; }
|
|
117
|
+
.focus-active .is-focused .scale-labels { font-size: 32px !important; min-width: 40px !important; line-height: 1.2; }
|
|
118
|
+
.focus-active .is-focused .label-row .label { font-size: 2rem !important; }
|
|
119
|
+
.focus-active .is-focused .label-row .unit { font-size: 2rem !important; }
|
|
80
120
|
|
|
81
|
-
/* Ingrandimento scritta Hercules */
|
|
121
|
+
/* Ingrandimento scritta Hercules in Focus */
|
|
82
122
|
.focus-active .is-focused.box-hercules .unit::before,
|
|
83
123
|
.focus-active .is-focused.box-hercules .unit::after,
|
|
84
124
|
.focus-active .is-focused.box-hercules .label::before,
|
|
85
125
|
.focus-active .is-focused.box-hercules .label::after {
|
|
86
|
-
font-size:
|
|
87
|
-
letter-spacing: 2px;
|
|
126
|
+
font-size: 1.5rem !important;
|
|
127
|
+
letter-spacing: 2px !important;
|
|
88
128
|
}
|
|
89
129
|
|
|
90
|
-
.focus-active .is-focused .sparkline path { stroke-width:
|
|
130
|
+
.focus-active .is-focused .sparkline path { stroke-width: 1px !important; }
|
|
91
131
|
|
|
92
132
|
/* ==========================================================================
|
|
93
|
-
4. TIPOGRAFIA
|
|
133
|
+
4. TIPOGRAFIA E LABEL-ROW (SIMMETRIA)
|
|
94
134
|
========================================================================== */
|
|
95
135
|
.label-row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px; width: 100%; }
|
|
96
136
|
|
|
97
|
-
/*
|
|
98
|
-
.left-panel .label-row { justify-content: space-between; }
|
|
137
|
+
/* SX: [Titolo] ... [Unità] */
|
|
138
|
+
.left-panel .label-row { justify-content: space-between; flex-direction: row; }
|
|
139
|
+
|
|
140
|
+
/* DX: [Unità] ... [Titolo] */
|
|
99
141
|
.right-panel .label-row { justify-content: space-between; flex-direction: row; }
|
|
142
|
+
|
|
143
|
+
/* FIX: Spinge i titoli MEAN a destra nella colonna DX */
|
|
100
144
|
.right-panel .label-row .label:only-child { margin-left: auto; }
|
|
101
145
|
|
|
102
146
|
.label { color: #666; font-size: 0.65rem; font-weight: bold; text-transform: uppercase; }
|
|
@@ -106,32 +150,45 @@ body {
|
|
|
106
150
|
.value-large, .dual-value-container, .value-with-compass { margin-top: auto; margin-bottom: auto; }
|
|
107
151
|
.value-large { font-size: clamp(1.5rem, 35cqh, 4.5rem); line-height: 0.85; }
|
|
108
152
|
|
|
153
|
+
/* TACK Layout */
|
|
109
154
|
.dual-value-container { display: flex; justify-content: space-between; width: 100%; }
|
|
110
155
|
.dual-value-col { display: flex; flex-direction: column; width: 48%; }
|
|
111
156
|
.dual-label { color: #666; font-size: 0.55rem; font-weight: bold; text-transform: uppercase; margin-bottom: 2px; }
|
|
112
157
|
.value.dual-val { font-size: clamp(1rem, 22cqh, 2rem); padding-bottom: 0; line-height: 0.9; }
|
|
113
158
|
|
|
159
|
+
/* BUSSOLA TWD */
|
|
114
160
|
.value-with-compass { display: flex; justify-content: space-between; align-items: center; width: 100%; gap: 10px; }
|
|
115
|
-
.mini-compass { width: clamp(40px, 60cqh, 120px); height: clamp(40px, 60cqh, 120px); background: #000; border-radius: 50%; flex-shrink: 0; border: 1.5px solid #333; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); }
|
|
161
|
+
.mini-compass { width: clamp(40px, 60cqh, 120px); height: clamp(40px, 60cqh, 120px); background: #000; border-radius: 50%; flex-shrink: 0; border: 1.5px solid #333; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); transition: all 0.4s ease; }
|
|
116
162
|
.value-with-compass .value-large { margin: 0; flex-grow: 1; text-align: right; font-size: clamp(1.2rem, 35cqh, 4rem); }
|
|
117
163
|
|
|
118
164
|
/* ==========================================================================
|
|
119
165
|
5. GRAFICI E SCALE
|
|
120
166
|
========================================================================== */
|
|
121
|
-
.graph-wrapper {
|
|
122
|
-
|
|
167
|
+
.graph-wrapper {
|
|
168
|
+
position: relative; width: 100%; flex-grow: 1; min-height: 0; margin-top: 4px;
|
|
169
|
+
display: flex; align-items: stretch; background: rgba(255, 255, 255, 0.03);
|
|
170
|
+
border-radius: 4px; gap: 2px;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* Spostamento verso il centro */
|
|
174
|
+
.left-panel .graph-wrapper { margin-right: -6px; }
|
|
175
|
+
.right-panel .graph-wrapper { margin-left: 666px; }
|
|
176
|
+
|
|
177
|
+
.sparkline { flex-grow: 1; height: 100%; background: transparent !important; display: block; }
|
|
123
178
|
.sparkline path, .sparkline line { stroke-width: 1px !important; transition: all 0.3s ease; }
|
|
124
179
|
|
|
125
|
-
.scale-labels { display: flex; flex-direction: column; justify-content: space-between; font-size: 10px; color: #777; font-weight: bold; min-width:
|
|
126
|
-
|
|
180
|
+
.scale-labels { display: flex; flex-direction: column; justify-content: space-between; font-size: 10px; color: #777; font-weight: bold; min-width: 10px; height: 100%; line-height: 1; padding: 2px 0; }
|
|
181
|
+
|
|
182
|
+
/* Simmetria Scale */
|
|
183
|
+
.left-panel .scale-labels { order: 2; text-align: left; padding-left: 4px; border-left: 1px solid rgba(255,255,255,0.08); }
|
|
127
184
|
.left-panel .sparkline { order: 1; }
|
|
128
|
-
.right-panel .scale-labels { order: 1; text-align: right; }
|
|
185
|
+
.right-panel .scale-labels { order: 1; text-align: right; padding-right: 4px; border-right: 1px solid rgba(255,255,255,0.08); }
|
|
129
186
|
.right-panel .sparkline { order: 2; }
|
|
130
187
|
|
|
131
188
|
#stw-graph { stroke: #2ecc71; fill: rgba(46, 204, 113, 0.12); }
|
|
132
189
|
#sog-graph { stroke: #f39c12; fill: rgba(243, 156, 18, 0.12); }
|
|
133
190
|
#depth-graph { stroke: #3498db; fill: rgba(52, 152, 219, 0.12); }
|
|
134
|
-
#tws-graph { stroke: #
|
|
191
|
+
#tws-graph { stroke: #ffffff; fill: rgba(255, 255, 255, 0.08); }
|
|
135
192
|
|
|
136
193
|
/* ==========================================================================
|
|
137
194
|
6. HERCULES MODE (LABEL TOP E SIMMETRIA)
|
|
@@ -139,13 +196,27 @@ body {
|
|
|
139
196
|
.line-hercules { filter: drop-shadow(0 0 5px #ff0000); stroke-width: 1.8px !important; }
|
|
140
197
|
.box-hercules { background: rgba(255, 0, 0, 0.08) !important; }
|
|
141
198
|
|
|
142
|
-
/*
|
|
199
|
+
/* Ingrandimento Hercules in Focus Mode */
|
|
200
|
+
.focus-active .is-focused.box-hercules .unit::before,
|
|
201
|
+
.focus-active .is-focused.box-hercules .unit::after,
|
|
202
|
+
.focus-active .is-focused.box-hercules .label::before {
|
|
203
|
+
font-size: 16px !important; /* Raddoppiato in Focus */
|
|
204
|
+
letter-spacing: 2px;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/* Stile base Hercules */
|
|
143
208
|
.box-hercules .unit::before, .box-hercules .unit::after,
|
|
144
|
-
.box-hercules .label::before
|
|
209
|
+
.box-hercules .label::before {
|
|
145
210
|
font-size: 7px; color: #ff4444; font-weight: 900; letter-spacing: 1px; text-transform: uppercase;
|
|
146
211
|
}
|
|
212
|
+
|
|
213
|
+
/* Simmetria Hercules SX: "STW [HERCULES kts]" */
|
|
147
214
|
.left-panel .box-hercules .unit::before { content: "HERCULES "; }
|
|
215
|
+
|
|
216
|
+
/* Simmetria Hercules DX: "[m HERCULES] DEPTH" */
|
|
148
217
|
.right-panel .box-hercules .unit::after { content: " HERCULES"; }
|
|
218
|
+
|
|
219
|
+
/* Eccezione: Box MEAN colonna DX (Senza unità) -> "[HERCULES TWA]" */
|
|
149
220
|
.right-panel .box-hercules .label:only-child::before { content: "HERCULES "; }
|
|
150
221
|
|
|
151
222
|
/* ==========================================================================
|
|
@@ -154,7 +225,7 @@ body {
|
|
|
154
225
|
#status { position: absolute; top: 5px; right: 15px; font-size: 0.5rem; text-transform: uppercase; z-index: 1000; }
|
|
155
226
|
.online { color: #2ecc71; opacity: 0.5; }
|
|
156
227
|
.offline { color: #e74c3c; font-weight: bold; }
|
|
157
|
-
#awa-pointer, #twa-pointer, #track-pointer, #twd-arrow, #twd-boat-wrap {transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);}
|
|
228
|
+
#awa-pointer, #twa-pointer, #track-pointer, #twd-arrow, #twd-boat-wrap { transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); }
|
|
158
229
|
#leeway-mask-rect { transition: none; }
|
|
159
230
|
.alarm-warning { color: #f1c40f !important; }
|
|
160
231
|
.alarm-danger { color: #e74c3c !important; font-weight: 900; animation: blink-unstable 1s infinite; }
|
|
@@ -166,11 +237,7 @@ body {
|
|
|
166
237
|
8. RESPONSIVE (PORTRAIT)
|
|
167
238
|
========================================================================== */
|
|
168
239
|
@media (max-aspect-ratio: 0.9 / 1) {
|
|
169
|
-
.main-container {
|
|
170
|
-
grid-template-columns: 1fr 1fr !important;
|
|
171
|
-
grid-template-rows: 45vh 55vh !important;
|
|
172
|
-
}
|
|
173
|
-
|
|
240
|
+
.main-container { grid-template-columns: 1fr 1fr !important; grid-template-rows: 45vh 55vh !important; }
|
|
174
241
|
.center-panel { grid-row: 1 !important; grid-column: 1 / span 2 !important; padding: 5px 0; }
|
|
175
242
|
.left-panel { grid-row: 2 !important; grid-column: 1 !important; }
|
|
176
243
|
.right-panel { grid-row: 2 !important; grid-column: 2 !important; }
|