@jjlmoya/utils-audiovisual 1.16.0 → 1.17.0

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.
Files changed (21) hide show
  1. package/package.json +1 -1
  2. package/src/tool/chromaticLens/chromatic-lens-color-palette-extraction-online.css +39 -39
  3. package/src/tool/collageMaker/free-online-photo-collage-maker-professional-compositions.css +47 -47
  4. package/src/tool/exifCleaner/exif-metadata-cleaner-remove-gps-photo-privacy.css +36 -36
  5. package/src/tool/imageCompressor/online-image-compressor-reduce-file-size-no-quality-loss.css +71 -64
  6. package/src/tool/printQualityCalculator/print-quality-calculator-pixels-to-cm-dpi.css +89 -81
  7. package/src/tool/privacyBlur/online-privacy-editor-pixelate-blur-faces-photos.css +36 -36
  8. package/src/tool/subtitleSync/synchronize-srt-subtitles-online-adjust-timing-free.css +43 -43
  9. package/src/tool/timelapseCalculator/timelapse-hyperlapse-calculator-perfect-intervals.css +44 -42
  10. package/src/tool/tvDistance/tv-viewing-distance-calculator-thx-4k-optimal-screen.css +56 -56
  11. package/src/tool/videoFrameExtractor/online-video-frame-extractor-capture-hd-stills.css +55 -55
  12. package/src/tool/chromaticLens/style.css +0 -308
  13. package/src/tool/collageMaker/style.css +0 -386
  14. package/src/tool/exifCleaner/style.css +0 -289
  15. package/src/tool/imageCompressor/style.css +0 -503
  16. package/src/tool/printQualityCalculator/style.css +0 -491
  17. package/src/tool/privacyBlur/style.css +0 -332
  18. package/src/tool/subtitleSync/style.css +0 -325
  19. package/src/tool/timelapseCalculator/style.css +0 -285
  20. package/src/tool/tvDistance/style.css +0 -435
  21. package/src/tool/videoFrameExtractor/style.css +0 -426
@@ -1,386 +0,0 @@
1
- .cm-root {
2
- --cm-bg: #fff;
3
- --cm-bg-muted: #f8fafc;
4
- --cm-border: #e2e8f0;
5
- --cm-text: #0f172a;
6
- --cm-text-muted: #64748b;
7
- --cm-primary: #6366f1;
8
- --cm-primary-light: #eef2ff;
9
- --cm-shadow: rgba(0,0,0,0.07);
10
- --cm-radius: 1rem;
11
-
12
- max-width: 1100px;
13
- margin: 0 auto;
14
- padding: 1rem;
15
- }
16
-
17
- .theme-dark .cm-root {
18
- --cm-bg: #1e293b;
19
- --cm-bg-muted: #0f172a;
20
- --cm-border: #334155;
21
- --cm-text: #f1f5f9;
22
- --cm-text-muted: #94a3b8;
23
- --cm-primary: #818cf8;
24
- --cm-primary-light: #1e1b4b;
25
- --cm-shadow: rgba(0,0,0,0.4);
26
- }
27
-
28
- .cm-card {
29
- background: var(--cm-bg);
30
- border: 1px solid var(--cm-border);
31
- border-radius: var(--cm-radius);
32
- box-shadow: 0 4px 24px var(--cm-shadow);
33
- overflow: hidden;
34
- }
35
-
36
- .cm-top-row {
37
- display: grid;
38
- grid-template-columns: 300px 1fr;
39
- gap: 0;
40
- }
41
-
42
- @media (max-width: 700px) {
43
- .cm-top-row {
44
- grid-template-columns: 1fr;
45
- }
46
- }
47
-
48
- .cm-left-col {
49
- padding: 1.25rem;
50
- border-right: 1px solid var(--cm-border);
51
- display: flex;
52
- flex-direction: column;
53
- gap: 1rem;
54
- }
55
-
56
- @media (max-width: 700px) {
57
- .cm-left-col {
58
- border-right: none;
59
- border-bottom: 1px solid var(--cm-border);
60
- }
61
- }
62
-
63
- .cm-drop-zone {
64
- position: relative;
65
- background: var(--cm-bg-muted);
66
- border: 2px dashed var(--cm-border);
67
- border-radius: 0.75rem;
68
- padding: 1.5rem 1rem;
69
- text-align: center;
70
- cursor: pointer;
71
- transition: border-color 0.2s, background 0.2s;
72
- display: flex;
73
- flex-direction: column;
74
- align-items: center;
75
- gap: 0.35rem;
76
- color: var(--cm-primary);
77
- }
78
-
79
- .cm-drop-zone input[type="file"] {
80
- position: absolute;
81
- inset: 0;
82
- opacity: 0;
83
- cursor: pointer;
84
- width: 100%;
85
- height: 100%;
86
- }
87
-
88
- .cm-drop-zone:hover,
89
- .cm-drop-zone-over {
90
- border-color: var(--cm-primary);
91
- background: var(--cm-primary-light);
92
- }
93
-
94
- .cm-drop-title {
95
- font-size: 0.9rem;
96
- font-weight: 700;
97
- color: var(--cm-text);
98
- margin: 0;
99
- }
100
-
101
- .cm-drop-sub {
102
- font-size: 0.75rem;
103
- color: var(--cm-text-muted);
104
- margin: 0;
105
- }
106
-
107
- .cm-drop-link {
108
- color: var(--cm-primary);
109
- font-weight: 600;
110
- cursor: pointer;
111
- }
112
-
113
- .cm-section-label {
114
- display: block;
115
- font-size: 0.65rem;
116
- font-weight: 700;
117
- text-transform: uppercase;
118
- letter-spacing: 0.08em;
119
- color: var(--cm-text-muted);
120
- }
121
-
122
- .cm-section-header {
123
- display: flex;
124
- justify-content: space-between;
125
- align-items: center;
126
- }
127
-
128
- .cm-badge {
129
- background: var(--cm-primary-light);
130
- color: var(--cm-primary);
131
- font-size: 0.65rem;
132
- font-weight: 700;
133
- padding: 0.15rem 0.45rem;
134
- border-radius: 9999px;
135
- }
136
-
137
- .cm-thumbs {
138
- display: grid;
139
- grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
140
- gap: 0.35rem;
141
- margin-top: 0.5rem;
142
- }
143
-
144
- .cm-thumb {
145
- position: relative;
146
- aspect-ratio: 1;
147
- border-radius: 0.4rem;
148
- overflow: hidden;
149
- border: 2px solid transparent;
150
- transition: border-color 0.15s;
151
- }
152
-
153
- .cm-thumb:hover {
154
- border-color: var(--cm-primary);
155
- }
156
-
157
- .cm-thumb img {
158
- width: 100%;
159
- height: 100%;
160
- object-fit: cover;
161
- display: block;
162
- }
163
-
164
- .cm-thumb-num {
165
- position: absolute;
166
- bottom: 2px;
167
- left: 3px;
168
- font-size: 0.55rem;
169
- font-weight: 800;
170
- color: var(--cm-bg);
171
- text-shadow: 0 1px 2px rgba(0,0,0,0.8);
172
- line-height: 1;
173
- }
174
-
175
- .cm-thumb-del {
176
- position: absolute;
177
- top: 2px;
178
- right: 2px;
179
- width: 16px;
180
- height: 16px;
181
- background: rgba(239,68,68,0.9);
182
- color: var(--cm-bg);
183
- border: none;
184
- border-radius: 50%;
185
- cursor: pointer;
186
- display: none;
187
- align-items: center;
188
- justify-content: center;
189
- padding: 0;
190
- transition: background 0.15s;
191
- }
192
-
193
- .cm-thumb:hover .cm-thumb-del {
194
- display: flex;
195
- }
196
-
197
- .cm-thumb-del:hover {
198
- background: #dc2626;
199
- }
200
-
201
- .cm-preview-col {
202
- padding: 1.25rem;
203
- display: flex;
204
- flex-direction: column;
205
- gap: 0.5rem;
206
- min-height: 260px;
207
- }
208
-
209
- .cm-preview-placeholder {
210
- flex: 1;
211
- background: var(--cm-bg-muted);
212
- border: 2px dashed var(--cm-border);
213
- border-radius: 0.75rem;
214
- display: flex;
215
- flex-direction: column;
216
- align-items: center;
217
- justify-content: center;
218
- gap: 0.5rem;
219
- color: var(--cm-text-muted);
220
- }
221
-
222
- .cm-preview-placeholder p {
223
- font-size: 0.8rem;
224
- margin: 0;
225
- }
226
-
227
- .cm-canvas {
228
- width: 100%;
229
- height: auto;
230
- border-radius: 0.75rem;
231
- border: 1px solid var(--cm-border);
232
- display: block;
233
- }
234
-
235
- .cm-dims-badge {
236
- font-size: 0.65rem;
237
- font-weight: 600;
238
- color: var(--cm-text-muted);
239
- background: var(--cm-bg-muted);
240
- border: 1px solid var(--cm-border);
241
- border-radius: 9999px;
242
- padding: 0.15rem 0.5rem;
243
- }
244
-
245
- .cm-section-divider {
246
- border-top: 1px solid var(--cm-border);
247
- padding: 1rem 1.25rem;
248
- display: flex;
249
- flex-direction: column;
250
- gap: 0.75rem;
251
- }
252
-
253
- .cm-layouts {
254
- display: grid;
255
- grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
256
- gap: 0.4rem;
257
- }
258
-
259
- .cm-layout-btn {
260
- display: flex;
261
- flex-direction: column;
262
- align-items: center;
263
- gap: 0.2rem;
264
- padding: 0.5rem 0.25rem;
265
- background: var(--cm-bg-muted);
266
- border: 2px solid var(--cm-border);
267
- border-radius: 0.625rem;
268
- cursor: pointer;
269
- transition: border-color 0.15s, background 0.15s, opacity 0.15s;
270
- color: var(--cm-text-muted);
271
- position: relative;
272
- }
273
-
274
- .cm-layout-btn span {
275
- font-size: 0.55rem;
276
- font-weight: 600;
277
- text-align: center;
278
- line-height: 1.2;
279
- }
280
-
281
- .cm-layout-btn:hover:not(:disabled) {
282
- border-color: var(--cm-primary);
283
- color: var(--cm-primary);
284
- background: var(--cm-primary-light);
285
- }
286
-
287
- .cm-layout-btn-active {
288
- border-color: var(--cm-primary);
289
- background: var(--cm-primary-light);
290
- color: var(--cm-primary);
291
- }
292
-
293
- .cm-layout-btn-disabled {
294
- opacity: 0.45;
295
- cursor: not-allowed;
296
- }
297
-
298
- .cm-layout-need {
299
- position: absolute;
300
- top: 2px;
301
- right: 4px;
302
- font-size: 0.55rem;
303
- font-weight: 800;
304
- color: var(--cm-text-muted);
305
- background: var(--cm-bg);
306
- border: 1px solid var(--cm-border);
307
- border-radius: 9999px;
308
- padding: 0 3px;
309
- line-height: 1.4;
310
- }
311
-
312
- .cm-settings-inline {
313
- display: flex;
314
- flex-wrap: wrap;
315
- align-items: flex-end;
316
- gap: 1rem;
317
- }
318
-
319
- .cm-setting {
320
- display: flex;
321
- flex-direction: column;
322
- gap: 0.3rem;
323
- }
324
-
325
- .cm-setting-label {
326
- font-size: 0.7rem;
327
- font-weight: 600;
328
- color: var(--cm-text-muted);
329
- }
330
-
331
- .cm-slider {
332
- accent-color: var(--cm-primary);
333
- width: 120px;
334
- }
335
-
336
- .cm-color-row {
337
- display: flex;
338
- align-items: center;
339
- gap: 0.5rem;
340
- }
341
-
342
- .cm-color-swatch {
343
- width: 32px;
344
- height: 32px;
345
- border: 2px solid var(--cm-border);
346
- border-radius: 0.4rem;
347
- cursor: pointer;
348
- padding: 2px;
349
- background: transparent;
350
- }
351
-
352
- .cm-color-code {
353
- font-size: 0.7rem;
354
- font-weight: 600;
355
- color: var(--cm-text-muted);
356
- font-variant-numeric: tabular-nums;
357
- }
358
-
359
- .cm-download-btn {
360
- display: flex;
361
- align-items: center;
362
- gap: 0.4rem;
363
- padding: 0.6rem 1.25rem;
364
- background: linear-gradient(135deg, var(--cm-primary), #8b5cf6);
365
- color: var(--cm-bg);
366
- border: none;
367
- border-radius: 0.625rem;
368
- font-size: 0.875rem;
369
- font-weight: 700;
370
- cursor: pointer;
371
- transition: opacity 0.2s, transform 0.1s;
372
- box-shadow: 0 4px 12px rgba(99,102,241,0.3);
373
- white-space: nowrap;
374
- margin-left: auto;
375
- }
376
-
377
- .cm-download-btn:disabled {
378
- opacity: 0.4;
379
- cursor: not-allowed;
380
- box-shadow: none;
381
- }
382
-
383
- .cm-download-btn:not(:disabled):hover {
384
- transform: translateY(-1px);
385
- box-shadow: 0 6px 18px rgba(99,102,241,0.4);
386
- }
@@ -1,289 +0,0 @@
1
- .ec-root {
2
- --ec-bg: #fff;
3
- --ec-bg-elevated: #f8fafc;
4
- --ec-border: #e2e8f0;
5
- --ec-text: #0f172a;
6
- --ec-text-muted: #64748b;
7
- --ec-accent: #6366f1;
8
- --ec-accent-alpha: rgba(99, 102, 241, 0.08);
9
- --ec-accent-alpha-hover: rgba(99, 102, 241, 0.02);
10
- --ec-shadow: rgba(0, 0, 0, 0.15);
11
-
12
- padding: 2.5rem 1.5rem;
13
- max-width: 1000px;
14
- margin: 0 auto;
15
- }
16
-
17
- .theme-dark .ec-root {
18
- --ec-bg: #18181b;
19
- --ec-bg-elevated: #27272a;
20
- --ec-border: #3f3f46;
21
- --ec-text: #f4f4f5;
22
- --ec-text-muted: #71717a;
23
- --ec-accent: #818cf8;
24
- --ec-accent-alpha: rgba(129, 140, 248, 0.12);
25
- --ec-accent-alpha-hover: rgba(129, 140, 248, 0.02);
26
- --ec-shadow: rgba(0, 0, 0, 0.3);
27
- }
28
-
29
- .ec-card {
30
- background: var(--ec-bg);
31
- border: 1px solid var(--ec-border);
32
- border-radius: 3rem;
33
- padding: 1.5rem;
34
- box-shadow: 0 45px 120px -30px var(--ec-shadow);
35
- position: relative;
36
- overflow: hidden;
37
- }
38
-
39
- .ec-drop {
40
- padding: 4rem 2rem;
41
- border: 3px dashed var(--ec-border);
42
- border-radius: 2.5rem;
43
- display: flex;
44
- flex-direction: column;
45
- align-items: center;
46
- text-align: center;
47
- cursor: pointer;
48
- gap: 1.5rem;
49
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
50
- }
51
-
52
- .ec-drop:hover,
53
- .ec-drop-active {
54
- border-color: var(--ec-accent);
55
- background: var(--ec-accent-alpha-hover);
56
- }
57
-
58
- .ec-drop-icon {
59
- width: 6rem;
60
- height: 6rem;
61
- background: var(--ec-accent-alpha);
62
- border-radius: 2rem;
63
- display: flex;
64
- align-items: center;
65
- justify-content: center;
66
- color: var(--ec-accent);
67
- }
68
-
69
- .ec-drop-icon svg {
70
- width: 3rem;
71
- height: 3rem;
72
- }
73
-
74
- .ec-title {
75
- font-size: 2.5rem;
76
- font-weight: 950;
77
- color: var(--ec-text);
78
- margin: 0;
79
- }
80
-
81
- .ec-subtitle {
82
- font-size: 1.15rem;
83
- color: var(--ec-text-muted);
84
- max-width: 500px;
85
- margin: 0;
86
- font-weight: 700;
87
- }
88
-
89
- .ec-badges {
90
- display: flex;
91
- gap: 1rem;
92
- flex-wrap: wrap;
93
- justify-content: center;
94
- }
95
-
96
- .ec-badge {
97
- padding: 0.6rem 1.25rem;
98
- background: var(--ec-bg-elevated);
99
- border-radius: 2rem;
100
- font-size: 0.8rem;
101
- font-weight: 800;
102
- color: var(--ec-text-muted);
103
- display: flex;
104
- align-items: center;
105
- gap: 0.5rem;
106
- }
107
-
108
- .ec-badge svg {
109
- width: 1rem;
110
- height: 1rem;
111
- flex-shrink: 0;
112
- }
113
-
114
- .ec-processing {
115
- padding: 5rem;
116
- display: flex;
117
- flex-direction: column;
118
- align-items: center;
119
- justify-content: center;
120
- gap: 1.5rem;
121
- }
122
-
123
- .ec-spinner {
124
- width: 4rem;
125
- height: 4rem;
126
- border: 4px solid var(--ec-accent-alpha);
127
- border-top-color: var(--ec-accent);
128
- border-radius: 50%;
129
- animation: ec-spin 0.8s linear infinite;
130
- }
131
-
132
- .ec-processing-text {
133
- font-weight: 800;
134
- color: var(--ec-text);
135
- margin: 0;
136
- }
137
-
138
- .ec-result {
139
- padding: 2.5rem;
140
- display: flex;
141
- flex-direction: column;
142
- animation: ec-slide-up 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
143
- }
144
-
145
- .ec-result-layout {
146
- display: grid;
147
- grid-template-columns: 1fr 1fr;
148
- gap: 3rem;
149
- }
150
-
151
- @media (max-width: 800px) {
152
- .ec-result-layout {
153
- grid-template-columns: 1fr;
154
- }
155
- }
156
-
157
- .ec-preview-col {
158
- display: flex;
159
- flex-direction: column;
160
- gap: 1.5rem;
161
- }
162
-
163
- .ec-preview-img {
164
- width: 100%;
165
- border-radius: 1.5rem;
166
- box-shadow: 0 20px 50px var(--ec-shadow);
167
- display: block;
168
- }
169
-
170
- .ec-metadata {
171
- background: var(--ec-bg-elevated);
172
- border: 1px solid var(--ec-border);
173
- border-radius: 1.25rem;
174
- padding: 1.5rem;
175
- min-height: 150px;
176
- display: flex;
177
- flex-direction: column;
178
- justify-content: center;
179
- }
180
-
181
- .ec-no-metadata {
182
- display: flex;
183
- align-items: center;
184
- justify-content: center;
185
- height: 100%;
186
- color: var(--ec-text-muted);
187
- text-align: center;
188
- }
189
-
190
- .ec-metadata-title {
191
- color: var(--ec-accent);
192
- font-weight: 700;
193
- margin-bottom: 1rem;
194
- font-size: 0.9rem;
195
- }
196
-
197
- .ec-metadata-list {
198
- list-style: none;
199
- padding: 0;
200
- margin: 0;
201
- display: flex;
202
- flex-direction: column;
203
- gap: 0.75rem;
204
- }
205
-
206
- .ec-metadata-list li {
207
- display: flex;
208
- justify-content: space-between;
209
- gap: 1rem;
210
- font-size: 0.85rem;
211
- font-weight: 600;
212
- color: var(--ec-text);
213
- }
214
-
215
- .ec-metadata-list li span:first-child {
216
- font-weight: 700;
217
- }
218
-
219
- .ec-metadata-list li span:last-child {
220
- color: var(--ec-text-muted);
221
- }
222
-
223
- .ec-actions-col {
224
- display: flex;
225
- flex-direction: column;
226
- gap: 1.5rem;
227
- }
228
-
229
- .ec-btn {
230
- padding: 1.25rem;
231
- border-radius: 1.5rem;
232
- font-weight: 950;
233
- font-size: 1.1rem;
234
- border: none;
235
- cursor: pointer;
236
- display: flex;
237
- align-items: center;
238
- justify-content: center;
239
- gap: 0.75rem;
240
- transition: all 0.2s;
241
- }
242
-
243
- .ec-btn svg {
244
- width: 1.25rem;
245
- height: 1.25rem;
246
- }
247
-
248
- .ec-btn-primary {
249
- background: var(--ec-accent);
250
- color: #fff;
251
- box-shadow: 0 15px 35px -10px var(--ec-accent);
252
- }
253
-
254
- .ec-btn-primary:hover {
255
- transform: translateY(-2px);
256
- box-shadow: 0 20px 45px -10px var(--ec-accent);
257
- }
258
-
259
- .ec-btn-secondary {
260
- background: var(--ec-bg-elevated);
261
- border: 1px solid var(--ec-border);
262
- color: var(--ec-text);
263
- }
264
-
265
- .ec-btn-secondary:hover {
266
- border-color: var(--ec-accent);
267
- color: var(--ec-accent);
268
- }
269
-
270
- .ec-hidden {
271
- display: none;
272
- }
273
-
274
- @keyframes ec-spin {
275
- to {
276
- transform: rotate(360deg);
277
- }
278
- }
279
-
280
- @keyframes ec-slide-up {
281
- from {
282
- opacity: 0;
283
- transform: translateY(30px);
284
- }
285
- to {
286
- opacity: 1;
287
- transform: translateY(0);
288
- }
289
- }