prthm11 commited on
Commit
a7091bc
·
verified ·
1 Parent(s): eb80a7b

Update templates/index2.html

Browse files
Files changed (1) hide show
  1. templates/index2.html +425 -1
templates/index2.html CHANGED
@@ -8,7 +8,431 @@
8
  <link rel="icon" href=".../icons8-speech recognition-external-smashingstocks-glyph-smashing-stocks-32.png?v=2">
9
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:400,600,700&display=swap">
10
  <style>
11
- /* --- your existing CSS stays the same --- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  </style>
13
  </head>
14
 
 
8
  <link rel="icon" href=".../icons8-speech recognition-external-smashingstocks-glyph-smashing-stocks-32.png?v=2">
9
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:400,600,700&display=swap">
10
  <style>
11
+ :root {
12
+ --bg: #18122b;
13
+ --bg-card: #231942;
14
+ --bg-card2: #251e3e;
15
+ --accent: #a259ec;
16
+ --accent2: #2563eb;
17
+ --text: #fff;
18
+ --text-muted: #bcbcbc;
19
+ --border: #312e4a;
20
+ --success: #22c55e;
21
+ --danger: #dc2626;
22
+ --cyan: #00fff7;
23
+ }
24
+
25
+ html,
26
+ body {
27
+ height: 100%;
28
+ margin: 0;
29
+ padding: 0;
30
+ font-family: 'Inter', Arial, sans-serif;
31
+ background: var(--bg);
32
+ color: var(--text);
33
+ }
34
+
35
+ .layout {
36
+ display: flex;
37
+ min-height: 100vh;
38
+ gap: 32px;
39
+ padding: 32px;
40
+ box-sizing: border-box;
41
+ }
42
+
43
+ .main-panel {
44
+ flex: 2;
45
+ display: flex;
46
+ flex-direction: column;
47
+ gap: 24px;
48
+ }
49
+
50
+ .card {
51
+ background: var(--bg-card);
52
+ border-radius: 18px;
53
+ box-shadow: 0 2px 16px #0003;
54
+ padding: 32px 32px 24px 32px;
55
+ margin-bottom: 0;
56
+ border: 1.5px solid var(--border);
57
+ }
58
+
59
+ .card h2,
60
+ .card h3 {
61
+ margin-top: 0;
62
+ color: var(--accent);
63
+ font-size: 1.5em;
64
+ font-weight: 700;
65
+ margin-bottom: 18px;
66
+ letter-spacing: 1px;
67
+ }
68
+
69
+ .sidebar {
70
+ flex: 1;
71
+ min-width: 320px;
72
+ background: var(--bg-card2);
73
+ border-radius: 18px;
74
+ box-shadow: 0 2px 16px #0003;
75
+ padding: 32px 28px 24px 28px;
76
+ display: flex;
77
+ flex-direction: column;
78
+ gap: 32px;
79
+ border: 1.5px solid var(--border);
80
+ height: fit-content;
81
+ }
82
+
83
+ .sidebar h3 {
84
+ color: var(--accent2);
85
+ font-size: 1.2em;
86
+ font-weight: 700;
87
+ margin-bottom: 18px;
88
+ letter-spacing: 1px;
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 8px;
92
+ }
93
+
94
+ .sidebar label {
95
+ font-size: 1em;
96
+ color: var(--text-muted);
97
+ margin-top: 18px;
98
+ font-weight: 600;
99
+ display: flex;
100
+ align-items: center;
101
+ gap: 8px;
102
+ }
103
+
104
+ .sidebar select,
105
+ .sidebar input[type="number"] {
106
+ width: 100%;
107
+ margin-top: 6px;
108
+ padding: 10px;
109
+ border-radius: 8px;
110
+ border: 1px solid var(--border);
111
+ background: #201c3a;
112
+ color: var(--text);
113
+ font-size: 1em;
114
+ margin-bottom: 10px;
115
+ outline: none;
116
+ transition: border 0.2s;
117
+ }
118
+
119
+ .sidebar select:focus,
120
+ .sidebar input[type="number"]:focus {
121
+ border: 1.5px solid var(--accent2);
122
+ }
123
+
124
+ .sidebar button {
125
+ width: 100%;
126
+ padding: 14px 0;
127
+ margin-top: 18px;
128
+ border: none;
129
+ border-radius: 8px;
130
+ background: var(--accent);
131
+ color: #fff;
132
+ font-size: 1.1em;
133
+ font-weight: 600;
134
+ cursor: pointer;
135
+ transition: background 0.2s;
136
+ box-shadow: 0 2px 8px #0002;
137
+ }
138
+
139
+ .sidebar button:disabled {
140
+ background: #a5b4fc;
141
+ cursor: not-allowed;
142
+ }
143
+
144
+ .sidebar .stop-btn {
145
+ background: var(--danger);
146
+ margin-top: 8px;
147
+ }
148
+
149
+ .toggle-row {
150
+ display: flex;
151
+ align-items: center;
152
+ gap: 10px;
153
+ margin-top: 10px;
154
+ }
155
+
156
+ .toggle-label {
157
+ flex: 1;
158
+ color: var(--text-muted);
159
+ font-size: 1em;
160
+ }
161
+
162
+ .toggle-switch {
163
+ width: 38px;
164
+ height: 22px;
165
+ background: #333;
166
+ border-radius: 12px;
167
+ position: relative;
168
+ cursor: pointer;
169
+ transition: background 0.2s;
170
+ }
171
+
172
+ .toggle-switch input {
173
+ display: none;
174
+ }
175
+
176
+ .toggle-slider {
177
+ position: absolute;
178
+ top: 2px;
179
+ left: 2px;
180
+ width: 18px;
181
+ height: 18px;
182
+ background: var(--accent2);
183
+ border-radius: 50%;
184
+ transition: left 0.2s;
185
+ }
186
+
187
+ .toggle-switch input:checked+.toggle-slider {
188
+ left: 18px;
189
+ background: var(--danger);
190
+ }
191
+
192
+ .status {
193
+ margin: 18px 0 0 0;
194
+ font-weight: bold;
195
+ color: var(--success);
196
+ font-size: 1.1em;
197
+ text-align: center;
198
+ }
199
+
200
+ .recorder-center {
201
+ display: flex;
202
+ flex-direction: column;
203
+ align-items: center;
204
+ gap: 18px;
205
+ margin-bottom: 18px;
206
+ }
207
+
208
+ .recorder-btn {
209
+ width: 90px;
210
+ height: 90px;
211
+ border-radius: 50%;
212
+ background: linear-gradient(135deg, #a259ec 60%, #2563eb 100%);
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ box-shadow: 0 0 32px #a259ec55;
217
+ cursor: pointer;
218
+ transition: box-shadow 0.2s, background 0.2s;
219
+ position: relative;
220
+ }
221
+
222
+ .recorder-btn.recording {
223
+ background: linear-gradient(135deg, #dc2626 60%, #a259ec 100%);
224
+ box-shadow: 0 0 32px #dc262655;
225
+ animation: pulse 1.2s infinite;
226
+ }
227
+
228
+ @keyframes pulse {
229
+ 0% {
230
+ box-shadow: 0 0 32px #dc262655;
231
+ }
232
+
233
+ 50% {
234
+ box-shadow: 0 0 48px #dc2626aa;
235
+ }
236
+
237
+ 100% {
238
+ box-shadow: 0 0 32px #dc262655;
239
+ }
240
+ }
241
+
242
+ .recorder-btn svg {
243
+ width: 38px;
244
+ height: 38px;
245
+ color: #fff;
246
+ }
247
+
248
+ .recorder-status {
249
+ color: var(--success);
250
+ font-size: 1.1em;
251
+ font-weight: 600;
252
+ margin-top: 8px;
253
+ }
254
+
255
+ .recorder-status.recording {
256
+ color: var(--danger);
257
+ }
258
+
259
+ .live {
260
+ margin-top: 0;
261
+ background: #201c3a;
262
+ border-radius: 12px;
263
+ padding: 18px 18px 10px 18px;
264
+ min-height: 90px;
265
+ border: 1px solid var(--border);
266
+ overflow: hidden;
267
+ /* hide outer overflow, inner #live will scroll */
268
+ display: flex;
269
+ flex-direction: column;
270
+ }
271
+
272
+ /* inner container which actually scrolls */
273
+ #live {
274
+ flex: 1 1 auto;
275
+ overflow-y: auto;
276
+ padding-right: 6px;
277
+ /* give room for scroll bar */
278
+ -webkit-overflow-scrolling: touch;
279
+ scroll-behavior: smooth;
280
+ color: var(--text-muted);
281
+ }
282
+
283
+ .live h4 {
284
+ margin: 0 0 10px 0;
285
+ color: var(--cyan);
286
+ font-size: 1.08em;
287
+ font-weight: 600;
288
+ display: flex;
289
+ align-items: center;
290
+ gap: 8px;
291
+ }
292
+
293
+ .chunk {
294
+ background: linear-gradient(90deg, rgba(45, 37, 74, 0.2), rgba(38, 32, 63, 0.12));
295
+ margin-bottom: 8px;
296
+ padding: 10px 12px;
297
+ border-radius: 8px;
298
+ font-size: 0.98em;
299
+ color: var(--text);
300
+ box-shadow: 0 1px 2px #0002;
301
+ border: 1px solid rgba(255, 255, 255, 0.02);
302
+ }
303
+
304
+ /* Small speaker label */
305
+ .chunk b {
306
+ color: var(--cyan);
307
+ margin-right: 6px;
308
+ font-weight: 700;
309
+ }
310
+
311
+ /* THEMED SCROLLBAR - WebKit (Chrome, Edge, Safari) */
312
+ #live::-webkit-scrollbar {
313
+ width: 10px;
314
+ }
315
+
316
+ #live::-webkit-scrollbar-track {
317
+ background: rgba(255, 255, 255, 0.02);
318
+ border-radius: 10px;
319
+ }
320
+
321
+ #live::-webkit-scrollbar-thumb {
322
+ background: linear-gradient(180deg, var(--accent) 0%, var(--accent2) 100%);
323
+ border-radius: 10px;
324
+ border: 2px solid rgba(0, 0, 0, 0.15);
325
+ }
326
+
327
+ #live::-webkit-scrollbar-thumb:hover {
328
+ filter: brightness(0.95);
329
+ }
330
+
331
+ /* THEMED SCROLLBAR - Firefox */
332
+ #live {
333
+ scrollbar-width: thin;
334
+ scrollbar-color: var(--accent) rgba(255, 255, 255, 0.02);
335
+ }
336
+
337
+ /* responsive: reduce max-height on small screens */
338
+ @media (max-width: 700px) {
339
+ .live {
340
+ max-height: 200px;
341
+ }
342
+ }
343
+
344
+ .files h4 {
345
+ color: var(--accent2);
346
+ font-size: 1.08em;
347
+ margin: 0 0 10px 0;
348
+ font-weight: 600;
349
+ display: flex;
350
+ align-items: center;
351
+ gap: 8px;
352
+ }
353
+
354
+ .file {
355
+ background: #2d254a;
356
+ margin-bottom: 8px;
357
+ padding: 8px 12px;
358
+ border-radius: 5px;
359
+ font-size: 1em;
360
+ color: #e0e7ef;
361
+ display: flex;
362
+ align-items: center;
363
+ justify-content: space-between;
364
+ box-shadow: 0 1px 2px #0001;
365
+ }
366
+
367
+ .file a {
368
+ color: var(--accent2);
369
+ text-decoration: none;
370
+ font-weight: 500;
371
+ }
372
+
373
+ .file a:hover {
374
+ text-decoration: underline;
375
+ }
376
+
377
+ #audio-player-container {
378
+ margin-bottom: 18px;
379
+ }
380
+
381
+ #waveform {
382
+ width: 100%;
383
+ height: 80px;
384
+ background: #2d254a;
385
+ border-radius: 6px;
386
+ }
387
+
388
+ #transcript-container {
389
+ background: #2d254a;
390
+ padding: 14px;
391
+ border-radius: 6px;
392
+ margin-top: 24px;
393
+ }
394
+
395
+ #transcript-content {
396
+ margin-top: 10px;
397
+ white-space: pre-wrap;
398
+ font-size: 1em;
399
+ color: #e0e7ef;
400
+ max-height: 300px;
401
+ overflow: auto;
402
+ background: #201c3a;
403
+ padding: 10px;
404
+ border-radius: 4px;
405
+ }
406
+
407
+ @media (max-width: 1100px) {
408
+ .layout {
409
+ flex-direction: column;
410
+ gap: 0;
411
+ padding: 12px;
412
+ }
413
+
414
+ .sidebar {
415
+ min-width: unset;
416
+ width: 100%;
417
+ margin-bottom: 18px;
418
+ }
419
+
420
+ .main-panel {
421
+ padding: 0;
422
+ }
423
+ }
424
+
425
+ @media (max-width: 700px) {
426
+
427
+ .card,
428
+ .sidebar {
429
+ padding: 16px 8px 12px 8px;
430
+ }
431
+
432
+ .main-panel {
433
+ gap: 12px;
434
+ }
435
+ }
436
  </style>
437
  </head>
438