@rogieking/figui3 6.9.9 → 6.11.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.
- package/components.css +34 -4
- package/dist/components.css +1 -1
- package/dist/fig-editor.css +1 -1
- package/dist/fig-editor.js +22 -18
- package/dist/fig-lab.css +1 -1
- package/dist/fig-lab.js +30 -32
- package/dist/fig.css +1 -1
- package/dist/fig.js +17 -17
- package/fig-editor.css +0 -12
- package/fig-editor.js +26 -22
- package/fig-lab.css +120 -46
- package/fig-lab.js +576 -55
- package/fig.js +20 -3
- package/package.json +1 -1
package/fig-editor.css
CHANGED
|
@@ -78,12 +78,6 @@ fig-fill-picker {
|
|
|
78
78
|
width: 240px;
|
|
79
79
|
padding: 0;
|
|
80
80
|
|
|
81
|
-
& > fig-header {
|
|
82
|
-
padding: var(--spacer-2);
|
|
83
|
-
min-width: 0;
|
|
84
|
-
overflow: hidden;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
81
|
fig-tab {
|
|
88
82
|
font-size: 0.6875rem;
|
|
89
83
|
padding: var(--spacer-1) var(--spacer-1);
|
|
@@ -91,12 +85,6 @@ fig-fill-picker {
|
|
|
91
85
|
& > fig-content {
|
|
92
86
|
padding-bottom: var(--spacer-2-5);
|
|
93
87
|
}
|
|
94
|
-
.fig-fill-picker-type-label {
|
|
95
|
-
font-size: var(--font-size-small);
|
|
96
|
-
font-weight: var(--font-weight-medium);
|
|
97
|
-
color: var(--figma-color-text);
|
|
98
|
-
padding: var(--spacer-1) var(--spacer-2);
|
|
99
|
-
}
|
|
100
88
|
|
|
101
89
|
.fig-fill-picker-gamut {
|
|
102
90
|
margin-left: auto;
|
package/fig-editor.js
CHANGED
|
@@ -1439,28 +1439,6 @@ class FigFillPicker extends HTMLElement {
|
|
|
1439
1439
|
<fig-preview class="fig-fill-picker-gradient-preview">
|
|
1440
1440
|
<fig-input-gradient class="fig-fill-picker-gradient-bar-input" aria-label="Gradient stops" edit="true" mode="tip" size="large" value='${JSON.stringify({ type: "gradient", gradient: gradientToValueShape(this.#gradient) })}'></fig-input-gradient>
|
|
1441
1441
|
</fig-preview>
|
|
1442
|
-
<fig-field class="fig-fill-picker-gradient-interpolation">
|
|
1443
|
-
<label>Mixing</label>
|
|
1444
|
-
<fig-dropdown class="fig-fill-picker-gradient-space" label="Gradient mixing" full ${expAttr} value="${
|
|
1445
|
-
this.#gradient.interpolationSpace === "oklch"
|
|
1446
|
-
? `oklch-${this.#gradient.hueInterpolation || "shorter"}`
|
|
1447
|
-
: this.#gradient.interpolationSpace
|
|
1448
|
-
}">
|
|
1449
|
-
<optgroup label="sRGB">
|
|
1450
|
-
<option value="srgb">Classic</option>
|
|
1451
|
-
<option value="srgb-linear">Linear</option>
|
|
1452
|
-
</optgroup>
|
|
1453
|
-
<optgroup label="OKLab">
|
|
1454
|
-
<option value="oklab">Perceptual</option>
|
|
1455
|
-
</optgroup>
|
|
1456
|
-
<optgroup label="OKLCH">
|
|
1457
|
-
<option value="oklch-shorter">Shorter hue</option>
|
|
1458
|
-
<option value="oklch-longer">Longer hue</option>
|
|
1459
|
-
<option value="oklch-increasing">Increasing hue</option>
|
|
1460
|
-
<option value="oklch-decreasing">Decreasing hue</option>
|
|
1461
|
-
</optgroup>
|
|
1462
|
-
</fig-dropdown>
|
|
1463
|
-
</fig-field>
|
|
1464
1442
|
<div class="fig-fill-picker-gradient-stops">
|
|
1465
1443
|
<fig-header class="fig-fill-picker-gradient-stops-header" borderless>
|
|
1466
1444
|
<span>Stops</span>
|
|
@@ -1470,6 +1448,32 @@ class FigFillPicker extends HTMLElement {
|
|
|
1470
1448
|
</fig-header>
|
|
1471
1449
|
<div class="fig-fill-picker-gradient-stops-list"></div>
|
|
1472
1450
|
</div>
|
|
1451
|
+
<div class="fig-fill-picker-gradient-interpolation">
|
|
1452
|
+
<fig-header class="fig-fill-picker-gradient-interpolation-header" borderless>
|
|
1453
|
+
<span>Color interpolation</span>
|
|
1454
|
+
</fig-header>
|
|
1455
|
+
<fig-field class="fig-fill-picker-gradient-interpolation-field">
|
|
1456
|
+
<fig-dropdown class="fig-fill-picker-gradient-space" label="Color interpolation" full ${expAttr} value="${
|
|
1457
|
+
this.#gradient.interpolationSpace === "oklch"
|
|
1458
|
+
? `oklch-${this.#gradient.hueInterpolation || "shorter"}`
|
|
1459
|
+
: this.#gradient.interpolationSpace
|
|
1460
|
+
}">
|
|
1461
|
+
<optgroup label="sRGB">
|
|
1462
|
+
<option value="srgb">Classic</option>
|
|
1463
|
+
<option value="srgb-linear">Linear</option>
|
|
1464
|
+
</optgroup>
|
|
1465
|
+
<optgroup label="OKLab">
|
|
1466
|
+
<option value="oklab">Perceptual</option>
|
|
1467
|
+
</optgroup>
|
|
1468
|
+
<optgroup label="OKLCH">
|
|
1469
|
+
<option value="oklch-shorter">Shorter hue</option>
|
|
1470
|
+
<option value="oklch-longer">Longer hue</option>
|
|
1471
|
+
<option value="oklch-increasing">Increasing hue</option>
|
|
1472
|
+
<option value="oklch-decreasing">Decreasing hue</option>
|
|
1473
|
+
</optgroup>
|
|
1474
|
+
</fig-dropdown>
|
|
1475
|
+
</fig-field>
|
|
1476
|
+
</div>
|
|
1473
1477
|
`;
|
|
1474
1478
|
|
|
1475
1479
|
this.#updateGradientUI();
|
package/fig-lab.css
CHANGED
|
@@ -15,10 +15,15 @@ fig-field-slider {
|
|
|
15
15
|
--fig-field-slider-elastic-origin: left center;
|
|
16
16
|
--fig-field-slider-elastic-transition: 0.18s cubic-bezier(0.2, 1.45, 0.35, 1);
|
|
17
17
|
--fig-field-slider-height: 2rem;
|
|
18
|
+
--fig-field-slider-vertical-padding: var(--spacer-1);
|
|
19
|
+
--fig-field-slider-horizontal-padding: var(--spacer-3);
|
|
18
20
|
--figma-focus-outline-offset: 1px;
|
|
19
21
|
--fig-field-slider-progress-shadow: inset 0px 0.75px 0px 0px light-dark(transparent, rgba(255, 255, 255, 0.1));
|
|
20
22
|
--field-text-shadow: 0 1px 1.5px
|
|
21
23
|
light-dark(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
|
|
24
|
+
--fig-field-slider-fig-slider-height: calc(var(--fig-field-slider-height) - var(--fig-field-slider-vertical-padding) * 2);
|
|
25
|
+
--fig-field-slider-fig-slider-thumb-height: calc(var(--fig-field-slider-fig-slider-height) - var(--spacer-2-5));
|
|
26
|
+
|
|
22
27
|
display: block;
|
|
23
28
|
position: relative;
|
|
24
29
|
width: 100%;
|
|
@@ -26,6 +31,15 @@ fig-field-slider {
|
|
|
26
31
|
border-radius: var(--radius-medium);
|
|
27
32
|
transform-origin: var(--fig-field-slider-elastic-origin);
|
|
28
33
|
transition: transform var(--fig-field-slider-elastic-transition);
|
|
34
|
+
padding-top: var(--fig-field-slider-vertical-padding);
|
|
35
|
+
padding-bottom: var(--fig-field-slider-vertical-padding);
|
|
36
|
+
padding-left: var(--fig-field-slider-horizontal-padding);
|
|
37
|
+
padding-right: var(--fig-field-slider-horizontal-padding);
|
|
38
|
+
|
|
39
|
+
&[size="large"]{
|
|
40
|
+
--fig-field-slider-vertical-padding: 0px;
|
|
41
|
+
--fig-field-slider-fig-slider-thumb-height: calc(var(--fig-field-slider-fig-slider-height) - var(--spacer-3));
|
|
42
|
+
}
|
|
29
43
|
|
|
30
44
|
label {
|
|
31
45
|
pointer-events: none;
|
|
@@ -57,7 +71,7 @@ fig-field-slider {
|
|
|
57
71
|
|
|
58
72
|
fig-field:not([direction="vertical"]) {
|
|
59
73
|
position: relative;
|
|
60
|
-
padding-left: var(--spacer-2
|
|
74
|
+
padding-left: var(--spacer-2);
|
|
61
75
|
display: flex;
|
|
62
76
|
height: 100%;
|
|
63
77
|
|
|
@@ -83,8 +97,8 @@ fig-field-slider {
|
|
|
83
97
|
inset: 0;
|
|
84
98
|
padding: 0;
|
|
85
99
|
background-color: transparent;
|
|
86
|
-
--slider-height:
|
|
87
|
-
--slider-field-height:
|
|
100
|
+
--slider-height: var(--fig-field-slider-fig-slider-height);
|
|
101
|
+
--slider-field-height: calc(var(--fig-field-slider-height) - var(--fig-field-slider-vertical-padding) * 2);
|
|
88
102
|
--slider-thumb-width: var(--spacer-1);
|
|
89
103
|
--slider-thumb-color: light-dark(
|
|
90
104
|
var(--figma-color-text-secondary),
|
|
@@ -94,7 +108,7 @@ fig-field-slider {
|
|
|
94
108
|
var(--spacer-2) + (var(--spacer-3) - var(--spacer-2)) *
|
|
95
109
|
min(var(--slider-complete), calc(1 - var(--slider-complete))) * 2
|
|
96
110
|
);*/
|
|
97
|
-
--slider-thumb-height:
|
|
111
|
+
--slider-thumb-height: var(--fig-field-slider-fig-slider-thumb-height);
|
|
98
112
|
--slider-border-radius: var(--radius-medium);
|
|
99
113
|
--slider-tick-width: 0.125rem;
|
|
100
114
|
--slider-tick-height: var(--spacer-2);
|
|
@@ -288,7 +302,7 @@ fig-field-slider {
|
|
|
288
302
|
background-color: transparent;
|
|
289
303
|
box-shadow: none !important;
|
|
290
304
|
position: absolute;
|
|
291
|
-
right:
|
|
305
|
+
right: 0;
|
|
292
306
|
width: fit-content;
|
|
293
307
|
min-width: fit-content;
|
|
294
308
|
max-width: max-content;
|
|
@@ -539,10 +553,18 @@ fig-input-oscillator {
|
|
|
539
553
|
|
|
540
554
|
.fig-input-oscillator-svg-container {
|
|
541
555
|
border-radius: var(--radius-medium);
|
|
542
|
-
|
|
543
|
-
padding: var(--spacer-3) var(--spacer-2);
|
|
556
|
+
padding: var(--spacer-3) var(--spacer-5);
|
|
544
557
|
margin-bottom: var(--spacer-2);
|
|
545
558
|
overflow: hidden;
|
|
559
|
+
position: relative;
|
|
560
|
+
|
|
561
|
+
&::before{
|
|
562
|
+
position: absolute;
|
|
563
|
+
inset: 0 var(--spacer-3);
|
|
564
|
+
content: "";
|
|
565
|
+
background: var(--figma-color-bg-secondary);
|
|
566
|
+
border-radius: var(--radius-medium);
|
|
567
|
+
}
|
|
546
568
|
|
|
547
569
|
&:is(:hover, :active, :focus, :focus-visible, :focus-within) {
|
|
548
570
|
overflow: visible;
|
|
@@ -557,6 +579,8 @@ fig-input-oscillator {
|
|
|
557
579
|
width: 100%;
|
|
558
580
|
aspect-ratio: var(--aspect-ratio);
|
|
559
581
|
overflow: visible;
|
|
582
|
+
position: relative;
|
|
583
|
+
z-index: 1;
|
|
560
584
|
|
|
561
585
|
.fig-input-oscillator-handle{
|
|
562
586
|
opacity: 0;
|
|
@@ -612,59 +636,60 @@ fig-input-oscillator {
|
|
|
612
636
|
}
|
|
613
637
|
}
|
|
614
638
|
|
|
639
|
+
.fig-input-oscillator-frequency-handle {
|
|
640
|
+
cursor: ew-resize;
|
|
641
|
+
|
|
642
|
+
fig-handle,
|
|
643
|
+
fig-handle:hover,
|
|
644
|
+
fig-handle .fig-handle-hit-area,
|
|
645
|
+
fig-handle:hover .fig-handle-hit-area,
|
|
646
|
+
fig-handle:is(:active, .active, .dragging),
|
|
647
|
+
fig-handle:is(:active, .active, .dragging) .fig-handle-hit-area {
|
|
648
|
+
cursor: ew-resize !important;
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.fig-input-oscillator-amplitude-handle {
|
|
653
|
+
cursor: ns-resize;
|
|
654
|
+
|
|
655
|
+
fig-handle,
|
|
656
|
+
fig-handle:hover,
|
|
657
|
+
fig-handle .fig-handle-hit-area,
|
|
658
|
+
fig-handle:hover .fig-handle-hit-area,
|
|
659
|
+
fig-handle:is(:active, .active, .dragging),
|
|
660
|
+
fig-handle:is(:active, .active, .dragging) .fig-handle-hit-area {
|
|
661
|
+
cursor: ns-resize !important;
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
|
|
615
665
|
.fig-input-oscillator-waves {
|
|
616
666
|
display: flex;
|
|
617
667
|
flex-direction: column;
|
|
618
|
-
gap:
|
|
668
|
+
gap: 0;
|
|
619
669
|
}
|
|
620
670
|
|
|
621
671
|
.fig-input-oscillator-wave {
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
> .fig-input-oscillator-wave-summary {
|
|
625
|
-
min-height: var(--control-height);
|
|
626
|
-
padding: 0;
|
|
627
|
-
|
|
628
|
-
> label {
|
|
629
|
-
display: inline-flex;
|
|
630
|
-
align-items: center;
|
|
631
|
-
gap: var(--spacer-1);
|
|
632
|
-
min-width: 0;
|
|
672
|
+
margin-bottom: 0;
|
|
633
673
|
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
> .fig-input-oscillator-remove-button {
|
|
640
|
-
margin-left: auto;
|
|
674
|
+
> fig-header {
|
|
675
|
+
.fig-input-oscillator-remove-button,
|
|
676
|
+
.fig-input-oscillator-add-type-button {
|
|
677
|
+
flex-shrink: 0;
|
|
641
678
|
}
|
|
642
679
|
}
|
|
643
680
|
}
|
|
644
681
|
|
|
645
682
|
.fig-input-oscillator-field {
|
|
646
|
-
--fig-field-left-padding: 0;
|
|
647
|
-
--fig-field-right-padding: 0;
|
|
648
|
-
|
|
649
|
-
> fig-slider {
|
|
650
|
-
min-width: 0;
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
.fig-input-oscillator-add-wave {
|
|
655
|
-
display: grid;
|
|
656
|
-
grid-template-columns: auto;
|
|
657
|
-
justify-content: end;
|
|
658
683
|
width: 100%;
|
|
684
|
+
}
|
|
659
685
|
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
}
|
|
686
|
+
.fig-input-oscillator-add-type-button {
|
|
687
|
+
> fig-dropdown,
|
|
688
|
+
> fig-dropdown > select {
|
|
689
|
+
width: 100%;
|
|
690
|
+
height: 100%;
|
|
691
|
+
min-width: 100%;
|
|
692
|
+
padding: 0;
|
|
668
693
|
}
|
|
669
694
|
}
|
|
670
695
|
|
|
@@ -674,3 +699,52 @@ fig-input-oscillator {
|
|
|
674
699
|
}
|
|
675
700
|
}
|
|
676
701
|
|
|
702
|
+
/* Reorder */
|
|
703
|
+
fig-reorder {
|
|
704
|
+
display: contents;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
fig-reorder:not([handle]):not([disabled]):not([disabled="false"]) > [data-reorder-item] {
|
|
708
|
+
cursor: grab;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
fig-reorder:not([handle]):not([disabled]):not([disabled="false"]) > [data-reorder-item] > fig-header,
|
|
712
|
+
fig-reorder:not([handle]):not([disabled]):not([disabled="false"]) > [data-reorder-item] > fig-header *,
|
|
713
|
+
fig-reorder:not([handle]):not([disabled]):not([disabled="false"]) > [data-reorder-item] > label {
|
|
714
|
+
cursor: grab;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
fig-reorder > .dragging {
|
|
718
|
+
opacity: 0.6;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
[data-reorder-handle] {
|
|
722
|
+
cursor: grab;
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
fig-reorder[disabled]:not([disabled="false"]) [data-reorder-handle] {
|
|
726
|
+
cursor: inherit;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
body.fig-reorder-dragging,
|
|
730
|
+
body.fig-reorder-dragging * {
|
|
731
|
+
user-select: none !important;
|
|
732
|
+
-webkit-user-select: none !important;
|
|
733
|
+
cursor: grabbing !important;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.fig-reorder-indicator {
|
|
737
|
+
position: fixed;
|
|
738
|
+
pointer-events: none;
|
|
739
|
+
z-index: 10000;
|
|
740
|
+
background: var(--figma-color-border-strong);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
.fig-reorder-indicator[data-axis="vertical"] {
|
|
744
|
+
height: 2px;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
.fig-reorder-indicator[data-axis="horizontal"] {
|
|
748
|
+
width: 2px;
|
|
749
|
+
}
|
|
750
|
+
|