senangwebs-photobooth 1.0.1

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.
@@ -0,0 +1,447 @@
1
+ /**
2
+ * SenangWebs Photobooth (SWP) - Styles
3
+ * @version 1.0.0
4
+ */
5
+
6
+ /* Font Awesome */
7
+ @import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css');
8
+
9
+ /* Container */
10
+ .swp-container {
11
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
12
+ max-width: 1200px;
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ .swp-wrapper {
17
+ background: #ffffff;
18
+ overflow: hidden;
19
+ height: 100%;
20
+ display: flex;
21
+ flex-direction: column;
22
+ }
23
+
24
+ /* Toolbar */
25
+ .swp-toolbar {
26
+ display: flex;
27
+ gap: 8px;
28
+ padding: 8px;
29
+ background: #f8f9fa;
30
+ flex-wrap: wrap;
31
+ justify-content: space-between;
32
+ }
33
+
34
+ .swp-toolbar-group {
35
+ display: flex;
36
+ gap: 0px;
37
+ align-items: center;
38
+ border: 1px solid #dee2e6;
39
+ border-radius: 8px;
40
+ overflow: hidden;
41
+ }
42
+
43
+ .swp-toolbar-group .swp-btn {
44
+ display: flex;
45
+ flex-direction: column;
46
+ gap: 0px;
47
+ height: 48px;
48
+ width: 80px;
49
+ min-width: 48px;
50
+ align-items: center;
51
+ justify-content: center;
52
+ border-radius: 0px;
53
+ border: none;
54
+ padding: 0px;
55
+ }
56
+
57
+ .swp-toolbar-group .swp-btn span {
58
+ font-size: 12px;
59
+ }
60
+
61
+ .swp-btn {
62
+ display: flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ gap: 8px;
66
+ padding: 0px 12px;
67
+ border: 1px solid #dee2e6;
68
+ background: #ffffff;
69
+ border-radius: 6px;
70
+ cursor: pointer;
71
+ font-size: 14px;
72
+ color: #495057;
73
+ transition: all 0.2s ease;
74
+ font-family: inherit;
75
+ height: 40px;
76
+ }
77
+
78
+ .swp-btn:hover {
79
+ background: #e9ecef;
80
+ border-color: #adb5bd;
81
+ }
82
+
83
+ .swp-btn:active {
84
+ transform: scale(0.98);
85
+ }
86
+
87
+ .swp-btn-primary {
88
+ background: #007bff;
89
+ color: white;
90
+ border-color: #007bff;
91
+ }
92
+
93
+ .swp-btn-primary:hover {
94
+ background: #0056b3;
95
+ border-color: #0056b3;
96
+ }
97
+
98
+ .swp-btn-icon-only {
99
+ padding: 0px 12px;
100
+ justify-content: center;
101
+ align-items: center;
102
+ aspect-ratio: 1 / 1;
103
+ max-width: 40px;
104
+ }
105
+
106
+ .swp-icon {
107
+ font-size: 18px;
108
+ }
109
+
110
+ .swp-layout-container {
111
+ display: flex;
112
+ flex-grow: 1;
113
+ }
114
+
115
+ .swp-control-container {
116
+ min-width: 348px;
117
+ background: #f8f9fa;
118
+ padding: 8px 16px;
119
+ }
120
+
121
+ .swp-control-container.hidden {
122
+ display: block;
123
+ }
124
+
125
+ /* Canvas Container */
126
+ .swp-canvas-container {
127
+ position: relative;
128
+ display: flex;
129
+ align-items: center;
130
+ justify-content: center;
131
+ min-height: 400px;
132
+ padding: 8px;
133
+ border-top: 1px solid #dee2e6;
134
+ border-right: 1px solid #dee2e6;
135
+ border-top-right-radius: 8px;
136
+ flex-grow: 1;
137
+ min-width: 452px;;
138
+ }
139
+
140
+ .swp-canvas {
141
+ max-width: 100%;
142
+ height: auto;
143
+ background: white;
144
+ }
145
+
146
+ /* Adjustments Panel */
147
+ .swp-adjustments-panel,
148
+ .swp-filters-panel,
149
+ .swp-resize-panel {
150
+ display: none;
151
+ }
152
+
153
+ .swp-adjustments-panel.active,
154
+ .swp-filters-panel.active,
155
+ .swp-resize-panel.active {
156
+ display: block;
157
+ }
158
+
159
+ .swp-adjustments-panel h3,
160
+ .swp-filters-panel h3,
161
+ .swp-resize-panel h3 {
162
+ margin: 0 0 15px 0;
163
+ font-size: 16px;
164
+ font-weight: 600;
165
+ color: #212529;
166
+ }
167
+
168
+ .swp-adjustment {
169
+ display: flex;
170
+ align-items: center;
171
+ gap: 12px;
172
+ margin-bottom: 15px;
173
+ width: 100%;
174
+ }
175
+
176
+ .swp-adjustment label {
177
+ min-width: 100px;
178
+ font-size: 14px;
179
+ color: #495057;
180
+ font-weight: 500;
181
+ }
182
+
183
+ .swp-adjustment input[type="range"] {
184
+ flex: 1;
185
+ flex-shrink: 1;
186
+ height: 6px;
187
+ border-radius: 3px;
188
+ background: #e9ecef;
189
+ outline: none;
190
+ -webkit-appearance: none;
191
+ }
192
+
193
+ .swp-adjustment input[type="range"]::-webkit-slider-thumb {
194
+ -webkit-appearance: none;
195
+ appearance: none;
196
+ width: 18px;
197
+ height: 18px;
198
+ border-radius: 50%;
199
+ background: #007bff;
200
+ cursor: pointer;
201
+ transition: all 0.2s ease;
202
+ }
203
+
204
+ .swp-adjustment input[type="range"]::-webkit-slider-thumb:hover {
205
+ background: #0056b3;
206
+ transform: scale(1.1);
207
+ }
208
+
209
+ .swp-adjustment input[type="range"]::-moz-range-thumb {
210
+ width: 18px;
211
+ height: 18px;
212
+ border-radius: 50%;
213
+ background: #007bff;
214
+ cursor: pointer;
215
+ border: none;
216
+ transition: all 0.2s ease;
217
+ }
218
+
219
+ .swp-adjustment input[type="range"]::-moz-range-thumb:hover {
220
+ background: #0056b3;
221
+ transform: scale(1.1);
222
+ }
223
+
224
+ .swp-value {
225
+ text-align: right;
226
+ font-size: 14px;
227
+ color: #6c757d;
228
+ font-weight: 500;
229
+ }
230
+
231
+ /* Resize Panel */
232
+ .swp-resize-controls {
233
+ display: flex;
234
+ flex-direction: column;
235
+ gap: 15px;
236
+ }
237
+
238
+ .swp-resize-controls .swp-adjustment {
239
+ display: flex;
240
+ align-items: center;
241
+ gap: 10px;
242
+ }
243
+
244
+ .swp-resize-controls input[type="number"] {
245
+ flex: 1;
246
+ padding: 8px 12px;
247
+ border: 1px solid #dee2e6;
248
+ border-radius: 6px;
249
+ font-size: 14px;
250
+ color: #495057;
251
+ }
252
+
253
+ .swp-resize-controls input[type="number"]:focus {
254
+ outline: none;
255
+ border-color: #007bff;
256
+ }
257
+
258
+ .swp-resize-controls input[type="checkbox"] {
259
+ width: 18px;
260
+ height: 18px;
261
+ cursor: pointer;
262
+ }
263
+
264
+ .swp-resize-controls label {
265
+ display: flex;
266
+ align-items: center;
267
+ gap: 8px;
268
+ cursor: pointer;
269
+ font-size: 14px;
270
+ color: #495057;
271
+ }
272
+
273
+ .swp-resize-controls button {
274
+ margin-top: 10px;
275
+ }
276
+
277
+
278
+ /* Filters Panel */
279
+ .swp-filters-grid {
280
+ display: grid;
281
+ grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
282
+ gap: 15px;
283
+ }
284
+
285
+ .swp-filter-btn {
286
+ display: flex;
287
+ flex-direction: column;
288
+ align-items: center;
289
+ gap: 8px;
290
+ padding: 12px;
291
+ border: 2px solid #dee2e6;
292
+ background: #ffffff;
293
+ border-radius: 8px;
294
+ cursor: pointer;
295
+ font-size: 13px;
296
+ color: #495057;
297
+ transition: all 0.2s ease;
298
+ font-family: inherit;
299
+ }
300
+
301
+ .swp-filter-btn:hover {
302
+ border-color: #007bff;
303
+ background: #f8f9fa;
304
+ }
305
+
306
+ .swp-filter-btn.active {
307
+ border-color: #007bff;
308
+ background: #e7f3ff;
309
+ color: #007bff;
310
+ font-weight: 600;
311
+ }
312
+
313
+ .swp-filter-preview {
314
+ width: 60px;
315
+ height: 60px;
316
+ border-radius: 6px;
317
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
318
+ display: block;
319
+ }
320
+
321
+ .swp-filter-preview[data-filter="grayscale"] {
322
+ filter: grayscale(100%);
323
+ }
324
+
325
+ .swp-filter-preview[data-filter="sepia"] {
326
+ filter: sepia(100%);
327
+ }
328
+
329
+ .swp-filter-preview[data-filter="invert"] {
330
+ filter: invert(100%);
331
+ }
332
+
333
+ .swp-filter-preview[data-filter="blur"] {
334
+ filter: blur(3px);
335
+ }
336
+
337
+ .swp-filter-preview[data-filter="none"] {
338
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
339
+ }
340
+
341
+ /* Responsive Design */
342
+ @media (max-width: 768px) {
343
+ .swp-toolbar {
344
+ padding: 10px;
345
+ gap: 5px;
346
+ }
347
+
348
+ .swp-toolbar-group {
349
+ gap: 5px;
350
+ }
351
+
352
+ .swp-btn {
353
+ padding: 6px 12px;
354
+ font-size: 12px;
355
+ }
356
+
357
+ .swp-btn span:not(.swp-icon) {
358
+ display: none;
359
+ }
360
+
361
+ .swp-canvas-container {
362
+ min-height: 300px;
363
+ padding: 10px;
364
+ }
365
+
366
+ .swp-adjustments-panel,
367
+ .swp-filters-panel {
368
+ padding: 15px;
369
+ }
370
+
371
+ .swp-adjustment {
372
+ flex-wrap: wrap;
373
+ }
374
+
375
+ .swp-adjustment label {
376
+ min-width: 100%;
377
+ }
378
+
379
+ .swp-filters-grid {
380
+ grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
381
+ gap: 10px;
382
+ }
383
+
384
+ .swp-filter-preview {
385
+ width: 50px;
386
+ height: 50px;
387
+ }
388
+ }
389
+
390
+ /* Loading State */
391
+ .swp-loading {
392
+ position: absolute;
393
+ top: 50%;
394
+ left: 50%;
395
+ transform: translate(-50%, -50%);
396
+ font-size: 14px;
397
+ color: #6c757d;
398
+ }
399
+
400
+ /* Empty State */
401
+ .swp-empty-state {
402
+ text-align: center;
403
+ padding: 60px 20px;
404
+ color: #6c757d;
405
+ }
406
+
407
+ .swp-empty-state-icon {
408
+ font-size: 48px;
409
+ margin-bottom: 15px;
410
+ opacity: 0.5;
411
+ }
412
+
413
+ .swp-empty-state-text {
414
+ font-size: 16px;
415
+ margin-bottom: 20px;
416
+ }
417
+
418
+ /* Animations */
419
+ @keyframes fadeIn {
420
+ from {
421
+ opacity: 0;
422
+ transform: translateY(-10px);
423
+ }
424
+ to {
425
+ opacity: 1;
426
+ transform: translateY(0);
427
+ }
428
+ }
429
+
430
+ .swp-adjustments-panel.active,
431
+ .swp-filters-panel.active {
432
+ animation: fadeIn 0.3s ease;
433
+ }
434
+
435
+ /* Print Styles */
436
+ @media print {
437
+ .swp-toolbar,
438
+ .swp-adjustments-panel,
439
+ .swp-filters-panel {
440
+ display: none;
441
+ }
442
+
443
+ .swp-canvas-container {
444
+ padding: 0;
445
+ background: transparent;
446
+ }
447
+ }