firqaaa commited on
Commit
113fac3
·
verified ·
1 Parent(s): dfe2db7

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +153 -48
index.html CHANGED
@@ -13,6 +13,7 @@
13
  padding: 20px;
14
  line-height: 1.6;
15
  user-select: none;
 
16
  }
17
 
18
  .container {
@@ -20,23 +21,24 @@
20
  margin: 0 auto;
21
  background: #ffffff;
22
  border: 2px solid #000000;
23
- padding: 30px;
 
24
  }
25
 
26
  h1 {
27
  text-align: center;
28
- margin-bottom: 40px;
29
  color: #000000;
30
  font-weight: bold;
31
- font-size: 24px;
32
  border-bottom: 2px solid #000000;
33
  padding-bottom: 15px;
34
  }
35
 
36
  .controls {
37
  display: flex;
38
- gap: 30px;
39
- margin-bottom: 40px;
40
  flex-wrap: wrap;
41
  justify-content: center;
42
  align-items: center;
@@ -44,8 +46,11 @@
44
 
45
  .control-group {
46
  background: #ffffff;
47
- padding: 15px 20px;
48
  border: 1px solid #000000;
 
 
 
49
  }
50
 
51
  .control-group label {
@@ -54,17 +59,20 @@
54
  font-weight: bold;
55
  color: #000000;
56
  text-align: center;
57
- font-size: 14px;
58
  }
59
 
60
  .dimension-inputs {
61
  display: flex;
62
  gap: 10px;
63
  align-items: center;
 
 
64
  }
65
 
66
  .dimension-inputs input {
67
- width: 50px;
 
68
  padding: 8px;
69
  border: 1px solid #000000;
70
  background: #ffffff;
@@ -72,32 +80,37 @@
72
  font-weight: bold;
73
  text-align: center;
74
  font-family: 'Consolas', 'Courier New', monospace;
 
 
75
  }
76
 
77
  .dimension-inputs .label {
78
- font-size: 14px;
79
  color: #000000;
80
  margin: 0 5px;
 
81
  }
82
 
83
  .stats {
84
- display: flex;
85
- gap: 20px;
86
- margin-bottom: 40px;
87
- flex-wrap: wrap;
88
- justify-content: center;
 
 
89
  }
90
 
91
  .stat-box {
92
  background: #ffffff;
93
- padding: 15px 20px;
94
  border: 1px solid #000000;
95
  text-align: center;
96
- min-width: 120px;
97
  }
98
 
99
  .stat-box .label {
100
- font-size: 12px;
101
  margin-bottom: 8px;
102
  color: #666666;
103
  text-transform: uppercase;
@@ -105,26 +118,88 @@
105
  }
106
 
107
  .stat-box .value {
108
- font-size: 24px;
109
  font-weight: bold;
110
  color: #000000;
111
  }
112
 
113
  .main-visualization {
114
  display: flex;
115
- gap: 40px;
116
- margin-bottom: 40px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  }
118
 
119
  .cube-section {
120
- flex: 1;
121
- min-width: 600px;
122
  }
123
 
124
  .section-title {
125
  text-align: center;
126
  margin-bottom: 20px;
127
- font-size: 18px;
128
  font-weight: bold;
129
  color: #000000;
130
  border-bottom: 1px solid #000000;
@@ -132,28 +207,31 @@
132
  }
133
 
134
  .interaction-guide {
135
- display: flex;
136
- justify-content: space-around;
 
137
  margin-bottom: 20px;
138
- padding: 15px;
139
  background: #f8f8f8;
140
  border: 1px solid #cccccc;
141
- font-size: 12px;
142
  }
143
 
144
  .interaction-item {
145
  text-align: center;
146
  color: #333333;
 
147
  }
148
 
149
  .interaction-item .icon {
150
- font-size: 18px;
151
  margin-bottom: 5px;
152
  display: block;
153
  }
154
 
155
  .cube-container {
156
- height: 500px;
 
157
  perspective: 1200px;
158
  display: flex;
159
  justify-content: center;
@@ -163,6 +241,8 @@
163
  margin-bottom: 20px;
164
  cursor: grab;
165
  overflow: hidden;
 
 
166
  }
167
 
168
  .cube-container:active {
@@ -177,8 +257,8 @@
177
 
178
  .block-cube {
179
  position: absolute;
180
- width: 70px;
181
- height: 70px;
182
  background: #ffffff;
183
  border: 2px solid #000000;
184
  display: flex;
@@ -209,7 +289,7 @@
209
  }
210
 
211
  .block-label {
212
- font-size: 11px;
213
  line-height: 1.2;
214
  margin-bottom: 6px;
215
  font-weight: bold;
@@ -223,7 +303,7 @@
223
  }
224
 
225
  .thread-count {
226
- font-size: 9px;
227
  color: #333333;
228
  font-weight: bold;
229
  text-shadow: 0 0 2px rgba(255, 255, 255, 0.8);
@@ -235,16 +315,22 @@
235
  }
236
 
237
  .info-panel {
238
- flex: 0 0 350px;
239
  background: #ffffff;
240
  border: 2px solid #000000;
241
- padding: 25px;
242
  max-height: 600px;
243
  overflow-y: auto;
 
 
 
 
 
 
 
244
  }
245
 
246
  .info-title {
247
- font-size: 18px;
248
  font-weight: bold;
249
  margin-bottom: 25px;
250
  text-align: center;
@@ -255,13 +341,13 @@
255
 
256
  .info-item {
257
  margin-bottom: 20px;
258
- padding: 15px;
259
  background: #f8f8f8;
260
  border-left: 4px solid #000000;
261
  }
262
 
263
  .info-item .label {
264
- font-size: 12px;
265
  margin-bottom: 8px;
266
  color: #666666;
267
  text-transform: uppercase;
@@ -269,30 +355,30 @@
269
  }
270
 
271
  .info-item .value {
272
- font-size: 16px;
273
  font-weight: bold;
274
  color: #000000;
275
  }
276
 
277
  .thread-detail-grid {
278
  display: grid;
279
- grid-template-columns: repeat(auto-fit, minmax(26px, 1fr));
280
  gap: 1px;
281
  margin-top: 15px;
282
- padding: 12px;
283
  background: #f0f0f0;
284
  border: 1px solid #cccccc;
285
  }
286
 
287
  .thread-detail {
288
- width: 24px;
289
- height: 24px;
290
  background: #ffffff;
291
  border: 1px solid #000000;
292
  display: flex;
293
  align-items: center;
294
  justify-content: center;
295
- font-size: 8px;
296
  font-weight: bold;
297
  cursor: pointer;
298
  transition: all 0.2s ease;
@@ -312,11 +398,12 @@
312
  .instructions {
313
  text-align: center;
314
  margin-top: 20px;
315
- font-size: 14px;
316
  color: #666666;
317
  border: 1px solid #cccccc;
318
- padding: 15px;
319
  background: #f8f8f8;
 
320
  }
321
 
322
  .current-view {
@@ -324,11 +411,29 @@
324
  top: 10px;
325
  right: 10px;
326
  background: rgba(255, 255, 255, 0.9);
327
- padding: 8px 12px;
328
  border: 1px solid #cccccc;
329
- font-size: 11px;
330
  color: #666666;
331
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
332
  </style>
333
  </head>
334
  <body>
 
13
  padding: 20px;
14
  line-height: 1.6;
15
  user-select: none;
16
+ overflow-x: auto;
17
  }
18
 
19
  .container {
 
21
  margin: 0 auto;
22
  background: #ffffff;
23
  border: 2px solid #000000;
24
+ padding: clamp(15px, 4vw, 30px);
25
+ box-sizing: border-box;
26
  }
27
 
28
  h1 {
29
  text-align: center;
30
+ margin-bottom: clamp(20px, 5vw, 40px);
31
  color: #000000;
32
  font-weight: bold;
33
+ font-size: clamp(18px, 4vw, 24px);
34
  border-bottom: 2px solid #000000;
35
  padding-bottom: 15px;
36
  }
37
 
38
  .controls {
39
  display: flex;
40
+ gap: clamp(15px, 3vw, 30px);
41
+ margin-bottom: clamp(20px, 5vw, 40px);
42
  flex-wrap: wrap;
43
  justify-content: center;
44
  align-items: center;
 
46
 
47
  .control-group {
48
  background: #ffffff;
49
+ padding: clamp(10px, 2vw, 20px);
50
  border: 1px solid #000000;
51
+ min-width: 200px;
52
+ flex: 1 1 auto;
53
+ max-width: 300px;
54
  }
55
 
56
  .control-group label {
 
59
  font-weight: bold;
60
  color: #000000;
61
  text-align: center;
62
+ font-size: clamp(12px, 2.5vw, 14px);
63
  }
64
 
65
  .dimension-inputs {
66
  display: flex;
67
  gap: 10px;
68
  align-items: center;
69
+ justify-content: center;
70
+ flex-wrap: wrap;
71
  }
72
 
73
  .dimension-inputs input {
74
+ width: clamp(40px, 8vw, 50px);
75
+ height: clamp(36px, 8vw, 44px);
76
  padding: 8px;
77
  border: 1px solid #000000;
78
  background: #ffffff;
 
80
  font-weight: bold;
81
  text-align: center;
82
  font-family: 'Consolas', 'Courier New', monospace;
83
+ font-size: clamp(12px, 2.5vw, 14px);
84
+ box-sizing: border-box;
85
  }
86
 
87
  .dimension-inputs .label {
88
+ font-size: clamp(12px, 2.5vw, 14px);
89
  color: #000000;
90
  margin: 0 5px;
91
+ flex-shrink: 0;
92
  }
93
 
94
  .stats {
95
+ display: grid;
96
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
97
+ gap: clamp(10px, 2vw, 20px);
98
+ margin-bottom: clamp(20px, 5vw, 40px);
99
+ max-width: 800px;
100
+ margin-left: auto;
101
+ margin-right: auto;
102
  }
103
 
104
  .stat-box {
105
  background: #ffffff;
106
+ padding: clamp(10px, 2vw, 20px);
107
  border: 1px solid #000000;
108
  text-align: center;
109
+ min-width: 100px;
110
  }
111
 
112
  .stat-box .label {
113
+ font-size: clamp(10px, 2vw, 12px);
114
  margin-bottom: 8px;
115
  color: #666666;
116
  text-transform: uppercase;
 
118
  }
119
 
120
  .stat-box .value {
121
+ font-size: clamp(18px, 4vw, 24px);
122
  font-weight: bold;
123
  color: #000000;
124
  }
125
 
126
  .main-visualization {
127
  display: flex;
128
+ flex-direction: column;
129
+ gap: clamp(20px, 4vw, 40px);
130
+ margin-bottom: clamp(20px, 5vw, 40px);
131
+ }
132
+
133
+ /* Large screens: side-by-side layout */
134
+ @media (min-width: 1024px) {
135
+ .main-visualization {
136
+ flex-direction: row;
137
+ }
138
+
139
+ .cube-section {
140
+ flex: 1;
141
+ min-width: 500px;
142
+ }
143
+
144
+ .info-panel {
145
+ flex: 0 0 350px;
146
+ }
147
+ }
148
+
149
+ /* Medium screens: adjust proportions */
150
+ @media (min-width: 768px) and (max-width: 1023px) {
151
+ .main-visualization {
152
+ flex-direction: row;
153
+ }
154
+
155
+ .cube-section {
156
+ flex: 1.2;
157
+ min-width: 400px;
158
+ }
159
+
160
+ .info-panel {
161
+ flex: 0.8;
162
+ min-width: 280px;
163
+ }
164
+ }
165
+
166
+ /* Small screens: stack vertically */
167
+ @media (max-width: 767px) {
168
+ .main-visualization {
169
+ flex-direction: column;
170
+ }
171
+
172
+ .cube-section {
173
+ width: 100%;
174
+ order: 1;
175
+ }
176
+
177
+ .info-panel {
178
+ width: 100%;
179
+ order: 2;
180
+ max-height: none;
181
+ }
182
+
183
+ .controls {
184
+ flex-direction: column;
185
+ align-items: stretch;
186
+ }
187
+
188
+ .control-group {
189
+ max-width: none;
190
+ width: 100%;
191
+ }
192
  }
193
 
194
  .cube-section {
195
+ display: flex;
196
+ flex-direction: column;
197
  }
198
 
199
  .section-title {
200
  text-align: center;
201
  margin-bottom: 20px;
202
+ font-size: clamp(16px, 3vw, 18px);
203
  font-weight: bold;
204
  color: #000000;
205
  border-bottom: 1px solid #000000;
 
207
  }
208
 
209
  .interaction-guide {
210
+ display: grid;
211
+ grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
212
+ gap: clamp(8px, 2vw, 15px);
213
  margin-bottom: 20px;
214
+ padding: clamp(10px, 2vw, 15px);
215
  background: #f8f8f8;
216
  border: 1px solid #cccccc;
217
+ font-size: clamp(10px, 2vw, 12px);
218
  }
219
 
220
  .interaction-item {
221
  text-align: center;
222
  color: #333333;
223
+ padding: 5px;
224
  }
225
 
226
  .interaction-item .icon {
227
+ font-size: clamp(14px, 3vw, 18px);
228
  margin-bottom: 5px;
229
  display: block;
230
  }
231
 
232
  .cube-container {
233
+ height: clamp(300px, 50vw, 500px);
234
+ width: 100%;
235
  perspective: 1200px;
236
  display: flex;
237
  justify-content: center;
 
241
  margin-bottom: 20px;
242
  cursor: grab;
243
  overflow: hidden;
244
+ position: relative;
245
+ box-sizing: border-box;
246
  }
247
 
248
  .cube-container:active {
 
257
 
258
  .block-cube {
259
  position: absolute;
260
+ width: clamp(50px, 8vw, 70px);
261
+ height: clamp(50px, 8vw, 70px);
262
  background: #ffffff;
263
  border: 2px solid #000000;
264
  display: flex;
 
289
  }
290
 
291
  .block-label {
292
+ font-size: clamp(9px, 1.5vw, 11px);
293
  line-height: 1.2;
294
  margin-bottom: 6px;
295
  font-weight: bold;
 
303
  }
304
 
305
  .thread-count {
306
+ font-size: clamp(7px, 1.2vw, 9px);
307
  color: #333333;
308
  font-weight: bold;
309
  text-shadow: 0 0 2px rgba(255, 255, 255, 0.8);
 
315
  }
316
 
317
  .info-panel {
 
318
  background: #ffffff;
319
  border: 2px solid #000000;
320
+ padding: clamp(15px, 3vw, 25px);
321
  max-height: 600px;
322
  overflow-y: auto;
323
+ box-sizing: border-box;
324
+ }
325
+
326
+ @media (max-width: 767px) {
327
+ .info-panel {
328
+ max-height: 400px;
329
+ }
330
  }
331
 
332
  .info-title {
333
+ font-size: clamp(16px, 3vw, 18px);
334
  font-weight: bold;
335
  margin-bottom: 25px;
336
  text-align: center;
 
341
 
342
  .info-item {
343
  margin-bottom: 20px;
344
+ padding: clamp(10px, 2vw, 15px);
345
  background: #f8f8f8;
346
  border-left: 4px solid #000000;
347
  }
348
 
349
  .info-item .label {
350
+ font-size: clamp(10px, 2vw, 12px);
351
  margin-bottom: 8px;
352
  color: #666666;
353
  text-transform: uppercase;
 
355
  }
356
 
357
  .info-item .value {
358
+ font-size: clamp(14px, 2.5vw, 16px);
359
  font-weight: bold;
360
  color: #000000;
361
  }
362
 
363
  .thread-detail-grid {
364
  display: grid;
365
+ grid-template-columns: repeat(auto-fit, minmax(clamp(20px, 4vw, 26px), 1fr));
366
  gap: 1px;
367
  margin-top: 15px;
368
+ padding: clamp(8px, 2vw, 12px);
369
  background: #f0f0f0;
370
  border: 1px solid #cccccc;
371
  }
372
 
373
  .thread-detail {
374
+ width: clamp(20px, 4vw, 24px);
375
+ height: clamp(20px, 4vw, 24px);
376
  background: #ffffff;
377
  border: 1px solid #000000;
378
  display: flex;
379
  align-items: center;
380
  justify-content: center;
381
+ font-size: clamp(6px, 1.5vw, 8px);
382
  font-weight: bold;
383
  cursor: pointer;
384
  transition: all 0.2s ease;
 
398
  .instructions {
399
  text-align: center;
400
  margin-top: 20px;
401
+ font-size: clamp(12px, 2vw, 14px);
402
  color: #666666;
403
  border: 1px solid #cccccc;
404
+ padding: clamp(10px, 2vw, 15px);
405
  background: #f8f8f8;
406
+ line-height: 1.5;
407
  }
408
 
409
  .current-view {
 
411
  top: 10px;
412
  right: 10px;
413
  background: rgba(255, 255, 255, 0.9);
414
+ padding: clamp(6px, 1.5vw, 8px) clamp(8px, 2vw, 12px);
415
  border: 1px solid #cccccc;
416
+ font-size: clamp(9px, 1.5vw, 11px);
417
  color: #666666;
418
  }
419
+
420
+ /* Touch device improvements */
421
+ @media (pointer: coarse) {
422
+ .thread-detail {
423
+ min-width: 28px;
424
+ min-height: 28px;
425
+ }
426
+
427
+ .dimension-inputs input {
428
+ min-height: 44px;
429
+ min-width: 50px;
430
+ }
431
+
432
+ .block-cube {
433
+ min-width: 60px;
434
+ min-height: 60px;
435
+ }
436
+ }
437
  </style>
438
  </head>
439
  <body>