@twick/video-editor 0.14.0 → 0.14.2

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.
@@ -1,471 +1,494 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap');@import url('https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&display=swap');@import url('https://fonts.googleapis.com/css2?family=Luckiest+Guy&family=Mulish:ital,wght@0,200..1000;1,200..1000&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');@import url('https://fonts.googleapis.com/css2?family=Bangers&family=Birthstone&family=Corinthia:wght@400;700&family=Imperial+Script&family=Kumar+One+Outline&family=Londrina+Outline&family=Marck+Script&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Pattaya&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');@import url('https://fonts.cdnfonts.com/css/peralta');@import url('https://fonts.cdnfonts.com/css/impact');@import url('https://fonts.cdnfonts.com/css/lumanosimo');@import url('https://fonts.cdnfonts.com/css/kapakana');@import url('https://fonts.cdnfonts.com/css/handyrush');@import url('https://fonts.cdnfonts.com/css/dasher');@import url('https://fonts.cdnfonts.com/css/brittany-signature');
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
- .twick-editor-main-container {
14
- display: flex;
15
- flex-direction: column;
16
- width: 100%;
17
- height: 100%;
18
- gap: 6px;
19
- }
20
- .twick-editor-view-section {
21
- display: flex;
22
- flex-direction: row;
23
- justify-content: space-between;
24
- gap: 6px;
25
- width: 100%;
26
- height: 100%;
27
- }
28
- .twick-editor-timeline-section {
29
- display: flex;
30
- flex-direction: row;
31
- width: 100%;
32
- height: 100%;
33
- background-color: #252525;
34
- border-radius: 10px;
35
- overflow-x: hidden;
36
- }
37
- .twick-editor-container {
38
- position: relative;
39
- height: 80dvh;
40
- overflow: hidden;
41
- border-radius: 10px;
42
- background-color: #000;
43
- color: #fff;
44
- }
45
- .twick-editor-canvas-container {
46
- position: absolute;
47
- top: 0;
48
- left: 0;
49
- width: 100%;
50
- height: 100%;
51
- }
52
- .twick-editor-canvas {
53
- width: 100%;
54
- height: 100%;
55
- }.twick-timeline-scroll-container {
56
- display: flex;
57
- flex-direction: column;
58
- flex: 1;
59
- overflow-x: auto;
60
- overflow-y: hidden;
61
- }
62
- /* Timeline Container Styles */
63
- .twick-timeline-container {
64
- display: flex;
65
- height: 2.75rem;
66
- position: relative;
67
- }
68
-
69
- .twick-timeline-header-container {
70
- position: sticky;
71
- left: 0;
72
- z-index: 30;
73
- }
74
-
75
- .twick-seek-track-container {
76
- display: flex;
77
- position: relative;
78
- min-width: 100%;
79
- height: 2rem;
80
- width: 100%;
81
- }
82
-
83
- .twick-seek-track-empty-space {
84
- position: sticky;
85
- left: 0;
86
- z-index: 40;
87
- display: flex;
88
- flex-grow: 0;
89
- min-width: 40px;
90
- height: 34px;
91
- background-color: #171717;
92
- }
93
-
94
- .twick-seek-track {
95
- position: relative;
96
- width: 100%;
97
- border-top: 1px solid #262626;
98
- border-bottom: 1px solid #262626;
99
- background-color: #171717;
100
- }
101
-
102
- .twick-seek-track-canvas {
103
- min-width: 100%;
104
- height: 2rem;
105
- }
106
-
107
- .twick-seek-track-playhead {
108
- position: absolute;
109
- top: 0;
110
- left: 0;
111
- z-index: 30;
112
- cursor: ew-resize;
113
- width: 100%;
114
- height: 100%;
115
- }
116
-
117
- .twick-seek-track-pin {
118
- position: absolute;
119
- top: 0;
120
- left: 0;
121
- z-index: 30;
122
- width: 1.5px;
123
- height: 100%;
124
- background-color: #FFFFFF;
125
- }
126
-
127
- .twick-seek-track-handle {
128
- position: absolute;
129
- top: 0;
130
- left: 0;
131
- width: 0.75rem;
132
- height: 0.75rem;
133
- transform: translate(-50%, -50%);
134
- background-color: #FFFFFF;
135
- border-radius: 25%;
136
- }
137
-
138
- .twick-track-element {
139
- position: absolute;
140
- height: 100%;
141
- cursor: pointer;
142
- border-radius: 6px;
143
- transition: background-color 0.2s ease-in-out;
144
- }
145
-
146
- .twick-track-element-selected {
147
- border: 2px solid #FFFFFF;
148
- z-index: 10;
149
- box-shadow: 0 0 0 1px rgba(255,255,255,0.8);
150
- }
151
-
152
- .twick-track-element-default {
153
- border: 1px solid #d1d1d1;
154
- }
155
-
156
- .twick-track-element-dragging {
157
- border: 1px solid #ffffff;
158
- }
159
-
160
- .twick-track-element-content {
161
- width: 100%;
162
- height: 100%;
163
- cursor: grab;
164
- transition: background-color 0.2s ease-in-out;
165
- padding: 0.25rem;
166
- white-space: nowrap;
167
- overflow: hidden;
168
- text-overflow: ellipsis;
169
- }
170
-
171
- .twick-track-element-handle {
172
- position: absolute;
173
- width: 2px;
174
- height: 60%;
175
- cursor: ew-resize;
176
- transition: background-color 0.2s ease-in-out;
177
- top: 50%;
178
- transform: translate(-50%, -50%);
179
- background-color: #FFFFFF;
180
- border-radius: 25%;
181
- z-index: 10;
182
- }
183
-
184
- .twick-track-element-handle-start {
185
- left: 0px;
186
- }
187
-
188
- .twick-track-element-handle-end {
189
- right: -2px;
190
- }
191
-
192
- .twick-track-element-frame-effect {
193
- position: absolute;
194
- flex: 1;
195
- top: 0;
196
- display: flex;
197
- align-items: center;
198
- padding: 0 0.5rem;
199
- font-size: 0.75rem;
200
- opacity: 0.5;
201
- }
202
-
203
- .twick-track-header {
204
- display: flex;
205
- flex: none;
206
- position: relative;
207
- width: 40px;
208
- height: 100%;
209
- background-color: #171717;
210
- border-right: 1px solid #262626;
211
- align-items: center;
212
- }
213
-
214
-
215
- .twick-track-header-selected {
216
- border: 2px solid #FFFFFF;
217
- z-index: 10;
218
- box-shadow: 0 0 0 1px rgba(255,255,255,0.8);
219
- outline: 2px solid #FFFFFF;
220
- }
221
-
222
- .twick-track-header-default {
223
- border: 1px solid #404040;
224
- }
225
-
226
- .twick-track-header-lock {
227
- position: absolute;
228
- top: 14px;
229
- right: 2px;
230
- width: 16px;
231
- height: 16px;
232
- z-index: 20;
233
- color: #333;
234
- }
235
-
236
- .twick-track-header-content {
237
- display: flex;
238
- align-items: center;
239
- width: 100%;
240
- height: 100%;
241
- padding: 0 0.5rem;
242
- }
243
-
244
- .twick-track-header-grip {
245
- display: flex;
246
- align-items: center;
247
- justify-content: center;
248
- margin-top: 4px;
249
- width: 20px;
250
- height: 20px;
251
- cursor: grab;
252
- }
253
-
254
- .twick-track-header-name {
255
- display: flex;
256
- align-items: center;
257
- width: 100%;
258
- height: 100%;
259
- padding: 0 0.5rem;
260
- }
261
-
262
- .twick-track {
263
- min-width: 100%;
264
- position: relative;
265
- height: 2.5rem;
266
- margin-top: 2px;
267
- background-color: #474747;
268
- }
269
- .player-controls {
270
- background: #474747;
271
- padding: 12px 16px;
272
- display: flex;
273
- flex-direction: column;
274
- gap: 12px;
275
- -webkit-user-select: none;
276
- -moz-user-select: none;
277
- user-select: none;
278
- max-height: 200px;
279
- }
280
-
281
- .player-controls-top {
282
- display: flex;
283
- align-items: center;
284
- justify-content: space-between;
285
- gap: 16px;
286
- height: 40px;
287
- }
288
-
289
- /* Edit Controls (Left Section) */
290
- .edit-controls {
291
- display: flex;
292
- align-items: center;
293
- gap: 8px;
294
- }
295
-
296
- /* Playback Controls (Center Section) */
297
- .playback-controls {
298
- display: flex;
299
- align-items: center;
300
- gap: 24px;
301
- flex: 1;
302
- justify-content: space-around;
303
- }
304
-
305
- /* Time Display (Right Section) */
306
- .time-display {
307
- display: flex;
308
- align-items: center;
309
- gap: 6px;
310
- font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;
311
- font-size: 14px;
312
- color: #fff;
313
- min-width: 80px;
314
- justify-content: flex-end;
315
- }
316
-
317
- .current-time {
318
- color: #fff;
319
- font-weight: 500;
320
- }
321
-
322
- .time-separator {
323
- color: #666;
324
- margin: 0 2px;
325
- }
326
-
327
- .total-time {
328
- color: #999;
329
- }
330
-
331
- /* Control Buttons */
332
- .control-btn {
333
- display: flex;
334
- align-items: center;
335
- gap: 6px;
336
- padding: 8px 12px;
337
- background: #2a2a2a;
338
- border: 1px solid #444;
339
- border-radius: 6px;
340
- color: #fff;
341
- font-size: 13px;
342
- font-weight: 500;
343
- cursor: pointer;
344
- transition: all 0.15s ease;
345
- white-space: nowrap;
346
- min-height: 36px;
347
- }
348
-
349
- .control-btn:hover {
350
- background: #3a3a3a;
351
- border-color: #555;
352
- }
353
-
354
- .control-btn:active {
355
- transform: translateY(1px);
356
- background: #1a1a1a;
357
- }
358
-
359
- .control-btn:disabled {
360
- opacity: 0.5;
361
- cursor: not-allowed;
362
- pointer-events: none;
363
- }
364
-
365
- .control-btn svg {
366
- flex-shrink: 0;
367
- }
368
-
369
- /* Specific Button Styles */
370
- .play-pause-btn {
371
- background: #0066cc;
372
- border-color: #0066cc;
373
- padding: 8px;
374
- min-width: 44px;
375
- justify-content: center;
376
- }
377
-
378
- .play-pause-btn:hover {
379
- background: #0077dd;
380
- border-color: #0077dd;
381
- }
382
-
383
- .delete-btn {
384
- color: #ff4444;
385
- border-color: #ff444440;
386
- }
387
-
388
- .delete-btn:hover {
389
- background: #ff444420;
390
- border-color: #ff4444;
391
- }
392
-
393
- .split-btn svg {
394
- color: #ffa500;
395
- }
396
-
397
- .clone-btn svg {
398
- color: #00cc66;
399
- }
400
-
401
- .btn-disabled {
402
- opacity: 0.5;
403
- cursor: not-allowed;
404
- pointer-events: none;
405
- }
406
-
407
- .prev-btn,
408
- .next-btn {
409
- padding: 8px;
410
- min-width: 36px;
411
- justify-content: center;
412
- }
413
-
414
- /* Timeline Controls */
415
- .timeline-controls {
416
- position: relative;
417
- background: #2a2a2a;
418
- border-radius: 6px;
419
- padding: 8px;
420
- border: 1px solid #444;
421
- }
422
-
423
-
424
- .twick-track-zoom-container {
425
- display: flex;
426
- align-items: center;
427
- justify-content: space-between;
428
- gap: 8px;
429
- width: 100%;
430
- background-color: #171717;
431
- border: 4px;
432
- padding: 0 4px;
433
- }
434
-
435
- .twick-zoom-slider {
436
- position: relative;
437
- width: 100%;
438
- height: 2px;
439
- cursor: pointer;
440
- background-color: #ffffff55;
441
- border-radius: 50%;
442
- }
443
-
444
- .twick-zoom-slider-track {
445
- position: absolute;
446
- top: 0;
447
- left: 0;
448
- height: 100%;
449
- background-color: #4949d5;
450
- border-radius: 50%;
451
- transition: all 0.2s ease-in-out;
452
- }
453
-
454
- .twick-zoom-slider-thumb {
455
- position: absolute;
456
- top: 50%;
457
- width: 16px;
458
- height: 16px;
459
- background-color: #ffffff;
460
- border: 2px solid #4949d5;
461
- border-radius: 50%;
462
- cursor: grab;
463
- transform: translate(-50%, -50%);
464
- transition: all 0.2s ease-in-out;
465
- }
466
-
467
- .undo-redo-controls {
468
- display: flex;
469
- align-items: center;
470
- gap: 8px;
1
+ @import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap');@import url('https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&display=swap');@import url('https://fonts.googleapis.com/css2?family=Luckiest+Guy&family=Mulish:ital,wght@0,200..1000;1,200..1000&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');@import url('https://fonts.googleapis.com/css2?family=Bangers&family=Birthstone&family=Corinthia:wght@400;700&family=Imperial+Script&family=Kumar+One+Outline&family=Londrina+Outline&family=Marck+Script&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Pattaya&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');@import url('https://fonts.cdnfonts.com/css/peralta');@import url('https://fonts.cdnfonts.com/css/impact');@import url('https://fonts.cdnfonts.com/css/lumanosimo');@import url('https://fonts.cdnfonts.com/css/kapakana');@import url('https://fonts.cdnfonts.com/css/handyrush');@import url('https://fonts.cdnfonts.com/css/dasher');@import url('https://fonts.cdnfonts.com/css/brittany-signature');
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ .twick-editor-main-container {
14
+ display: flex;
15
+ flex-direction: column;
16
+ width: 100%;
17
+ height: 100%;
18
+ gap: 6px;
19
+ }
20
+ .twick-editor-view-section {
21
+ display: flex;
22
+ flex-direction: row;
23
+ justify-content: space-between;
24
+ gap: 6px;
25
+ width: 100%;
26
+ height: 100%;
27
+ }
28
+ .twick-editor-timeline-section {
29
+ display: flex;
30
+ flex-direction: row;
31
+ width: 100%;
32
+ height: 100%;
33
+ background-color: #252525;
34
+ border-radius: 10px;
35
+ overflow-x: hidden;
36
+ }
37
+ .twick-editor-container {
38
+ position: relative;
39
+ height: 80dvh;
40
+ overflow: hidden;
41
+ border-radius: 10px;
42
+ background-color: #000;
43
+ color: #fff;
44
+ }
45
+ .twick-editor-canvas-container {
46
+ position: absolute;
47
+ top: 0;
48
+ left: 0;
49
+ width: 100%;
50
+ height: 100%;
51
+ }
52
+ .twick-editor-canvas {
53
+ width: 100%;
54
+ height: 100%;
55
+ }
56
+ .twick-editor-loading-overlay {
57
+ position: absolute;
58
+ z-index: 30;
59
+ background-color: rgba(0, 0, 0, 0.5);
60
+ top: 0;
61
+ left: 0;
62
+ width: 100%;
63
+ height: 100%;
64
+ display: flex;
65
+ }
66
+ .twick-editor-loading-spinner {
67
+ width: 48px;
68
+ height: 48px;
69
+ border: 6px solid #444;
70
+ border-top: 6px solid #fff;
71
+ border-radius: 50%;
72
+ animation: twick-editor-spin 1s linear infinite;
73
+ margin: auto;
74
+ }
75
+ @keyframes twick-editor-spin {
76
+ 0% { transform: rotate(0deg); }
77
+ 100% { transform: rotate(360deg); }
78
+ }.twick-timeline-scroll-container {
79
+ display: flex;
80
+ flex-direction: column;
81
+ flex: 1;
82
+ overflow-x: auto;
83
+ overflow-y: hidden;
84
+ }
85
+ /* Timeline Container Styles */
86
+ .twick-timeline-container {
87
+ display: flex;
88
+ height: 2.75rem;
89
+ position: relative;
90
+ }
91
+
92
+ .twick-timeline-header-container {
93
+ position: sticky;
94
+ left: 0;
95
+ z-index: 30;
96
+ }
97
+
98
+ .twick-seek-track-container {
99
+ display: flex;
100
+ position: relative;
101
+ min-width: 100%;
102
+ height: 2rem;
103
+ width: 100%;
104
+ }
105
+
106
+ .twick-seek-track-empty-space {
107
+ position: sticky;
108
+ left: 0;
109
+ z-index: 40;
110
+ display: flex;
111
+ flex-grow: 0;
112
+ min-width: 40px;
113
+ height: 34px;
114
+ background-color: #171717;
115
+ }
116
+
117
+ .twick-seek-track {
118
+ position: relative;
119
+ width: 100%;
120
+ border-top: 1px solid #262626;
121
+ border-bottom: 1px solid #262626;
122
+ background-color: #171717;
123
+ }
124
+
125
+ .twick-seek-track-canvas {
126
+ min-width: 100%;
127
+ height: 2rem;
128
+ }
129
+
130
+ .twick-seek-track-playhead {
131
+ position: absolute;
132
+ top: 0;
133
+ left: 0;
134
+ z-index: 30;
135
+ cursor: ew-resize;
136
+ width: 100%;
137
+ height: 100%;
138
+ }
139
+
140
+ .twick-seek-track-pin {
141
+ position: absolute;
142
+ top: 0;
143
+ left: 0;
144
+ z-index: 30;
145
+ width: 1.5px;
146
+ height: 100%;
147
+ background-color: #FFFFFF;
148
+ }
149
+
150
+ .twick-seek-track-handle {
151
+ position: absolute;
152
+ top: 0;
153
+ left: 0;
154
+ width: 0.75rem;
155
+ height: 0.75rem;
156
+ transform: translate(-50%, -50%);
157
+ background-color: #FFFFFF;
158
+ border-radius: 25%;
159
+ }
160
+
161
+ .twick-track-element {
162
+ position: absolute;
163
+ height: 100%;
164
+ cursor: pointer;
165
+ border-radius: 6px;
166
+ transition: background-color 0.2s ease-in-out;
167
+ }
168
+
169
+ .twick-track-element-selected {
170
+ border: 2px solid #FFFFFF;
171
+ z-index: 10;
172
+ box-shadow: 0 0 0 1px rgba(255,255,255,0.8);
173
+ }
174
+
175
+ .twick-track-element-default {
176
+ border: 1px solid #d1d1d1;
177
+ }
178
+
179
+ .twick-track-element-dragging {
180
+ border: 1px solid #ffffff;
181
+ }
182
+
183
+ .twick-track-element-content {
184
+ width: 100%;
185
+ height: 100%;
186
+ cursor: grab;
187
+ transition: background-color 0.2s ease-in-out;
188
+ padding: 0.25rem;
189
+ white-space: nowrap;
190
+ overflow: hidden;
191
+ text-overflow: ellipsis;
192
+ }
193
+
194
+ .twick-track-element-handle {
195
+ position: absolute;
196
+ width: 2px;
197
+ height: 60%;
198
+ cursor: ew-resize;
199
+ transition: background-color 0.2s ease-in-out;
200
+ top: 50%;
201
+ transform: translate(-50%, -50%);
202
+ background-color: #FFFFFF;
203
+ border-radius: 25%;
204
+ z-index: 10;
205
+ }
206
+
207
+ .twick-track-element-handle-start {
208
+ left: 0px;
209
+ }
210
+
211
+ .twick-track-element-handle-end {
212
+ right: -2px;
213
+ }
214
+
215
+ .twick-track-element-frame-effect {
216
+ position: absolute;
217
+ flex: 1;
218
+ top: 0;
219
+ display: flex;
220
+ align-items: center;
221
+ padding: 0 0.5rem;
222
+ font-size: 0.75rem;
223
+ opacity: 0.5;
224
+ }
225
+
226
+ .twick-track-header {
227
+ display: flex;
228
+ flex: none;
229
+ position: relative;
230
+ width: 40px;
231
+ height: 100%;
232
+ background-color: #171717;
233
+ border-right: 1px solid #262626;
234
+ align-items: center;
235
+ }
236
+
237
+
238
+ .twick-track-header-selected {
239
+ border: 2px solid #FFFFFF;
240
+ z-index: 10;
241
+ box-shadow: 0 0 0 1px rgba(255,255,255,0.8);
242
+ outline: 2px solid #FFFFFF;
243
+ }
244
+
245
+ .twick-track-header-default {
246
+ border: 1px solid #404040;
247
+ }
248
+
249
+ .twick-track-header-lock {
250
+ position: absolute;
251
+ top: 14px;
252
+ right: 2px;
253
+ width: 16px;
254
+ height: 16px;
255
+ z-index: 20;
256
+ color: #333;
257
+ }
258
+
259
+ .twick-track-header-content {
260
+ display: flex;
261
+ align-items: center;
262
+ width: 100%;
263
+ height: 100%;
264
+ padding: 0 0.5rem;
265
+ }
266
+
267
+ .twick-track-header-grip {
268
+ display: flex;
269
+ align-items: center;
270
+ justify-content: center;
271
+ margin-top: 4px;
272
+ width: 20px;
273
+ height: 20px;
274
+ cursor: grab;
275
+ }
276
+
277
+ .twick-track-header-name {
278
+ display: flex;
279
+ align-items: center;
280
+ width: 100%;
281
+ height: 100%;
282
+ padding: 0 0.5rem;
283
+ }
284
+
285
+ .twick-track {
286
+ min-width: 100%;
287
+ position: relative;
288
+ height: 2.5rem;
289
+ margin-top: 2px;
290
+ background-color: #474747;
291
+ }
292
+ .player-controls {
293
+ background: #474747;
294
+ padding: 12px 16px;
295
+ display: flex;
296
+ flex-direction: column;
297
+ gap: 12px;
298
+ -webkit-user-select: none;
299
+ -moz-user-select: none;
300
+ user-select: none;
301
+ max-height: 200px;
302
+ }
303
+
304
+ .player-controls-top {
305
+ display: flex;
306
+ align-items: center;
307
+ justify-content: space-between;
308
+ gap: 16px;
309
+ height: 40px;
310
+ }
311
+
312
+ /* Edit Controls (Left Section) */
313
+ .edit-controls {
314
+ display: flex;
315
+ align-items: center;
316
+ gap: 8px;
317
+ }
318
+
319
+ /* Playback Controls (Center Section) */
320
+ .playback-controls {
321
+ display: flex;
322
+ align-items: center;
323
+ gap: 24px;
324
+ flex: 1;
325
+ justify-content: space-around;
326
+ }
327
+
328
+ /* Time Display (Right Section) */
329
+ .time-display {
330
+ display: flex;
331
+ align-items: center;
332
+ gap: 6px;
333
+ font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;
334
+ font-size: 14px;
335
+ color: #fff;
336
+ min-width: 80px;
337
+ justify-content: flex-end;
338
+ }
339
+
340
+ .current-time {
341
+ color: #fff;
342
+ font-weight: 500;
343
+ }
344
+
345
+ .time-separator {
346
+ color: #666;
347
+ margin: 0 2px;
348
+ }
349
+
350
+ .total-time {
351
+ color: #999;
352
+ }
353
+
354
+ /* Control Buttons */
355
+ .control-btn {
356
+ display: flex;
357
+ align-items: center;
358
+ gap: 6px;
359
+ padding: 8px 12px;
360
+ background: #2a2a2a;
361
+ border: 1px solid #444;
362
+ border-radius: 6px;
363
+ color: #fff;
364
+ font-size: 13px;
365
+ font-weight: 500;
366
+ cursor: pointer;
367
+ transition: all 0.15s ease;
368
+ white-space: nowrap;
369
+ min-height: 36px;
370
+ }
371
+
372
+ .control-btn:hover {
373
+ background: #3a3a3a;
374
+ border-color: #555;
375
+ }
376
+
377
+ .control-btn:active {
378
+ transform: translateY(1px);
379
+ background: #1a1a1a;
380
+ }
381
+
382
+ .control-btn:disabled {
383
+ opacity: 0.5;
384
+ cursor: not-allowed;
385
+ pointer-events: none;
386
+ }
387
+
388
+ .control-btn svg {
389
+ flex-shrink: 0;
390
+ }
391
+
392
+ /* Specific Button Styles */
393
+ .play-pause-btn {
394
+ background: #0066cc;
395
+ border-color: #0066cc;
396
+ padding: 8px;
397
+ min-width: 44px;
398
+ justify-content: center;
399
+ }
400
+
401
+ .play-pause-btn:hover {
402
+ background: #0077dd;
403
+ border-color: #0077dd;
404
+ }
405
+
406
+ .delete-btn {
407
+ color: #ff4444;
408
+ border-color: #ff444440;
409
+ }
410
+
411
+ .delete-btn:hover {
412
+ background: #ff444420;
413
+ border-color: #ff4444;
414
+ }
415
+
416
+ .split-btn svg {
417
+ color: #ffa500;
418
+ }
419
+
420
+ .clone-btn svg {
421
+ color: #00cc66;
422
+ }
423
+
424
+ .btn-disabled {
425
+ opacity: 0.5;
426
+ cursor: not-allowed;
427
+ pointer-events: none;
428
+ }
429
+
430
+ .prev-btn,
431
+ .next-btn {
432
+ padding: 8px;
433
+ min-width: 36px;
434
+ justify-content: center;
435
+ }
436
+
437
+ /* Timeline Controls */
438
+ .timeline-controls {
439
+ position: relative;
440
+ background: #2a2a2a;
441
+ border-radius: 6px;
442
+ padding: 8px;
443
+ border: 1px solid #444;
444
+ }
445
+
446
+
447
+ .twick-track-zoom-container {
448
+ display: flex;
449
+ align-items: center;
450
+ justify-content: space-between;
451
+ gap: 8px;
452
+ width: 100%;
453
+ background-color: #171717;
454
+ border: 4px;
455
+ padding: 0 4px;
456
+ }
457
+
458
+ .twick-zoom-slider {
459
+ position: relative;
460
+ width: 100%;
461
+ height: 2px;
462
+ cursor: pointer;
463
+ background-color: #ffffff55;
464
+ border-radius: 50%;
465
+ }
466
+
467
+ .twick-zoom-slider-track {
468
+ position: absolute;
469
+ top: 0;
470
+ left: 0;
471
+ height: 100%;
472
+ background-color: #4949d5;
473
+ border-radius: 50%;
474
+ transition: all 0.2s ease-in-out;
475
+ }
476
+
477
+ .twick-zoom-slider-thumb {
478
+ position: absolute;
479
+ top: 50%;
480
+ width: 16px;
481
+ height: 16px;
482
+ background-color: #ffffff;
483
+ border: 2px solid #4949d5;
484
+ border-radius: 50%;
485
+ cursor: grab;
486
+ transform: translate(-50%, -50%);
487
+ transition: all 0.2s ease-in-out;
488
+ }
489
+
490
+ .undo-redo-controls {
491
+ display: flex;
492
+ align-items: center;
493
+ gap: 8px;
471
494
  }