victor HF Staff commited on
Commit
f778a95
·
1 Parent(s): 8808533

feat: Revamp UI to futuristic dark theme with glass-morphism effects

Browse files
Files changed (2) hide show
  1. index.html +74 -33
  2. style.css +25 -5
index.html CHANGED
@@ -7,17 +7,19 @@
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
 
@@ -26,13 +28,16 @@
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 */
34
- margin: 20px auto;
35
- padding: 0 20px;
36
  }
37
  h1 {
38
  text-align: center;
@@ -53,19 +58,36 @@
53
  font-weight: 500;
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 {
@@ -75,13 +97,30 @@
75
  margin-bottom: 30px;
76
  }
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;
@@ -109,13 +148,15 @@
109
  margin-bottom: 30px;
110
  }
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 */
121
  justify-content: flex-start; /* Align content top */
 
7
  <script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
8
  <style>
9
  :root {
10
+ --bg-color: #0d1117;
11
+ --card-bg-color: #161b22;
12
+ --text-color: #e6edf3;
13
+ --muted-text-color: #7d8590;
14
+ --border-color: #30363d;
15
+ --shadow-color: rgba(1, 4, 9, 0.8);
16
+ --primary-color: #58a6ff;
17
+ --success-color: #3fb950;
18
+ --warning-color: #d29922;
19
+ --danger-color: #f85149;
20
+ --plot-colorway: ['#58a6ff', '#bc8cff', '#ff7b72', '#ffa657', '#7ee787', '#a5d6ff', '#79c0ff', '#d2a8ff', '#ffa198', '#ffdfb6'];
21
+ --glass-effect: rgba(22, 27, 34, 0.7);
22
+ --highlight-color: rgba(88, 166, 255, 0.1);
23
  }
24
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&display=swap');
25
 
 
28
  margin: 0;
29
  background-color: var(--bg-color);
30
  color: var(--text-color);
31
+ line-height: 1.6;
32
+ font-weight: 400;
33
+ background-image:
34
+ radial-gradient(circle at 25% 25%, rgba(88, 166, 255, 0.1) 0%, transparent 50%),
35
+ radial-gradient(circle at 75% 75%, rgba(188, 140, 255, 0.1) 0%, transparent 50%);
36
  }
37
  .container {
38
+ max-width: 1800px;
39
+ margin: 0 auto;
40
+ padding: 0 30px;
41
  }
42
  h1 {
43
  text-align: center;
 
58
  font-weight: 500;
59
  color: var(--muted-text-color);
60
  }
61
+ .controls {
62
+ margin-bottom: 40px;
63
+ padding: 20px;
64
+ background: var(--glass-effect);
65
+ border-radius: 16px;
66
+ border: 1px solid var(--border-color);
67
+ backdrop-filter: blur(8px);
68
+ max-width: fit-content;
69
+ margin-left: auto;
70
+ margin-right: auto;
71
+ }
72
  .controls select {
73
+ padding: 12px 16px;
74
  border: 1px solid var(--border-color);
75
+ border-radius: 12px;
76
+ background: var(--glass-effect);
77
+ min-width: 320px;
78
  font-size: 1rem;
79
  color: var(--text-color);
80
  appearance: none;
81
+ 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='%237d8590' 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");
82
  background-repeat: no-repeat;
83
+ background-position: right 16px center;
84
  background-size: 16px;
85
+ transition: all 0.2s ease;
86
+ }
87
+ .controls select:focus {
88
+ outline: none;
89
+ border-color: var(--primary-color);
90
+ box-shadow: 0 0 0 2px rgba(88, 166, 255, 0.3);
91
  }
92
 
93
  .kpi-container {
 
97
  margin-bottom: 30px;
98
  }
99
  .kpi-card {
100
+ background: var(--glass-effect);
101
+ padding: 24px;
102
+ border-radius: 16px;
103
+ box-shadow: 0 8px 32px var(--shadow-color);
104
  text-align: center;
105
  border: 1px solid var(--border-color);
106
+ transition: all 0.3s ease;
107
+ backdrop-filter: blur(8px);
108
+ position: relative;
109
+ overflow: hidden;
110
+ }
111
+ .kpi-card::before {
112
+ content: '';
113
+ position: absolute;
114
+ top: 0;
115
+ left: 0;
116
+ right: 0;
117
+ height: 2px;
118
+ background: linear-gradient(90deg, var(--primary-color), transparent);
119
+ }
120
+ .kpi-card:hover {
121
+ transform: translateY(-4px);
122
+ box-shadow: 0 12px 40px rgba(88, 166, 255, 0.2);
123
+ border-color: var(--primary-color);
124
  }
125
  .kpi-card h3 {
126
  margin-top: 0;
 
148
  margin-bottom: 30px;
149
  }
150
  .plot-container, .table-container {
151
+ background: var(--glass-effect);
152
+ padding: 24px;
153
+ border-radius: 16px;
154
+ box-shadow: 0 8px 32px var(--shadow-color);
155
  border: 1px solid var(--border-color);
156
+ transition: all 0.3s ease;
157
+ min-height: 500px;
158
+ backdrop-filter: blur(8px);
159
+ position: relative;
160
  display: flex; /* For centering loading/error inside */
161
  flex-direction: column; /* Allow title and content stacking */
162
  justify-content: flex-start; /* Align content top */
style.css CHANGED
@@ -39,13 +39,28 @@ p {
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 */
@@ -54,8 +69,13 @@ p {
54
  @keyframes spin {
55
  0% {
56
  transform: rotate(0deg);
 
 
 
 
57
  }
58
  100% {
59
  transform: rotate(360deg);
 
60
  }
61
  }
 
39
  color: var(--muted-text-color);
40
  }
41
  .spinner {
42
+ border: 3px solid transparent;
43
+ width: 40px;
44
+ height: 40px;
45
  border-radius: 50%;
46
+ border-top-color: var(--primary-color);
47
  border-left-color: var(--primary-color);
48
+ margin-bottom: 20px;
49
+ animation: spin 1s cubic-bezier(0.68, -0.55, 0.27, 1.55) infinite;
50
+ position: relative;
51
+ }
52
+ .spinner::after {
53
+ content: '';
54
+ position: absolute;
55
+ top: -6px;
56
+ left: -6px;
57
+ right: -6px;
58
+ bottom: -6px;
59
+ border: 3px solid transparent;
60
+ border-radius: 50%;
61
+ border-top-color: rgba(88, 166, 255, 0.3);
62
+ border-left-color: rgba(88, 166, 255, 0.3);
63
+ animation: spin 1.5s cubic-bezier(0.68, -0.55, 0.27, 1.55) infinite reverse;
64
  }
65
  #loading-message {
66
  font-size: 1rem; /* Slightly smaller message */
 
69
  @keyframes spin {
70
  0% {
71
  transform: rotate(0deg);
72
+ opacity: 1;
73
+ }
74
+ 50% {
75
+ opacity: 0.7;
76
  }
77
  100% {
78
  transform: rotate(360deg);
79
+ opacity: 1;
80
  }
81
  }