Spaces:
Running
Running
style: Modernize dashboard with dark mode and minimalist design
Browse files- index.html +37 -24
- style.css +3 -4
index.html
CHANGED
@@ -7,24 +7,27 @@
|
|
7 |
<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
|
8 |
<style>
|
9 |
:root {
|
10 |
-
--bg-color: #
|
11 |
-
--card-bg-color: #
|
12 |
-
--text-color: #
|
13 |
-
--muted-text-color: #
|
14 |
-
--border-color: #
|
15 |
-
--shadow-color: rgba(0, 0, 0, 0.
|
16 |
-
--primary-color: #
|
17 |
-
--success-color: #
|
18 |
-
--warning-color: #
|
19 |
-
--danger-color: #
|
20 |
-
--plot-colorway: ['#
|
21 |
-
}
|
|
|
|
|
22 |
body {
|
23 |
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
24 |
margin: 0;
|
25 |
background-color: var(--bg-color);
|
26 |
color: var(--text-color);
|
27 |
line-height: 1.5;
|
|
|
28 |
}
|
29 |
.container {
|
30 |
max-width: 1700px; /* Wider container */
|
@@ -35,7 +38,9 @@
|
|
35 |
text-align: center;
|
36 |
color: var(--text-color);
|
37 |
margin-bottom: 15px;
|
38 |
-
font-weight:
|
|
|
|
|
39 |
}
|
40 |
.controls {
|
41 |
display: flex;
|
@@ -49,12 +54,18 @@
|
|
49 |
color: var(--muted-text-color);
|
50 |
}
|
51 |
.controls select {
|
52 |
-
padding:
|
53 |
border: 1px solid var(--border-color);
|
54 |
-
border-radius:
|
55 |
background-color: var(--card-bg-color);
|
56 |
min-width: 300px;
|
57 |
font-size: 1rem;
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
|
60 |
.kpi-container {
|
@@ -66,10 +77,11 @@
|
|
66 |
.kpi-card {
|
67 |
background-color: var(--card-bg-color);
|
68 |
padding: 20px;
|
69 |
-
border-radius:
|
70 |
-
box-shadow: 0 4px
|
71 |
text-align: center;
|
72 |
border: 1px solid var(--border-color);
|
|
|
73 |
}
|
74 |
.kpi-card h3 {
|
75 |
margin-top: 0;
|
@@ -99,9 +111,10 @@
|
|
99 |
.plot-container, .table-container {
|
100 |
background-color: var(--card-bg-color);
|
101 |
padding: 20px;
|
102 |
-
border-radius:
|
103 |
-
box-shadow: 0 4px
|
104 |
border: 1px solid var(--border-color);
|
|
|
105 |
min-height: 450px; /* Ensure plots have some height */
|
106 |
display: flex; /* For centering loading/error inside */
|
107 |
flex-direction: column; /* Allow title and content stacking */
|
@@ -427,15 +440,15 @@
|
|
427 |
paper_bgcolor: 'rgba(0,0,0,0)',
|
428 |
plot_bgcolor: 'rgba(0,0,0,0)',
|
429 |
font: {
|
430 |
-
family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
|
431 |
-
color: '#
|
432 |
},
|
433 |
title: {
|
434 |
font: { size: 16, weight: '500' },
|
435 |
x: 0.05, xanchor: 'left'
|
436 |
},
|
437 |
-
xaxis: { gridcolor: '#
|
438 |
-
yaxis: { gridcolor: '#
|
439 |
};
|
440 |
|
441 |
function mergeLayout(customLayout) {
|
|
|
7 |
<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
|
8 |
<style>
|
9 |
:root {
|
10 |
+
--bg-color: #0a0a0a;
|
11 |
+
--card-bg-color: #121212;
|
12 |
+
--text-color: #e0e0e0;
|
13 |
+
--muted-text-color: #757575;
|
14 |
+
--border-color: #2a2a2a;
|
15 |
+
--shadow-color: rgba(0, 0, 0, 0.3);
|
16 |
+
--primary-color: #3a86ff;
|
17 |
+
--success-color: #4ade80;
|
18 |
+
--warning-color: #fbbf24;
|
19 |
+
--danger-color: #f87171;
|
20 |
+
--plot-colorway: ['#3a86ff', '#8338ec', '#ff006e', '#fb5607', '#ffbe0b', '#80ffdb', '#a0e8af', '#ff9e00', '#e36414', '#0a9396'];
|
21 |
+
}
|
22 |
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap');
|
23 |
+
|
24 |
body {
|
25 |
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
26 |
margin: 0;
|
27 |
background-color: var(--bg-color);
|
28 |
color: var(--text-color);
|
29 |
line-height: 1.5;
|
30 |
+
font-weight: 300;
|
31 |
}
|
32 |
.container {
|
33 |
max-width: 1700px; /* Wider container */
|
|
|
38 |
text-align: center;
|
39 |
color: var(--text-color);
|
40 |
margin-bottom: 15px;
|
41 |
+
font-weight: 400;
|
42 |
+
letter-spacing: 0.5px;
|
43 |
+
font-size: 1.8rem;
|
44 |
}
|
45 |
.controls {
|
46 |
display: flex;
|
|
|
54 |
color: var(--muted-text-color);
|
55 |
}
|
56 |
.controls select {
|
57 |
+
padding: 10px 14px;
|
58 |
border: 1px solid var(--border-color);
|
59 |
+
border-radius: 8px;
|
60 |
background-color: var(--card-bg-color);
|
61 |
min-width: 300px;
|
62 |
font-size: 1rem;
|
63 |
+
color: var(--text-color);
|
64 |
+
appearance: none;
|
65 |
+
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
|
66 |
+
background-repeat: no-repeat;
|
67 |
+
background-position: right 10px center;
|
68 |
+
background-size: 16px;
|
69 |
}
|
70 |
|
71 |
.kpi-container {
|
|
|
77 |
.kpi-card {
|
78 |
background-color: var(--card-bg-color);
|
79 |
padding: 20px;
|
80 |
+
border-radius: 12px;
|
81 |
+
box-shadow: 0 4px 12px var(--shadow-color);
|
82 |
text-align: center;
|
83 |
border: 1px solid var(--border-color);
|
84 |
+
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
85 |
}
|
86 |
.kpi-card h3 {
|
87 |
margin-top: 0;
|
|
|
111 |
.plot-container, .table-container {
|
112 |
background-color: var(--card-bg-color);
|
113 |
padding: 20px;
|
114 |
+
border-radius: 12px;
|
115 |
+
box-shadow: 0 4px 12px var(--shadow-color);
|
116 |
border: 1px solid var(--border-color);
|
117 |
+
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
118 |
min-height: 450px; /* Ensure plots have some height */
|
119 |
display: flex; /* For centering loading/error inside */
|
120 |
flex-direction: column; /* Allow title and content stacking */
|
|
|
440 |
paper_bgcolor: 'rgba(0,0,0,0)',
|
441 |
plot_bgcolor: 'rgba(0,0,0,0)',
|
442 |
font: {
|
443 |
+
family: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',
|
444 |
+
color: '#e0e0e0'
|
445 |
},
|
446 |
title: {
|
447 |
font: { size: 16, weight: '500' },
|
448 |
x: 0.05, xanchor: 'left'
|
449 |
},
|
450 |
+
xaxis: { gridcolor: '#2a2a2a', linecolor: '#3a3a3a', automargin: true, tickfont: { size: 10 } },
|
451 |
+
yaxis: { gridcolor: '#2a2a2a', linecolor: '#3a3a3a', automargin: true, tickfont: { size: 10 } }
|
452 |
};
|
453 |
|
454 |
function mergeLayout(customLayout) {
|
style.css
CHANGED
@@ -39,14 +39,13 @@ p {
|
|
39 |
color: var(--muted-text-color);
|
40 |
}
|
41 |
.spinner {
|
42 |
-
border:
|
43 |
width: 36px;
|
44 |
height: 36px;
|
45 |
border-radius: 50%;
|
46 |
border-left-color: var(--primary-color);
|
47 |
-
margin-bottom: 15px;
|
48 |
-
|
49 |
-
animation: spin 1s ease infinite;
|
50 |
}
|
51 |
#loading-message {
|
52 |
font-size: 1rem; /* Slightly smaller message */
|
|
|
39 |
color: var(--muted-text-color);
|
40 |
}
|
41 |
.spinner {
|
42 |
+
border: 3px solid rgba(255, 255, 255, 0.1);
|
43 |
width: 36px;
|
44 |
height: 36px;
|
45 |
border-radius: 50%;
|
46 |
border-left-color: var(--primary-color);
|
47 |
+
margin-bottom: 15px;
|
48 |
+
animation: spin 1s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
|
49 |
}
|
50 |
#loading-message {
|
51 |
font-size: 1rem; /* Slightly smaller message */
|