@jjlmoya/utils-social 1.8.0 → 1.10.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 (32) hide show
  1. package/package.json +7 -4
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/entries.ts +23 -0
  4. package/src/tool/redditFormatter/component.astro +0 -128
  5. package/src/tool/redditFormatter/entry.ts +30 -0
  6. package/src/tool/redditFormatter/index.ts +2 -32
  7. package/src/tool/redditFormatter/reddit-text-formatter.css +126 -0
  8. package/src/tool/safeZones/component.astro +0 -514
  9. package/src/tool/safeZones/entry.ts +30 -0
  10. package/src/tool/safeZones/index.ts +2 -32
  11. package/src/tool/safeZones/social-safe-zones.css +512 -0
  12. package/src/tool/socialImageResizer/component.astro +0 -315
  13. package/src/tool/socialImageResizer/entry.ts +30 -0
  14. package/src/tool/socialImageResizer/index.ts +2 -32
  15. package/src/tool/socialImageResizer/social-media-image-resizer.css +313 -0
  16. package/src/tool/socialValueCalculator/component.astro +0 -526
  17. package/src/tool/socialValueCalculator/entry.ts +30 -0
  18. package/src/tool/socialValueCalculator/index.ts +2 -32
  19. package/src/tool/socialValueCalculator/social-account-value-calculator.css +524 -0
  20. package/src/tool/tinderPhotoOptimizer/component.astro +0 -900
  21. package/src/tool/tinderPhotoOptimizer/entry.ts +30 -0
  22. package/src/tool/tinderPhotoOptimizer/index.ts +2 -32
  23. package/src/tool/tinderPhotoOptimizer/tinder-photo-optimizer.css +898 -0
  24. package/src/tool/youtubeThumbnail/component.astro +0 -267
  25. package/src/tool/youtubeThumbnail/entry.ts +30 -0
  26. package/src/tool/youtubeThumbnail/index.ts +2 -32
  27. package/src/tool/youtubeThumbnail/youtube-thumbnail-extractor.css +265 -0
  28. package/src/tool/youtubeThumbnailPreviewer/component.astro +0 -558
  29. package/src/tool/youtubeThumbnailPreviewer/entry.ts +46 -0
  30. package/src/tool/youtubeThumbnailPreviewer/index.ts +2 -48
  31. package/src/tool/youtubeThumbnailPreviewer/youtube-thumbnail-previewer.css +273 -0
  32. package/src/tools.ts +1 -1
@@ -181,318 +181,3 @@ const icons: Record<string, string> = {
181
181
  init();
182
182
  </script>
183
183
 
184
- <style>
185
- .sri-container {
186
- --bg: #fff;
187
- --bg-sidebar: #f8fafc;
188
- --bg-main: #fff;
189
- --bg-upload: #f8fafc;
190
- --bg-upload-icon: #fff;
191
- --bg-canvas: #f1f5f9;
192
- --bg-btn: #fff;
193
- --bg-btn-hover: #f8fafc;
194
- --bg-zoom: #fff;
195
- --bg-preset-icon: #f1f5f9;
196
- --bg-preset-hover: #f5f3ff;
197
- --border: #e2e8f0;
198
- --text: #1e293b;
199
- --text-sidebar-title: #64748b;
200
- --text-upload-sub: #64748b;
201
- --text-zoom: #64748b;
202
- --text-action: #475569;
203
- --text-preset-name: #1e293b;
204
- --text-preset-size: #64748b;
205
-
206
- width: 100%;
207
- max-width: 1200px;
208
- margin: 0 auto;
209
- background: var(--bg);
210
- border-radius: 32px;
211
- box-shadow: 0 30px 60px rgba(0, 0, 0, 0.08);
212
- display: grid;
213
- grid-template-columns: 320px 1fr;
214
- overflow: hidden;
215
- color: var(--text);
216
- border: 1px solid var(--border);
217
- min-height: 700px;
218
- }
219
-
220
- .sri-sidebar {
221
- background: var(--bg-sidebar);
222
- border-right: 1px solid var(--border);
223
- padding: 2rem;
224
- display: flex;
225
- flex-direction: column;
226
- gap: 2rem;
227
- overflow-y: auto;
228
- }
229
-
230
- .sri-sidebar-title {
231
- font-size: 0.85rem;
232
- font-weight: 800;
233
- text-transform: uppercase;
234
- letter-spacing: 0.1em;
235
- color: var(--text-sidebar-title);
236
- margin-bottom: 1.25rem;
237
- display: flex;
238
- align-items: center;
239
- gap: 0.5rem;
240
- }
241
-
242
- .sri-preset-grid {
243
- display: flex;
244
- flex-direction: column;
245
- gap: 0.75rem;
246
- }
247
-
248
- .sri-preset-btn {
249
- width: 100%;
250
- padding: 1rem;
251
- background: var(--bg-btn);
252
- border: 1px solid var(--border);
253
- border-radius: 16px;
254
- display: flex;
255
- align-items: center;
256
- gap: 1rem;
257
- cursor: pointer;
258
- transition: all 0.2s ease;
259
- text-align: left;
260
- }
261
-
262
- .sri-preset-btn:hover {
263
- border-color: #8b5cf6;
264
- background: var(--bg-preset-hover);
265
- transform: translateX(4px);
266
- }
267
-
268
- .sri-preset-btn.active {
269
- background: #8b5cf6;
270
- border-color: #7c3aed;
271
- color: #fff;
272
- box-shadow: 0 10px 20px rgba(139, 92, 246, 0.2);
273
- }
274
-
275
- .sri-preset-icon {
276
- width: 40px;
277
- height: 40px;
278
- background: var(--bg-preset-icon);
279
- border-radius: 10px;
280
- display: flex;
281
- align-items: center;
282
- justify-content: center;
283
- color: var(--text-sidebar-title);
284
- flex-shrink: 0;
285
- transition: all 0.2s ease;
286
- }
287
-
288
- .sri-preset-btn.active .sri-preset-icon {
289
- background: rgba(255, 255, 255, 0.2);
290
- color: #fff;
291
- }
292
-
293
- .sri-preset-info {
294
- display: flex;
295
- flex-direction: column;
296
- }
297
-
298
- .sri-preset-name {
299
- font-size: 0.95rem;
300
- font-weight: 700;
301
- color: var(--text-preset-name);
302
- }
303
-
304
- .sri-preset-size {
305
- font-size: 0.75rem;
306
- color: var(--text-preset-size);
307
- }
308
-
309
- .sri-main {
310
- background: var(--bg-main);
311
- padding: 3rem;
312
- display: flex;
313
- flex-direction: column;
314
- gap: 2rem;
315
- position: relative;
316
- }
317
-
318
- .sri-upload-zone {
319
- flex: 1;
320
- border: 3px dashed var(--border);
321
- border-radius: 24px;
322
- display: flex;
323
- flex-direction: column;
324
- align-items: center;
325
- justify-content: center;
326
- gap: 1.5rem;
327
- cursor: pointer;
328
- transition: all 0.3s ease;
329
- background: var(--bg-upload);
330
- min-height: 400px;
331
- }
332
-
333
- .sri-upload-zone:hover,
334
- .sri-upload-zone.sri-hover {
335
- border-color: #8b5cf6;
336
- background: var(--bg-preset-hover);
337
- }
338
-
339
- .sri-upload-icon {
340
- width: 80px;
341
- height: 80px;
342
- background: var(--bg-upload-icon);
343
- border-radius: 50%;
344
- display: flex;
345
- align-items: center;
346
- justify-content: center;
347
- color: #8b5cf6;
348
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
349
- }
350
-
351
- .sri-upload-text {
352
- text-align: center;
353
- }
354
-
355
- .sri-upload-text h2 {
356
- font-size: 1.5rem;
357
- font-weight: 900;
358
- margin-bottom: 0.5rem;
359
- }
360
-
361
- .sri-upload-text p {
362
- color: var(--text-upload-sub);
363
- font-size: 0.95rem;
364
- }
365
-
366
- .sri-editor-view {
367
- display: none;
368
- flex-direction: column;
369
- gap: 2rem;
370
- height: 100%;
371
- }
372
-
373
- .sri-editor-view.active {
374
- display: flex;
375
- }
376
-
377
- .sri-canvas-container {
378
- flex: 1;
379
- background: var(--bg-canvas);
380
- border-radius: 24px;
381
- overflow: hidden;
382
- display: flex;
383
- align-items: center;
384
- justify-content: center;
385
- min-height: 400px;
386
- border: 1px solid var(--border);
387
- }
388
-
389
- .sri-canvas-container canvas {
390
- max-width: 100%;
391
- max-height: 100%;
392
- box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
393
- }
394
-
395
- .sri-editor-actions {
396
- display: flex;
397
- justify-content: space-between;
398
- align-items: center;
399
- padding-top: 1rem;
400
- border-top: 1px solid var(--border);
401
- }
402
-
403
- .sri-btn-group {
404
- display: flex;
405
- gap: 1rem;
406
- }
407
-
408
- .sri-action-btn {
409
- padding: 0.75rem 1.5rem;
410
- border-radius: 12px;
411
- font-weight: 700;
412
- display: flex;
413
- align-items: center;
414
- gap: 0.5rem;
415
- cursor: pointer;
416
- transition: all 0.2s ease;
417
- border: 1px solid var(--border);
418
- background: var(--bg-btn);
419
- color: var(--text-action);
420
- font-size: 0.9rem;
421
- }
422
-
423
- .sri-action-btn:hover {
424
- background: var(--bg-btn-hover);
425
- border-color: var(--border);
426
- }
427
-
428
- .sri-action-btn.sri-primary {
429
- background: #8b5cf6;
430
- border-color: #7c3aed;
431
- color: #fff;
432
- }
433
-
434
- .sri-action-btn.sri-primary:hover {
435
- background: #7c3aed;
436
- box-shadow: 0 10px 20px rgba(139, 92, 246, 0.2);
437
- }
438
-
439
- .sri-zoom-control {
440
- display: flex;
441
- align-items: center;
442
- gap: 1rem;
443
- background: var(--bg-zoom);
444
- padding: 0.5rem 1rem;
445
- border-radius: 100px;
446
- border: 1px solid var(--border);
447
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
448
- color: var(--text-zoom);
449
- }
450
-
451
- .sri-zoom-control input[type='range'] {
452
- width: 150px;
453
- accent-color: #8b5cf6;
454
- }
455
-
456
- :global(.theme-dark) .sri-container {
457
- --bg: #1e1e21;
458
- --bg-sidebar: #161618;
459
- --bg-main: #1e1e21;
460
- --bg-upload: #161618;
461
- --bg-upload-icon: #1e1e21;
462
- --bg-canvas: #111113;
463
- --bg-btn: #1e1e21;
464
- --bg-btn-hover: #2d2d30;
465
- --bg-zoom: #1e1e21;
466
- --bg-preset-icon: #161618;
467
- --bg-preset-hover: #232326;
468
- --border: #2d2d30;
469
- --text: #f1f5f9;
470
- --text-sidebar-title: #94a3b8;
471
- --text-upload-sub: #94a3b8;
472
- --text-zoom: #94a3b8;
473
- --text-action: #f1f5f9;
474
- --text-preset-name: #f1f5f9;
475
- --text-preset-size: #94a3b8;
476
- }
477
-
478
- @media (max-width: 900px) {
479
- .sri-container {
480
- grid-template-columns: 1fr;
481
- }
482
-
483
- .sri-sidebar {
484
- border-right: none;
485
- border-bottom: 1px solid var(--border);
486
- }
487
-
488
- .sri-editor-actions {
489
- flex-direction: column;
490
- gap: 1rem;
491
- align-items: stretch;
492
- }
493
-
494
- .sri-btn-group {
495
- justify-content: center;
496
- }
497
- }
498
- </style>
@@ -0,0 +1,30 @@
1
+ import type { SocialToolEntry, ToolLocaleContent } from '../../types';
2
+
3
+
4
+ import type { SocialImageResizerUI } from './ui';
5
+ export type SocialImageResizerLocaleContent = ToolLocaleContent<SocialImageResizerUI>;
6
+
7
+ export const socialImageResizer: SocialToolEntry<SocialImageResizerUI> = {
8
+ id: 'social-image-resizer',
9
+ icons: {
10
+ bg: 'mdi:image-edit-outline',
11
+ fg: 'mdi:crop',
12
+ },
13
+ i18n: {
14
+ es: () => import('./i18n/es').then((m) => m.content),
15
+ en: () => import('./i18n/en').then((m) => m.content),
16
+ fr: () => import('./i18n/fr').then((m) => m.content),
17
+ de: () => import('./i18n/de').then((m) => m.content),
18
+ id: () => import('./i18n/id').then((m) => m.content),
19
+ it: () => import('./i18n/it').then((m) => m.content),
20
+ ja: () => import('./i18n/ja').then((m) => m.content),
21
+ ko: () => import('./i18n/ko').then((m) => m.content),
22
+ nl: () => import('./i18n/nl').then((m) => m.content),
23
+ pl: () => import('./i18n/pl').then((m) => m.content),
24
+ pt: () => import('./i18n/pt').then((m) => m.content),
25
+ ru: () => import('./i18n/ru').then((m) => m.content),
26
+ sv: () => import('./i18n/sv').then((m) => m.content),
27
+ tr: () => import('./i18n/tr').then((m) => m.content),
28
+ zh: () => import('./i18n/zh').then((m) => m.content),
29
+ },
30
+ };
@@ -1,35 +1,5 @@
1
- import type { SocialToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
-
3
-
4
- import type { SocialImageResizerUI } from './ui';
5
- export type SocialImageResizerLocaleContent = ToolLocaleContent<SocialImageResizerUI>;
6
-
7
- export const socialImageResizer: SocialToolEntry<SocialImageResizerUI> = {
8
- id: 'social-image-resizer',
9
- icons: {
10
- bg: 'mdi:image-edit-outline',
11
- fg: 'mdi:crop',
12
- },
13
- i18n: {
14
- es: () => import('./i18n/es').then((m) => m.content),
15
- en: () => import('./i18n/en').then((m) => m.content),
16
- fr: () => import('./i18n/fr').then((m) => m.content),
17
- de: () => import('./i18n/de').then((m) => m.content),
18
- id: () => import('./i18n/id').then((m) => m.content),
19
- it: () => import('./i18n/it').then((m) => m.content),
20
- ja: () => import('./i18n/ja').then((m) => m.content),
21
- ko: () => import('./i18n/ko').then((m) => m.content),
22
- nl: () => import('./i18n/nl').then((m) => m.content),
23
- pl: () => import('./i18n/pl').then((m) => m.content),
24
- pt: () => import('./i18n/pt').then((m) => m.content),
25
- ru: () => import('./i18n/ru').then((m) => m.content),
26
- sv: () => import('./i18n/sv').then((m) => m.content),
27
- tr: () => import('./i18n/tr').then((m) => m.content),
28
- zh: () => import('./i18n/zh').then((m) => m.content),
29
- },
30
- };
31
-
32
-
1
+ import { socialImageResizer } from './entry';
2
+ export * from './entry';
33
3
  export const SOCIAL_IMAGE_RESIZER_TOOL: ToolDefinition = {
34
4
  entry: socialImageResizer,
35
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,313 @@
1
+ .sri-container {
2
+ --bg: #fff;
3
+ --bg-sidebar: #f8fafc;
4
+ --bg-main: #fff;
5
+ --bg-upload: #f8fafc;
6
+ --bg-upload-icon: #fff;
7
+ --bg-canvas: #f1f5f9;
8
+ --bg-btn: #fff;
9
+ --bg-btn-hover: #f8fafc;
10
+ --bg-zoom: #fff;
11
+ --bg-preset-icon: #f1f5f9;
12
+ --bg-preset-hover: #f5f3ff;
13
+ --border: #e2e8f0;
14
+ --text: #1e293b;
15
+ --text-sidebar-title: #64748b;
16
+ --text-upload-sub: #64748b;
17
+ --text-zoom: #64748b;
18
+ --text-action: #475569;
19
+ --text-preset-name: #1e293b;
20
+ --text-preset-size: #64748b;
21
+
22
+ width: 100%;
23
+ max-width: 1200px;
24
+ margin: 0 auto;
25
+ background: var(--bg);
26
+ border-radius: 32px;
27
+ box-shadow: 0 30px 60px rgba(0, 0, 0, 0.08);
28
+ display: grid;
29
+ grid-template-columns: 320px 1fr;
30
+ overflow: hidden;
31
+ color: var(--text);
32
+ border: 1px solid var(--border);
33
+ min-height: 700px;
34
+ }
35
+
36
+ .sri-sidebar {
37
+ background: var(--bg-sidebar);
38
+ border-right: 1px solid var(--border);
39
+ padding: 2rem;
40
+ display: flex;
41
+ flex-direction: column;
42
+ gap: 2rem;
43
+ overflow-y: auto;
44
+ }
45
+
46
+ .sri-sidebar-title {
47
+ font-size: 0.85rem;
48
+ font-weight: 800;
49
+ text-transform: uppercase;
50
+ letter-spacing: 0.1em;
51
+ color: var(--text-sidebar-title);
52
+ margin-bottom: 1.25rem;
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 0.5rem;
56
+ }
57
+
58
+ .sri-preset-grid {
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: 0.75rem;
62
+ }
63
+
64
+ .sri-preset-btn {
65
+ width: 100%;
66
+ padding: 1rem;
67
+ background: var(--bg-btn);
68
+ border: 1px solid var(--border);
69
+ border-radius: 16px;
70
+ display: flex;
71
+ align-items: center;
72
+ gap: 1rem;
73
+ cursor: pointer;
74
+ transition: all 0.2s ease;
75
+ text-align: left;
76
+ }
77
+
78
+ .sri-preset-btn:hover {
79
+ border-color: #8b5cf6;
80
+ background: var(--bg-preset-hover);
81
+ transform: translateX(4px);
82
+ }
83
+
84
+ .sri-preset-btn.active {
85
+ background: #8b5cf6;
86
+ border-color: #7c3aed;
87
+ color: #fff;
88
+ box-shadow: 0 10px 20px rgba(139, 92, 246, 0.2);
89
+ }
90
+
91
+ .sri-preset-icon {
92
+ width: 40px;
93
+ height: 40px;
94
+ background: var(--bg-preset-icon);
95
+ border-radius: 10px;
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ color: var(--text-sidebar-title);
100
+ flex-shrink: 0;
101
+ transition: all 0.2s ease;
102
+ }
103
+
104
+ .sri-preset-btn.active .sri-preset-icon {
105
+ background: rgba(255, 255, 255, 0.2);
106
+ color: #fff;
107
+ }
108
+
109
+ .sri-preset-info {
110
+ display: flex;
111
+ flex-direction: column;
112
+ }
113
+
114
+ .sri-preset-name {
115
+ font-size: 0.95rem;
116
+ font-weight: 700;
117
+ color: var(--text-preset-name);
118
+ }
119
+
120
+ .sri-preset-size {
121
+ font-size: 0.75rem;
122
+ color: var(--text-preset-size);
123
+ }
124
+
125
+ .sri-main {
126
+ background: var(--bg-main);
127
+ padding: 3rem;
128
+ display: flex;
129
+ flex-direction: column;
130
+ gap: 2rem;
131
+ position: relative;
132
+ }
133
+
134
+ .sri-upload-zone {
135
+ flex: 1;
136
+ border: 3px dashed var(--border);
137
+ border-radius: 24px;
138
+ display: flex;
139
+ flex-direction: column;
140
+ align-items: center;
141
+ justify-content: center;
142
+ gap: 1.5rem;
143
+ cursor: pointer;
144
+ transition: all 0.3s ease;
145
+ background: var(--bg-upload);
146
+ min-height: 400px;
147
+ }
148
+
149
+ .sri-upload-zone:hover,
150
+ .sri-upload-zone.sri-hover {
151
+ border-color: #8b5cf6;
152
+ background: var(--bg-preset-hover);
153
+ }
154
+
155
+ .sri-upload-icon {
156
+ width: 80px;
157
+ height: 80px;
158
+ background: var(--bg-upload-icon);
159
+ border-radius: 50%;
160
+ display: flex;
161
+ align-items: center;
162
+ justify-content: center;
163
+ color: #8b5cf6;
164
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
165
+ }
166
+
167
+ .sri-upload-text {
168
+ text-align: center;
169
+ }
170
+
171
+ .sri-upload-text h2 {
172
+ font-size: 1.5rem;
173
+ font-weight: 900;
174
+ margin-bottom: 0.5rem;
175
+ }
176
+
177
+ .sri-upload-text p {
178
+ color: var(--text-upload-sub);
179
+ font-size: 0.95rem;
180
+ }
181
+
182
+ .sri-editor-view {
183
+ display: none;
184
+ flex-direction: column;
185
+ gap: 2rem;
186
+ height: 100%;
187
+ }
188
+
189
+ .sri-editor-view.active {
190
+ display: flex;
191
+ }
192
+
193
+ .sri-canvas-container {
194
+ flex: 1;
195
+ background: var(--bg-canvas);
196
+ border-radius: 24px;
197
+ overflow: hidden;
198
+ display: flex;
199
+ align-items: center;
200
+ justify-content: center;
201
+ min-height: 400px;
202
+ border: 1px solid var(--border);
203
+ }
204
+
205
+ .sri-canvas-container canvas {
206
+ max-width: 100%;
207
+ max-height: 100%;
208
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
209
+ }
210
+
211
+ .sri-editor-actions {
212
+ display: flex;
213
+ justify-content: space-between;
214
+ align-items: center;
215
+ padding-top: 1rem;
216
+ border-top: 1px solid var(--border);
217
+ }
218
+
219
+ .sri-btn-group {
220
+ display: flex;
221
+ gap: 1rem;
222
+ }
223
+
224
+ .sri-action-btn {
225
+ padding: 0.75rem 1.5rem;
226
+ border-radius: 12px;
227
+ font-weight: 700;
228
+ display: flex;
229
+ align-items: center;
230
+ gap: 0.5rem;
231
+ cursor: pointer;
232
+ transition: all 0.2s ease;
233
+ border: 1px solid var(--border);
234
+ background: var(--bg-btn);
235
+ color: var(--text-action);
236
+ font-size: 0.9rem;
237
+ }
238
+
239
+ .sri-action-btn:hover {
240
+ background: var(--bg-btn-hover);
241
+ border-color: var(--border);
242
+ }
243
+
244
+ .sri-action-btn.sri-primary {
245
+ background: #8b5cf6;
246
+ border-color: #7c3aed;
247
+ color: #fff;
248
+ }
249
+
250
+ .sri-action-btn.sri-primary:hover {
251
+ background: #7c3aed;
252
+ box-shadow: 0 10px 20px rgba(139, 92, 246, 0.2);
253
+ }
254
+
255
+ .sri-zoom-control {
256
+ display: flex;
257
+ align-items: center;
258
+ gap: 1rem;
259
+ background: var(--bg-zoom);
260
+ padding: 0.5rem 1rem;
261
+ border-radius: 100px;
262
+ border: 1px solid var(--border);
263
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
264
+ color: var(--text-zoom);
265
+ }
266
+
267
+ .sri-zoom-control input[type='range'] {
268
+ width: 150px;
269
+ accent-color: #8b5cf6;
270
+ }
271
+
272
+ :global(.theme-dark) .sri-container {
273
+ --bg: #1e1e21;
274
+ --bg-sidebar: #161618;
275
+ --bg-main: #1e1e21;
276
+ --bg-upload: #161618;
277
+ --bg-upload-icon: #1e1e21;
278
+ --bg-canvas: #111113;
279
+ --bg-btn: #1e1e21;
280
+ --bg-btn-hover: #2d2d30;
281
+ --bg-zoom: #1e1e21;
282
+ --bg-preset-icon: #161618;
283
+ --bg-preset-hover: #232326;
284
+ --border: #2d2d30;
285
+ --text: #f1f5f9;
286
+ --text-sidebar-title: #94a3b8;
287
+ --text-upload-sub: #94a3b8;
288
+ --text-zoom: #94a3b8;
289
+ --text-action: #f1f5f9;
290
+ --text-preset-name: #f1f5f9;
291
+ --text-preset-size: #94a3b8;
292
+ }
293
+
294
+ @media (max-width: 900px) {
295
+ .sri-container {
296
+ grid-template-columns: 1fr;
297
+ }
298
+
299
+ .sri-sidebar {
300
+ border-right: none;
301
+ border-bottom: 1px solid var(--border);
302
+ }
303
+
304
+ .sri-editor-actions {
305
+ flex-direction: column;
306
+ gap: 1rem;
307
+ align-items: stretch;
308
+ }
309
+
310
+ .sri-btn-group {
311
+ justify-content: center;
312
+ }
313
+ }