@sequent-org/moodboard 1.4.48 → 1.4.51

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.
@@ -206,49 +206,119 @@
206
206
  height: 36px;
207
207
  }
208
208
 
209
- /* Frame properties panel — mirror text panel look */
209
+ /* Frame properties toolbar — mirror image toolbar look */
210
210
  .frame-properties-panel {
211
211
  position: absolute;
212
212
  pointer-events: auto;
213
- display: inline-flex;
213
+ display: flex;
214
+ flex-direction: row;
214
215
  align-items: center;
215
- gap: 8px;
216
- padding: 12px 32px;
217
- background-color: #ffffff;
218
- border: 1px solid #e0e0e0;
219
- border-radius: 9999px;
220
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
216
+ gap: 2px;
217
+ padding: 4px 8px;
218
+ background: #ffffff;
219
+ border: 1px solid #E5E7EB;
220
+ border-radius: 8px;
221
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.06);
222
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
221
223
  font-size: 13px;
222
- font-family: 'Roboto', Arial, sans-serif;
223
- min-width: 320px;
224
+ z-index: 3000;
225
+ user-select: none;
226
+ white-space: nowrap;
227
+ }
228
+
229
+ /* Ratio split-dropdown (двухстрочная кнопка «Ratio / значение») */
230
+ .fpp-ratio {
231
+ position: relative;
232
+ display: inline-flex;
233
+ flex-shrink: 0;
234
+ }
235
+
236
+ .fpp-ratio-btn {
237
+ display: inline-flex;
238
+ align-items: center;
239
+ gap: 6px;
224
240
  height: 36px;
241
+ padding: 0 8px;
242
+ border: none;
243
+ background: none;
244
+ border-radius: 6px;
245
+ cursor: pointer;
246
+ color: #374151;
247
+ font-family: inherit;
248
+ transition: background 0.15s;
225
249
  }
226
250
 
227
- .frame-properties-panel .fpp-label {
228
- font-family: 'Roboto', Arial, sans-serif;
229
- font-size: 12px;
230
- color: #666;
231
- font-weight: 500;
251
+ .fpp-ratio-btn:hover {
252
+ background: #F3F4F6;
232
253
  }
233
254
 
234
- .frame-properties-panel .fpp-select,
235
- .frame-properties-panel .fpp-input {
236
- border: 1px solid #ddd;
237
- border-radius: 4px;
238
- padding: 4px 8px;
255
+ .fpp-ratio-text {
256
+ display: flex;
257
+ flex-direction: column;
258
+ align-items: flex-start;
259
+ line-height: 1.15;
260
+ }
261
+
262
+ .fpp-ratio-caption {
263
+ font-size: 10px;
264
+ color: #9CA3AF;
265
+ }
266
+
267
+ .fpp-ratio-value {
239
268
  font-size: 13px;
240
- background-color: #fff;
269
+ color: #374151;
270
+ font-weight: 500;
241
271
  }
242
272
 
243
- .frame-properties-panel .fpp-select {
244
- height: 28px;
245
- line-height: 28px;
273
+ .fpp-ratio-btn svg {
274
+ color: #6B7280;
275
+ transition: transform 0.2s ease;
276
+ }
277
+
278
+ .fpp-ratio-btn.is-active svg {
279
+ transform: rotate(180deg);
246
280
  }
247
281
 
248
- .frame-properties-panel .fpp-color-button {
282
+ .fpp-ratio-dropdown {
283
+ position: absolute;
284
+ top: calc(100% + 6px);
285
+ left: 0;
286
+ background: #ffffff;
287
+ border: 1px solid #E5E7EB;
288
+ border-radius: 8px;
289
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);
290
+ padding: 6px;
291
+ display: none;
292
+ flex-direction: column;
293
+ min-width: 180px;
294
+ z-index: 1001;
295
+ }
296
+
297
+ .fpp-ratio-dropdown.is-open {
298
+ display: flex;
299
+ }
300
+
301
+ /* Кружок цвета фона */
302
+ .fpp-color-wrap {
303
+ display: inline-flex;
304
+ align-items: center;
305
+ justify-content: center;
249
306
  width: 28px;
250
307
  height: 28px;
251
- border: 1px solid #ddd;
308
+ border-radius: 6px;
309
+ cursor: pointer;
310
+ flex-shrink: 0;
311
+ transition: background 0.15s;
312
+ }
313
+
314
+ .fpp-color-wrap:hover {
315
+ background: #F3F4F6;
316
+ }
317
+
318
+ .fpp-color-button {
319
+ width: 20px;
320
+ height: 20px;
321
+ border: 1px solid #D1D5DB;
252
322
  border-radius: 50%;
253
323
  background-color: #ffffff;
254
324
  cursor: pointer;
@@ -256,9 +326,274 @@
256
326
  padding: 0;
257
327
  display: block;
258
328
  box-sizing: border-box;
329
+ position: relative;
259
330
  }
260
331
 
261
- .frame-properties-panel .fpp-section { display: inline-flex; align-items: center; gap: 6px; }
332
+ /* transparent indicator diagonal slash via pseudo */
333
+ .fpp-color-button--none {
334
+ background-color: #ffffff !important;
335
+ border-color: #D1D5DB;
336
+ }
337
+ .fpp-color-button--none::after {
338
+ content: '';
339
+ position: absolute;
340
+ inset: 0;
341
+ background: linear-gradient(to top-right,
342
+ transparent calc(50% - 0.75px),
343
+ #EF4444 calc(50% - 0.75px),
344
+ #EF4444 calc(50% + 0.75px),
345
+ transparent calc(50% + 0.75px)
346
+ );
347
+ border-radius: 50%;
348
+ }
349
+
350
+ /* ═══════════════════════════════════════════════════════════════
351
+ Colour popup dropdown
352
+ ═══════════════════════════════════════════════════════════════ */
353
+
354
+ .fpp-color-popup {
355
+ position: absolute;
356
+ background: #ffffff;
357
+ border: 1px solid #E5E7EB;
358
+ border-radius: 12px;
359
+ box-shadow: 0 10px 25px rgba(0,0,0,0.10), 0 4px 10px rgba(0,0,0,0.05);
360
+ padding: 12px;
361
+ display: none;
362
+ flex-direction: column;
363
+ gap: 14px;
364
+ min-width: 196px;
365
+ z-index: 1001;
366
+ box-sizing: border-box;
367
+ }
368
+ .fpp-color-popup.is-open { display: flex; }
369
+
370
+ .fpp-section { display: flex; flex-direction: column; gap: 8px; }
371
+
372
+ .fpp-section-label {
373
+ font-family: 'Roboto', Arial, sans-serif;
374
+ font-size: 11px;
375
+ font-weight: 500;
376
+ color: #9CA3AF;
377
+ letter-spacing: 0.02em;
378
+ user-select: none;
379
+ }
380
+
381
+ /* Background type row */
382
+ .fpp-bg-type-row { display: flex; gap: 4px; }
383
+
384
+ .fpp-bg-type-btn {
385
+ display: inline-flex;
386
+ align-items: center;
387
+ justify-content: center;
388
+ width: 36px;
389
+ height: 32px;
390
+ border: 1.5px solid transparent;
391
+ border-radius: 6px;
392
+ background: #F9FAFB;
393
+ cursor: pointer;
394
+ color: #374151;
395
+ padding: 0;
396
+ transition: background 0.12s, border-color 0.12s;
397
+ }
398
+ .fpp-bg-type-btn:hover { background: #F3F4F6; border-color: #E5E7EB; }
399
+ .fpp-bg-type-btn.is-active { border-color: #374151; background: #F3F4F6; }
400
+
401
+ /* Color swatch grid */
402
+ .fpp-color-grid {
403
+ display: grid;
404
+ grid-template-columns: repeat(6, 28px);
405
+ gap: 6px;
406
+ }
407
+
408
+ .fpp-color-swatch {
409
+ width: 28px;
410
+ height: 28px;
411
+ border-radius: 50%;
412
+ border: 1.5px solid rgba(0,0,0,0.12);
413
+ background-color: var(--swatch-color, #ffffff);
414
+ cursor: pointer;
415
+ padding: 0;
416
+ margin: 0;
417
+ display: flex;
418
+ align-items: center;
419
+ justify-content: center;
420
+ transition: transform 0.10s, box-shadow 0.10s;
421
+ flex-shrink: 0;
422
+ }
423
+ .fpp-color-swatch:hover { transform: scale(1.12); box-shadow: 0 2px 8px rgba(0,0,0,0.18); }
424
+ .fpp-color-swatch.is-selected { box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #374151; }
425
+
426
+ .fpp-color-swatch--none {
427
+ background-color: #ffffff;
428
+ border-color: #D1D5DB;
429
+ }
430
+ .fpp-color-swatch--none svg { pointer-events: none; }
431
+
432
+ /* Disabled colour section when transparent is selected */
433
+ .fpp-section--color.is-disabled .fpp-color-swatch:not(.fpp-color-swatch--none) {
434
+ opacity: 0.32;
435
+ pointer-events: none;
436
+ cursor: default;
437
+ }
438
+
439
+ /* Custom colours row */
440
+ .fpp-custom-row {
441
+ display: flex;
442
+ flex-wrap: wrap;
443
+ gap: 6px;
444
+ align-items: center;
445
+ }
446
+
447
+ .fpp-add-color-btn {
448
+ width: 28px;
449
+ height: 28px;
450
+ border-radius: 50%;
451
+ border: 1.5px dashed #D1D5DB;
452
+ background: transparent;
453
+ cursor: pointer;
454
+ display: flex;
455
+ align-items: center;
456
+ justify-content: center;
457
+ color: #9CA3AF;
458
+ padding: 0;
459
+ flex-shrink: 0;
460
+ transition: border-color 0.12s, color 0.12s;
461
+ }
462
+ .fpp-add-color-btn:hover { border-color: #9CA3AF; color: #374151; }
463
+
464
+ /* ═══════════════════════════════════════════════════════════════
465
+ HSV colour picker
466
+ ═══════════════════════════════════════════════════════════════ */
467
+
468
+ .fpp-color-picker {
469
+ position: absolute;
470
+ background: #ffffff;
471
+ border: 1px solid #E5E7EB;
472
+ border-radius: 12px;
473
+ box-shadow: 0 10px 25px rgba(0,0,0,0.12);
474
+ padding: 12px;
475
+ display: none;
476
+ flex-direction: column;
477
+ gap: 10px;
478
+ z-index: 1002;
479
+ width: 236px;
480
+ box-sizing: border-box;
481
+ }
482
+ .fpp-color-picker.is-open { display: flex; }
483
+
484
+ .fpp-color-picker__canvas-wrap {
485
+ position: relative;
486
+ width: 212px;
487
+ height: 148px;
488
+ border-radius: 6px;
489
+ overflow: hidden;
490
+ cursor: crosshair;
491
+ flex-shrink: 0;
492
+ }
493
+ .fpp-color-picker__canvas {
494
+ display: block;
495
+ width: 212px;
496
+ height: 148px;
497
+ }
498
+ .fpp-color-picker__cursor {
499
+ position: absolute;
500
+ width: 14px;
501
+ height: 14px;
502
+ border-radius: 50%;
503
+ border: 2px solid #ffffff;
504
+ box-shadow: 0 0 0 1px rgba(0,0,0,0.30);
505
+ transform: translate(-50%, -50%);
506
+ pointer-events: none;
507
+ top: 0;
508
+ left: 0;
509
+ }
510
+
511
+ .fpp-color-picker__hue-wrap { width: 100%; }
512
+
513
+ .fpp-color-picker__hue-slider {
514
+ -webkit-appearance: none;
515
+ appearance: none;
516
+ width: 100%;
517
+ height: 10px;
518
+ border-radius: 5px;
519
+ background: linear-gradient(to right,
520
+ hsl(0,100%,50%), hsl(30,100%,50%), hsl(60,100%,50%), hsl(90,100%,50%),
521
+ hsl(120,100%,50%), hsl(150,100%,50%), hsl(180,100%,50%), hsl(210,100%,50%),
522
+ hsl(240,100%,50%), hsl(270,100%,50%), hsl(300,100%,50%), hsl(330,100%,50%),
523
+ hsl(360,100%,50%));
524
+ outline: none;
525
+ cursor: pointer;
526
+ border: none;
527
+ }
528
+ .fpp-color-picker__hue-slider::-webkit-slider-thumb {
529
+ -webkit-appearance: none;
530
+ width: 16px;
531
+ height: 16px;
532
+ border-radius: 50%;
533
+ background: #ffffff;
534
+ border: 2px solid rgba(0,0,0,0.28);
535
+ box-shadow: 0 1px 3px rgba(0,0,0,0.20);
536
+ cursor: pointer;
537
+ }
538
+ .fpp-color-picker__hue-slider::-moz-range-thumb {
539
+ width: 16px;
540
+ height: 16px;
541
+ border-radius: 50%;
542
+ background: #ffffff;
543
+ border: 2px solid rgba(0,0,0,0.28);
544
+ cursor: pointer;
545
+ }
546
+
547
+ .fpp-color-picker__bottom {
548
+ display: flex;
549
+ align-items: center;
550
+ gap: 8px;
551
+ }
552
+ .fpp-color-picker__eyedropper {
553
+ width: 30px;
554
+ height: 30px;
555
+ border: 1px solid #E5E7EB;
556
+ border-radius: 6px;
557
+ background: transparent;
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: center;
561
+ cursor: pointer;
562
+ color: #6B7280;
563
+ padding: 0;
564
+ flex-shrink: 0;
565
+ transition: background 0.12s, color 0.12s;
566
+ }
567
+ .fpp-color-picker__eyedropper:hover { background: #F3F4F6; color: #374151; }
568
+
569
+ .fpp-color-picker__hex-input {
570
+ flex: 1;
571
+ height: 30px;
572
+ border: 1px solid #E5E7EB;
573
+ border-radius: 6px;
574
+ padding: 0 8px;
575
+ font-size: 13px;
576
+ font-family: 'Roboto Mono', 'Courier New', monospace;
577
+ color: #374151;
578
+ outline: none;
579
+ background: #ffffff;
580
+ }
581
+ .fpp-color-picker__hex-input:focus { border-color: #9CA3AF; }
582
+
583
+ .fpp-color-picker__apply {
584
+ width: 100%;
585
+ height: 30px;
586
+ border: none;
587
+ border-radius: 6px;
588
+ background: #374151;
589
+ color: #ffffff;
590
+ font-size: 13px;
591
+ font-family: 'Roboto', Arial, sans-serif;
592
+ font-weight: 500;
593
+ cursor: pointer;
594
+ transition: background 0.12s;
595
+ }
596
+ .fpp-color-picker__apply:hover { background: #1F2937; }
262
597
 
263
598
  .text-properties-panel .tpp-label {
264
599
  font-family: 'Roboto', Arial, sans-serif;
@@ -355,7 +690,7 @@
355
690
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.06);
356
691
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
357
692
  font-size: 13px;
358
- z-index: 1000;
693
+ z-index: 3000;
359
694
  user-select: none;
360
695
  white-space: nowrap;
361
696
  }
@@ -604,3 +939,390 @@
604
939
  color: #6B7280;
605
940
  }
606
941
 
942
+ /* Border Radius Popover */
943
+ .ipp-border-radius-popover {
944
+ position: absolute;
945
+ top: calc(100% + 6px);
946
+ left: 50%;
947
+ transform: translateX(-50%);
948
+ background: #ffffff;
949
+ border: 1px solid #E5E7EB;
950
+ border-radius: 8px;
951
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);
952
+ padding: 10px 12px;
953
+ display: none;
954
+ flex-direction: column;
955
+ gap: 8px;
956
+ min-width: 220px;
957
+ z-index: 1001;
958
+ }
959
+
960
+ .ipp-border-radius-popover.is-open {
961
+ display: flex;
962
+ }
963
+
964
+ .ipp-border-radius-label {
965
+ font-size: 12px;
966
+ font-weight: 500;
967
+ color: #374151;
968
+ font-family: inherit;
969
+ user-select: none;
970
+ }
971
+
972
+ .ipp-border-radius-controls {
973
+ display: flex;
974
+ align-items: center;
975
+ gap: 8px;
976
+ }
977
+
978
+ .ipp-border-radius-slider {
979
+ flex: 1;
980
+ height: 4px;
981
+ -webkit-appearance: none;
982
+ appearance: none;
983
+ background: #E5E7EB;
984
+ border-radius: 2px;
985
+ outline: none;
986
+ cursor: pointer;
987
+ }
988
+
989
+ .ipp-border-radius-slider::-webkit-slider-runnable-track {
990
+ height: 4px;
991
+ border-radius: 2px;
992
+ }
993
+
994
+ .ipp-border-radius-slider::-moz-range-track {
995
+ height: 4px;
996
+ border-radius: 2px;
997
+ background: #E5E7EB;
998
+ }
999
+
1000
+ .ipp-border-radius-slider::-moz-range-progress {
1001
+ height: 4px;
1002
+ border-radius: 2px;
1003
+ background: #444ce7;
1004
+ }
1005
+
1006
+ .ipp-border-radius-slider::-webkit-slider-thumb {
1007
+ -webkit-appearance: none;
1008
+ appearance: none;
1009
+ width: 14px;
1010
+ height: 14px;
1011
+ border-radius: 50%;
1012
+ background: #444ce7;
1013
+ cursor: pointer;
1014
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1015
+ margin-top: -5px;
1016
+ }
1017
+
1018
+ .ipp-border-radius-slider::-moz-range-thumb {
1019
+ width: 14px;
1020
+ height: 14px;
1021
+ border-radius: 50%;
1022
+ background: #444ce7;
1023
+ cursor: pointer;
1024
+ border: none;
1025
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1026
+ }
1027
+
1028
+ .ipp-border-radius-number {
1029
+ width: 48px;
1030
+ height: 28px;
1031
+ border: 1px solid #E5E7EB;
1032
+ border-radius: 6px;
1033
+ font-size: 13px;
1034
+ font-family: inherit;
1035
+ color: #374151;
1036
+ text-align: center;
1037
+ padding: 0 4px;
1038
+ line-height: 28px;
1039
+ outline: none;
1040
+ background: #fff;
1041
+ -moz-appearance: textfield;
1042
+ flex-shrink: 0;
1043
+ }
1044
+
1045
+ .ipp-border-radius-number::-webkit-outer-spin-button,
1046
+ .ipp-border-radius-number::-webkit-inner-spin-button {
1047
+ -webkit-appearance: none;
1048
+ margin: 0;
1049
+ }
1050
+
1051
+ .ipp-border-radius-number:focus {
1052
+ border-color: #6B7280;
1053
+ }
1054
+
1055
+ /* Info Popover */
1056
+ .ipp-info-popover {
1057
+ position: absolute;
1058
+ top: 0;
1059
+ right: calc(100% + 4px);
1060
+ background: #ffffff;
1061
+ border: 1px solid #E5E7EB;
1062
+ border-radius: 8px;
1063
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);
1064
+ padding: 6px;
1065
+ display: none;
1066
+ flex-direction: column;
1067
+ min-width: 200px;
1068
+ z-index: 1002;
1069
+ font-family: inherit;
1070
+ }
1071
+
1072
+ .ipp-info-popover.is-open {
1073
+ display: flex;
1074
+ }
1075
+
1076
+ .ipp-info-section {
1077
+ padding: 6px 8px;
1078
+ display: flex;
1079
+ flex-direction: column;
1080
+ gap: 2px;
1081
+ }
1082
+
1083
+ .ipp-info-section + .ipp-info-section {
1084
+ border-top: 1px solid #F3F4F6;
1085
+ margin-top: 2px;
1086
+ padding-top: 8px;
1087
+ }
1088
+
1089
+ .ipp-info-section__label {
1090
+ font-size: 11px;
1091
+ color: #9CA3AF;
1092
+ font-weight: 400;
1093
+ line-height: 1.3;
1094
+ }
1095
+
1096
+ .ipp-info-section__name {
1097
+ font-size: 13px;
1098
+ color: #374151;
1099
+ font-weight: 400;
1100
+ line-height: 1.4;
1101
+ font-family: inherit;
1102
+ }
1103
+
1104
+ .ipp-info-section__date {
1105
+ font-size: 12px;
1106
+ color: #9CA3AF;
1107
+ font-family: inherit;
1108
+ }
1109
+
1110
+ /* Border Style Popover */
1111
+ .ipp-border-style-wrapper {
1112
+ position: relative;
1113
+ display: inline-flex;
1114
+ }
1115
+
1116
+ .ipp-border-style-popover {
1117
+ position: absolute;
1118
+ top: calc(100% + 6px);
1119
+ left: 50%;
1120
+ transform: translateX(-50%);
1121
+ background: #ffffff;
1122
+ border: 1px solid #E5E7EB;
1123
+ border-radius: 10px;
1124
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);
1125
+ padding: 12px;
1126
+ display: none;
1127
+ flex-direction: column;
1128
+ gap: 10px;
1129
+ min-width: 220px;
1130
+ z-index: 1001;
1131
+ font-family: inherit;
1132
+ }
1133
+
1134
+ .ipp-border-style-popover.is-open {
1135
+ display: flex;
1136
+ }
1137
+
1138
+ .ipp-bs-style-row {
1139
+ display: flex;
1140
+ gap: 4px;
1141
+ }
1142
+
1143
+ .ipp-bs-style-btn {
1144
+ flex: 1;
1145
+ display: flex;
1146
+ align-items: center;
1147
+ justify-content: center;
1148
+ height: 30px;
1149
+ border: 1.5px solid #E5E7EB;
1150
+ border-radius: 6px;
1151
+ background: #fff;
1152
+ color: #6B7280;
1153
+ cursor: pointer;
1154
+ transition: border-color 0.15s, color 0.15s;
1155
+ padding: 0;
1156
+ }
1157
+
1158
+ .ipp-bs-style-btn:hover {
1159
+ border-color: #9CA3AF;
1160
+ color: #374151;
1161
+ }
1162
+
1163
+ .ipp-bs-style-btn.is-active {
1164
+ border-color: #444ce7;
1165
+ color: #444ce7;
1166
+ background: #EEF2FF;
1167
+ }
1168
+
1169
+ .ipp-bs-section {
1170
+ display: flex;
1171
+ flex-direction: column;
1172
+ gap: 6px;
1173
+ }
1174
+
1175
+ .ipp-bs-row-header {
1176
+ display: flex;
1177
+ align-items: center;
1178
+ justify-content: space-between;
1179
+ }
1180
+
1181
+ .ipp-bs-label {
1182
+ font-size: 12px;
1183
+ font-weight: 500;
1184
+ color: #374151;
1185
+ font-family: inherit;
1186
+ user-select: none;
1187
+ }
1188
+
1189
+ .ipp-bs-value {
1190
+ font-size: 12px;
1191
+ color: #6B7280;
1192
+ font-family: inherit;
1193
+ user-select: none;
1194
+ }
1195
+
1196
+ .ipp-bs-slider {
1197
+ width: 100%;
1198
+ height: 4px;
1199
+ -webkit-appearance: none;
1200
+ appearance: none;
1201
+ background: #E5E7EB;
1202
+ border-radius: 2px;
1203
+ outline: none;
1204
+ cursor: pointer;
1205
+ }
1206
+
1207
+ .ipp-bs-slider::-webkit-slider-runnable-track {
1208
+ height: 4px;
1209
+ border-radius: 2px;
1210
+ }
1211
+
1212
+ .ipp-bs-slider::-moz-range-track {
1213
+ height: 4px;
1214
+ border-radius: 2px;
1215
+ background: #E5E7EB;
1216
+ }
1217
+
1218
+ .ipp-bs-slider::-moz-range-progress {
1219
+ height: 4px;
1220
+ border-radius: 2px;
1221
+ background: #444ce7;
1222
+ }
1223
+
1224
+ .ipp-bs-slider::-webkit-slider-thumb {
1225
+ -webkit-appearance: none;
1226
+ appearance: none;
1227
+ width: 14px;
1228
+ height: 14px;
1229
+ border-radius: 50%;
1230
+ background: #444ce7;
1231
+ cursor: pointer;
1232
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1233
+ margin-top: -5px;
1234
+ }
1235
+
1236
+ .ipp-bs-slider::-moz-range-thumb {
1237
+ width: 14px;
1238
+ height: 14px;
1239
+ border-radius: 50%;
1240
+ background: #444ce7;
1241
+ cursor: pointer;
1242
+ border: none;
1243
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1244
+ }
1245
+
1246
+ .ipp-bs-palette {
1247
+ display: flex;
1248
+ flex-direction: column;
1249
+ gap: 4px;
1250
+ }
1251
+
1252
+ .ipp-bs-palette-row {
1253
+ display: flex;
1254
+ gap: 4px;
1255
+ justify-content: space-between;
1256
+ }
1257
+
1258
+ .ipp-bs-swatch {
1259
+ width: 22px;
1260
+ height: 22px;
1261
+ border-radius: 50%;
1262
+ border: none;
1263
+ cursor: pointer;
1264
+ padding: 0;
1265
+ flex-shrink: 0;
1266
+ transition: transform 0.1s, box-shadow 0.15s;
1267
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
1268
+ }
1269
+
1270
+ .ipp-bs-swatch:hover {
1271
+ transform: scale(1.18);
1272
+ }
1273
+
1274
+ .ipp-bs-swatch.is-active {
1275
+ box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #444ce7;
1276
+ }
1277
+
1278
+ .ipp-bs-swatch--none {
1279
+ background: #fff;
1280
+ position: relative;
1281
+ overflow: hidden;
1282
+ box-shadow: 0 0 0 1px #E5E7EB;
1283
+ }
1284
+
1285
+ .ipp-bs-swatch--none::after {
1286
+ content: '';
1287
+ position: absolute;
1288
+ top: 50%;
1289
+ left: -2px;
1290
+ right: -2px;
1291
+ height: 1.5px;
1292
+ background: #9CA3AF;
1293
+ transform: translateY(-50%) rotate(-45deg);
1294
+ pointer-events: none;
1295
+ }
1296
+
1297
+ .ipp-bs-swatch--none.is-active {
1298
+ box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #444ce7;
1299
+ }
1300
+
1301
+ .ipp-bs-custom-row {
1302
+ display: flex;
1303
+ flex-wrap: wrap;
1304
+ gap: 4px;
1305
+ align-items: center;
1306
+ }
1307
+
1308
+ .ipp-bs-add-btn {
1309
+ width: 22px;
1310
+ height: 22px;
1311
+ border-radius: 50%;
1312
+ border: 1.5px dashed #D1D5DB;
1313
+ background: #fff;
1314
+ color: #9CA3AF;
1315
+ cursor: pointer;
1316
+ display: flex;
1317
+ align-items: center;
1318
+ justify-content: center;
1319
+ padding: 0;
1320
+ flex-shrink: 0;
1321
+ transition: border-color 0.15s, color 0.15s;
1322
+ }
1323
+
1324
+ .ipp-bs-add-btn:hover {
1325
+ border-color: #9CA3AF;
1326
+ color: #6B7280;
1327
+ }
1328
+