figma-kit 1.0.0-beta.3 → 1.0.0-beta.31

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 (167) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -25
  3. package/dist/components/alert-dialog/alert-dialog.d.ts +31 -0
  4. package/dist/components/alert-dialog/index.d.ts +1 -0
  5. package/dist/components/button/button.d.ts +15 -0
  6. package/dist/components/button/index.d.ts +1 -0
  7. package/dist/components/checkbox/checkbox.d.ts +12 -0
  8. package/dist/components/checkbox/index.d.ts +1 -0
  9. package/dist/components/collapsible/collapsible.d.ts +10 -0
  10. package/dist/components/collapsible/index.d.ts +1 -0
  11. package/dist/components/color-picker/color-picker-alpha.d.ts +4 -0
  12. package/dist/components/color-picker/color-picker-area.d.ts +5 -0
  13. package/dist/components/color-picker/color-picker-hue.d.ts +4 -0
  14. package/dist/components/color-picker/color-picker-input.d.ts +7 -0
  15. package/dist/components/color-picker/color-picker.d.ts +63 -0
  16. package/dist/components/color-picker/index.d.ts +5 -0
  17. package/dist/components/combobox/combobox.d.ts +51 -0
  18. package/dist/components/combobox/index.d.ts +1 -0
  19. package/dist/components/context-menu/context-menu.d.ts +36 -0
  20. package/dist/components/context-menu/index.d.ts +1 -0
  21. package/dist/components/dialog/dialog.d.ts +25 -0
  22. package/dist/components/dialog/index.d.ts +1 -0
  23. package/dist/components/dialog.base/dialog.base.d.ts +15 -0
  24. package/dist/components/dialog.base/index.d.ts +1 -0
  25. package/dist/components/dropdown-menu/dropdown-menu.d.ts +36 -0
  26. package/dist/components/dropdown-menu/index.d.ts +1 -0
  27. package/dist/components/flex/flex.d.ts +23 -0
  28. package/dist/components/flex/index.d.ts +1 -0
  29. package/dist/components/icon/icon.d.ts +16 -0
  30. package/dist/components/icon/index.d.ts +1 -0
  31. package/dist/components/icon-button/icon-button.d.ts +21 -0
  32. package/dist/components/icon-button/index.d.ts +1 -0
  33. package/dist/components/icons/actions.d.ts +3 -0
  34. package/dist/components/icons/align-bottom.d.ts +3 -0
  35. package/dist/components/icons/align-horizontal-center.d.ts +3 -0
  36. package/dist/components/icons/align-left.d.ts +3 -0
  37. package/dist/components/icons/align-right.d.ts +3 -0
  38. package/dist/components/icons/align-top.d.ts +3 -0
  39. package/dist/components/icons/align-vertical-center.d.ts +3 -0
  40. package/dist/components/icons/annotation.d.ts +3 -0
  41. package/dist/components/icons/aspect-ratio.d.ts +3 -0
  42. package/dist/components/icons/auto-height.d.ts +3 -0
  43. package/dist/components/icons/auto-width.d.ts +3 -0
  44. package/dist/components/icons/blend-mode.d.ts +3 -0
  45. package/dist/components/icons/boolean.d.ts +3 -0
  46. package/dist/components/icons/checkmark-indeterminate.d.ts +3 -0
  47. package/dist/components/icons/checkmark.d.ts +3 -0
  48. package/dist/components/icons/chevron-down.d.ts +3 -0
  49. package/dist/components/icons/chevron-left.d.ts +3 -0
  50. package/dist/components/icons/chevron-right.d.ts +3 -0
  51. package/dist/components/icons/chevron-up.d.ts +3 -0
  52. package/dist/components/icons/circle.d.ts +3 -0
  53. package/dist/components/icons/clear.d.ts +3 -0
  54. package/dist/components/icons/close.d.ts +3 -0
  55. package/dist/components/icons/code.d.ts +3 -0
  56. package/dist/components/icons/comment.d.ts +3 -0
  57. package/dist/components/icons/component.d.ts +3 -0
  58. package/dist/components/icons/constraint-left.d.ts +3 -0
  59. package/dist/components/icons/constraint-top.d.ts +3 -0
  60. package/dist/components/icons/corner-radius.d.ts +3 -0
  61. package/dist/components/icons/design.d.ts +3 -0
  62. package/dist/components/icons/draw.d.ts +3 -0
  63. package/dist/components/icons/ellipsis.d.ts +3 -0
  64. package/dist/components/icons/expand.d.ts +3 -0
  65. package/dist/components/icons/eye.d.ts +3 -0
  66. package/dist/components/icons/eyedropper.d.ts +3 -0
  67. package/dist/components/icons/figma.d.ts +3 -0
  68. package/dist/components/icons/fill-gradient.d.ts +3 -0
  69. package/dist/components/icons/fill-pattern.d.ts +3 -0
  70. package/dist/components/icons/fill-solid.d.ts +3 -0
  71. package/dist/components/icons/fixed-size.d.ts +3 -0
  72. package/dist/components/icons/flip-horizontal.d.ts +3 -0
  73. package/dist/components/icons/flip-vertical.d.ts +3 -0
  74. package/dist/components/icons/frame.d.ts +3 -0
  75. package/dist/components/icons/help.d.ts +3 -0
  76. package/dist/components/icons/image.d.ts +3 -0
  77. package/dist/components/icons/index.d.ts +84 -0
  78. package/dist/components/icons/layers-collapse.d.ts +3 -0
  79. package/dist/components/icons/letter-spacing.d.ts +3 -0
  80. package/dist/components/icons/line-height.d.ts +3 -0
  81. package/dist/components/icons/link.d.ts +3 -0
  82. package/dist/components/icons/minus.d.ts +3 -0
  83. package/dist/components/icons/move.d.ts +3 -0
  84. package/dist/components/icons/number.d.ts +3 -0
  85. package/dist/components/icons/opacity.d.ts +3 -0
  86. package/dist/components/icons/palette.d.ts +3 -0
  87. package/dist/components/icons/panel-left-close.d.ts +3 -0
  88. package/dist/components/icons/pen.d.ts +3 -0
  89. package/dist/components/icons/play.d.ts +3 -0
  90. package/dist/components/icons/plus.d.ts +3 -0
  91. package/dist/components/icons/rectangle.d.ts +3 -0
  92. package/dist/components/icons/rotate-clockwise.d.ts +3 -0
  93. package/dist/components/icons/rotation.d.ts +3 -0
  94. package/dist/components/icons/ruler.d.ts +3 -0
  95. package/dist/components/icons/search.d.ts +3 -0
  96. package/dist/components/icons/select-matching.d.ts +3 -0
  97. package/dist/components/icons/shadow-bottom-left.d.ts +3 -0
  98. package/dist/components/icons/shadow-bottom-right.d.ts +3 -0
  99. package/dist/components/icons/shadow-down.d.ts +3 -0
  100. package/dist/components/icons/shadow-left.d.ts +3 -0
  101. package/dist/components/icons/shadow-right.d.ts +3 -0
  102. package/dist/components/icons/shadow-top-left.d.ts +3 -0
  103. package/dist/components/icons/shadow-top-right.d.ts +3 -0
  104. package/dist/components/icons/shadow-up.d.ts +3 -0
  105. package/dist/components/icons/sliders.d.ts +3 -0
  106. package/dist/components/icons/string.d.ts +3 -0
  107. package/dist/components/icons/styles.d.ts +3 -0
  108. package/dist/components/icons/text-align-center.d.ts +3 -0
  109. package/dist/components/icons/text-align-left.d.ts +3 -0
  110. package/dist/components/icons/text-align-right.d.ts +3 -0
  111. package/dist/components/icons/text-vertical-align-bottom.d.ts +3 -0
  112. package/dist/components/icons/text-vertical-align-middle.d.ts +3 -0
  113. package/dist/components/icons/text-vertical-align-top.d.ts +3 -0
  114. package/dist/components/icons/text.d.ts +3 -0
  115. package/dist/components/icons/variable-mode.d.ts +3 -0
  116. package/dist/components/icons/variable.d.ts +3 -0
  117. package/dist/components/icons/video.d.ts +3 -0
  118. package/dist/components/input/index.d.ts +1 -0
  119. package/dist/components/input/input.d.ts +9 -0
  120. package/dist/components/popover/index.d.ts +1 -0
  121. package/dist/components/popover/popover.d.ts +20 -0
  122. package/dist/components/radio-group/index.d.ts +1 -0
  123. package/dist/components/radio-group/radio-group.d.ts +20 -0
  124. package/dist/components/segmented-control/index.d.ts +1 -0
  125. package/dist/components/segmented-control/segmented-control.d.ts +24 -0
  126. package/dist/components/select/index.d.ts +1 -0
  127. package/dist/components/select/select.d.ts +40 -0
  128. package/dist/components/slider/index.d.ts +1 -0
  129. package/dist/components/slider/slider.d.ts +24 -0
  130. package/dist/components/switch/index.d.ts +1 -0
  131. package/dist/components/switch/switch.d.ts +6 -0
  132. package/dist/components/tabs/index.d.ts +1 -0
  133. package/dist/components/tabs/tabs.d.ts +12 -0
  134. package/dist/components/text/index.d.ts +1 -0
  135. package/dist/components/text/text.d.ts +47 -0
  136. package/dist/components/textarea/index.d.ts +1 -0
  137. package/dist/components/textarea/textarea.d.ts +6 -0
  138. package/dist/components/tooltip/index.d.ts +1 -0
  139. package/dist/components/tooltip/tooltip.d.ts +18 -0
  140. package/dist/components/value-field/index.d.ts +10 -0
  141. package/dist/components/value-field/named-colors.d.ts +2 -0
  142. package/dist/components/value-field/types.d.ts +15 -0
  143. package/dist/components/value-field/value-field-base.d.ts +17 -0
  144. package/dist/components/value-field/value-field-elements.d.ts +31 -0
  145. package/dist/components/value-field/value-field-hex.d.ts +29 -0
  146. package/dist/components/value-field/value-field-numeric-select.d.ts +18 -0
  147. package/dist/components/value-field/value-field-numeric.d.ts +62 -0
  148. package/dist/components/value-field/value-field-scrubber.d.ts +20 -0
  149. package/dist/figma-development-theme.css +2 -3
  150. package/dist/index.cjs +1 -64
  151. package/dist/index.d.ts +39 -874
  152. package/dist/index.mjs +4155 -9797
  153. package/dist/lib/color.d.ts +40 -0
  154. package/dist/lib/constants.d.ts +2 -0
  155. package/dist/lib/dom/focus.d.ts +14 -0
  156. package/dist/lib/dom/set-input-value.d.ts +8 -0
  157. package/dist/lib/number/clamp.d.ts +1 -0
  158. package/dist/lib/number/normalize.d.ts +13 -0
  159. package/dist/lib/react/add-class-name.d.ts +4 -0
  160. package/dist/lib/react/create-context.d.ts +14 -0
  161. package/dist/lib/react/use-compose-refs.d.ts +19 -0
  162. package/dist/lib/react/use-controllable-state.d.ts +14 -0
  163. package/dist/lib/react/use-select-on-input-click.d.ts +9 -0
  164. package/dist/styles.css +656 -107
  165. package/dist/tailwind.css +2621 -0
  166. package/package.json +70 -33
  167. package/dist/tailwind.preset.js +0 -255
package/dist/styles.css CHANGED
@@ -5,28 +5,28 @@
5
5
  --font-family-monospace: 'Roboto Mono', monospace;
6
6
  }
7
7
  :root {
8
- --space-0: 0px;
9
- --space-px: 1px;
10
- --space-0_5: 2px;
11
- --space-1: 4px;
12
- --space-1_5: 6px;
13
- --space-2: 8px;
14
- --space-2_5: 10px;
15
- --space-3: 12px;
16
- --space-3_5: 14px;
17
- --space-4: 16px;
18
- --space-5: 20px;
19
- --space-6: 24px;
20
- --space-7: 28px;
21
- --space-8: 32px;
22
- --space-9: 36px;
23
- --space-10: 40px;
24
- --space-11: 44px;
25
- --space-12: 48px;
26
- --space-13: 52px;
27
- --space-14: 56px;
28
- --space-15: 60px;
29
- --space-16: 64px;
8
+ --space-0: 0rem;
9
+ --space-px: 0.0625rem;
10
+ --space-0_5: 0.125rem;
11
+ --space-1: 0.25rem;
12
+ --space-1_5: 0.375rem;
13
+ --space-2: 0.5rem;
14
+ --space-2_5: 0.625rem;
15
+ --space-3: 0.75rem;
16
+ --space-3_5: 0.875rem;
17
+ --space-4: 1rem;
18
+ --space-5: 1.25rem;
19
+ --space-6: 1.5rem;
20
+ --space-7: 1.75rem;
21
+ --space-8: 2rem;
22
+ --space-9: 2.25rem;
23
+ --space-10: 2.5rem;
24
+ --space-11: 2.75rem;
25
+ --space-12: 3rem;
26
+ --space-13: 3.25rem;
27
+ --space-14: 3.5rem;
28
+ --space-15: 3.75rem;
29
+ --space-16: 4rem;
30
30
  }
31
31
  :root {
32
32
  --radius-extra-small: 0.0625rem;
@@ -79,15 +79,16 @@
79
79
  --letter-spacing-10: -0.0255rem;
80
80
  --letter-spacing-default: var(--letter-spacing-3);
81
81
  }
82
- :root {
82
+ :root,
83
+ .light,
84
+ .light-theme {
83
85
  --elevation-100: 0px 0px 0.5px rgba(0, 0, 0, 0.3), 0px 1px 3px rgba(0, 0, 0, 0.15);
84
86
  --elevation-200: 0px 0px 0.5px rgba(0, 0, 0, 0.18), 0px 3px 8px rgba(0, 0, 0, 0.1), 0px 1px 3px rgba(0, 0, 0, 0.1);
85
87
  --elevation-300: 0px 0px 0.5px rgba(0, 0, 0, 0.15), 0px 5px 12px rgba(0, 0, 0, 0.13), 0px 1px 3px rgba(0, 0, 0, 0.1);
86
88
  --elevation-400: 0px 0px 0.5px rgba(0, 0, 0, 0.12), 0px 10px 16px rgba(0, 0, 0, 0.12), 0px 2px 5px rgba(0, 0, 0, 0.15);
87
89
  --elevation-500: 0px 0px 0.5px rgba(0, 0, 0, 0.08), 0px 10px 24px rgba(0, 0, 0, 0.18), 0px 2px 5px rgba(0, 0, 0, 0.15);
88
90
  }
89
- .dark,
90
- .dark-theme {
91
+ .figma-dark {
91
92
  --elevation-100: 0px 0px 0.5px rgba(0, 0, 0, 0.5), 0px 1px 3px rgba(0, 0, 0, 0.4),
92
93
  inset 0px 0.5px 0px rgba(255, 255, 255, 0.1), inset 0px 0px 0.5px rgba(255, 255, 255, 0.3);
93
94
 
@@ -113,7 +114,7 @@
113
114
  --color-text-menu-tertiary: var(--figma-color-text-oncomponent-tertiary);
114
115
  --color-icon-menu: var(--figma-color-icon-oncomponent);
115
116
  --shadow-menu: var(--elevation-400);
116
- --font-size-menu: 12px;
117
+ --font-size-menu: var(--font-size-3);
117
118
 
118
119
  --color-bg-tooltip: #1e1e1e;
119
120
  --color-text-tooltip: #fff;
@@ -399,7 +400,7 @@
399
400
  .fp-Text:where(.fp-size-medium) {
400
401
  --font-size: var(--font-size-3);
401
402
  --line-height: var(--line-height-3);
402
- --letter-spacing: --letter-spacing-3;
403
+ --letter-spacing: var(--letter-spacing-3);
403
404
  }
404
405
  .fp-Text:where(.fp-size-large) {
405
406
  --font-size: var(--font-size-5);
@@ -429,7 +430,7 @@
429
430
  }
430
431
  .fp-Text code {
431
432
  font-family: var(--font-family-monospace);
432
- font-size: var(var(--font-size-2));
433
+ font-size: var(--font-size-2);
433
434
  background-color: var(--figma-color-bg-brand-tertiary);
434
435
  padding: 0.05rem 0.15rem;
435
436
  border-radius: var(--radius-extra-small);
@@ -522,6 +523,7 @@
522
523
  .fp-ValueFieldRoot {
523
524
  box-sizing: border-box;
524
525
  display: flex;
526
+ position: relative;
525
527
  align-items: center;
526
528
  border-radius: var(--radius-medium);
527
529
  padding: 0 1px;
@@ -551,6 +553,52 @@
551
553
  cursor: default;
552
554
  outline: 0;
553
555
  }
556
+ .fp-ValueFieldScrubber {
557
+ display: flex;
558
+ align-items: center;
559
+ align-self: stretch;
560
+ flex-shrink: 0;
561
+ cursor: ew-resize;
562
+ color: var(--figma-color-text-secondary);
563
+ --color-icon: var(--figma-color-icon-secondary);
564
+ }
565
+ .fp-ValueFieldScrubber:empty {
566
+ position: absolute;
567
+ top: 0;
568
+ bottom: 0;
569
+ left: 0;
570
+ z-index: 1;
571
+ width: var(--space-1);
572
+ }
573
+ .fp-ValueFieldScrubber[data-disabled] {
574
+ cursor: default;
575
+ color: var(--figma-color-text-disabled);
576
+ --color-icon: var(--figma-color-icon-disabled);
577
+ }
578
+ .fp-ValueFieldScrubber:not(:empty) + .fp-ValueFieldBase {
579
+ padding-left: 0;
580
+ }
581
+ .fp-ValueFieldScrubber .fp-ValueFieldLabel:last-child {
582
+ width: var(--space-6);
583
+ }
584
+ .fp-ValueFieldScrubberCursor {
585
+ position: fixed;
586
+ top: 0;
587
+ left: 0;
588
+ z-index: 2147483647;
589
+ width: 26px;
590
+ height: 14px;
591
+ pointer-events: none;
592
+ color: var(--figma-color-text-oninverse);
593
+ filter: drop-shadow(0 1px 1px var(--figma-color-bg-inverse));
594
+ }
595
+ .fp-ValueFieldScrubberCursorIcon {
596
+ display: block;
597
+ width: 26px;
598
+ height: 14px;
599
+ fill: var(--figma-color-bg-inverse);
600
+ stroke: var(--figma-color-text-oninverse);
601
+ }
554
602
  .fp-ValueFieldLabel {
555
603
  display: flex;
556
604
  align-items: center;
@@ -577,23 +625,34 @@
577
625
  }
578
626
  .fp-ValueFieldMulti {
579
627
  display: flex;
628
+ position: relative;
580
629
  border-radius: var(--radius-medium);
581
- outline-offset: -1px;
582
630
  box-sizing: border-box;
583
631
  border: 1px solid transparent;
584
632
  height: var(--space-6);
585
633
  background-color: var(--figma-color-bg-secondary);
586
634
  }
587
- .fp-ValueFieldMulti:hover:where(:not([data-disabled])) {
588
- border: 1px solid var(--figma-color-border);
635
+ .fp-ValueFieldMulti::after {
636
+ content: '';
637
+ position: absolute;
638
+ inset: -1px;
639
+ border: 1px solid transparent;
640
+ border-radius: inherit;
641
+ outline-offset: -1px;
642
+ pointer-events: none;
589
643
  }
590
- .fp-ValueFieldMulti:focus-within {
644
+ .fp-ValueFieldMulti:hover:where(:not([data-disabled]))::after {
645
+ border-color: var(--figma-color-border);
646
+ }
647
+ .fp-ValueFieldMulti:focus-within::after {
591
648
  outline: 1px solid var(--figma-color-border-selected);
592
649
  }
593
650
  .fp-ValueFieldMulti[data-disabled] {
594
- border: 1px solid var(--figma-color-border-disabled);
595
651
  background-color: var(--figma-color-bg);
596
652
  }
653
+ .fp-ValueFieldMulti[data-disabled]::after {
654
+ border-color: var(--figma-color-border-disabled);
655
+ }
597
656
  .fp-ValueFieldMulti .fp-ValueFieldRoot {
598
657
  height: var(--space-6);
599
658
  flex-grow: 1;
@@ -617,6 +676,91 @@
617
676
  background-color: transparent;
618
677
  padding-left: calc(var(--space-2) - 1px);
619
678
  }
679
+ .fp-ValueFieldMulti:has(> .fp-SliderRoot):hover:where(:not([data-disabled]))::after {
680
+ border-color: transparent;
681
+ }
682
+ .fp-ValueFieldMulti:has(> .fp-SliderRoot):focus-within::after {
683
+ outline: 0;
684
+ }
685
+ .fp-ValueFieldMulti:has(> .fp-SliderRoot) > .fp-SliderRoot {
686
+ align-self: center;
687
+ margin-inline: 10px 11px;
688
+ }
689
+ .fp-ValueFieldMulti:has(> .fp-SliderRoot) > .fp-ValueFieldRoot {
690
+ flex: 0 0 var(--space-14);
691
+ outline: 1px solid transparent;
692
+ outline-offset: -1px;
693
+ }
694
+ .fp-ValueFieldMulti:has(> .fp-SliderRoot) > .fp-ValueFieldRoot:hover:where(:not([data-disabled])) {
695
+ outline-color: var(--figma-color-border);
696
+ }
697
+ .fp-ValueFieldMulti:has(> .fp-SliderRoot) > .fp-ValueFieldRoot:focus-within {
698
+ outline-color: var(--figma-color-border-selected);
699
+ }
700
+ .fp-ValueFieldNumericSelect {
701
+ width: 100%;
702
+ }
703
+ .fp-ValueFieldNumericSelect:hover:where(:not([data-disabled]))::after {
704
+ border-color: transparent;
705
+ }
706
+ .fp-ValueFieldNumericSelect:has(.fp-ValueFieldNumericSelectField:hover):where(:not([data-disabled]))::after {
707
+ border-color: var(--figma-color-border);
708
+ }
709
+ .fp-ValueFieldNumericSelect .fp-ValueFieldNumericSelectField {
710
+ min-width: 0;
711
+ }
712
+ .fp-ValueFieldNumericSelectTrigger {
713
+ all: unset;
714
+ appearance: none;
715
+ box-sizing: border-box;
716
+ align-self: flex-start;
717
+ display: flex;
718
+ align-items: center;
719
+ justify-content: center;
720
+ flex: 0 0 var(--space-6);
721
+ height: var(--space-6);
722
+ margin-top: -1px;
723
+ border-left: 1px solid var(--figma-color-bg);
724
+ border-top-right-radius: var(--radius-medium);
725
+ border-bottom-right-radius: var(--radius-medium);
726
+ color: var(--figma-color-text);
727
+ --color-icon: var(--figma-color-icon);
728
+ }
729
+ .fp-ValueFieldNumericSelectTrigger:hover:where(:not(:disabled)) {
730
+ background-color: var(--figma-color-bg-tertiary);
731
+ }
732
+ .fp-ValueFieldNumericSelectTrigger:disabled {
733
+ color: var(--figma-color-text-disabled);
734
+ --color-icon: var(--figma-color-icon-disabled);
735
+ }
736
+ .fp-ValueFieldNumericSelectTrigger > span:first-child {
737
+ position: absolute;
738
+ left: var(--space-2);
739
+ top: 0;
740
+ width: 0;
741
+ height: var(--space-6);
742
+ overflow: hidden;
743
+ opacity: 0;
744
+ pointer-events: none;
745
+ white-space: nowrap;
746
+ }
747
+ .fp-ValueFieldNumericSelectPositioner {
748
+ display: flex;
749
+ flex-direction: column;
750
+ min-width: calc(var(--anchor-width) + var(--space-6) - 2px);
751
+ min-height: calc(var(--available-height) + var(--space-6) - 2px);
752
+ }
753
+ .fp-ValueFieldNumericSelectPositionerInOptions {
754
+ margin-top: calc(var(--space-2) + 1px) !important;
755
+ }
756
+ .fp-ValueFieldNumericSelectIcon {
757
+ display: flex;
758
+ align-items: center;
759
+ justify-content: center;
760
+ }
761
+ .fp-ValueFieldNumericSelectCurrentItem {
762
+ background-color: var(--color-bg-menu-selected);
763
+ }
620
764
  .fp-tooltip {
621
765
  box-sizing: border-box;
622
766
  padding: var(--space-1) var(--space-2);
@@ -631,10 +775,28 @@
631
775
  white-space: pre-wrap;
632
776
  word-break: break-word;
633
777
  border-radius: var(--radius-medium);
634
- box-shadow: var(--elevation-300-tooltip, 0 2px 7px rgba(0, 0, 0, 0.15));
778
+ box-shadow: var(--elevation-300, 0 2px 7px rgba(0, 0, 0, 0.15));
635
779
  }
636
- .fp-arrow {
780
+ .fp-tooltip-arrow {
637
781
  fill: var(--color-bg-tooltip);
782
+ width: var(--space-3_5);
783
+ height: 7px;
784
+ position: absolute;
785
+ }
786
+ .fp-tooltip-arrow[data-side='top'] {
787
+ top: calc(100% - 1px);
788
+ }
789
+ .fp-tooltip-arrow[data-side='bottom'] {
790
+ bottom: calc(100% - 1px);
791
+ transform: rotate(180deg);
792
+ }
793
+ .fp-tooltip-arrow[data-side='left'] {
794
+ left: calc(100% - 1px);
795
+ transform: rotate(-90deg);
796
+ }
797
+ .fp-tooltip-arrow[data-side='right'] {
798
+ right: calc(100% - 1px);
799
+ transform: rotate(90deg);
638
800
  }
639
801
  .fp-textarea {
640
802
  all: unset;
@@ -686,6 +848,7 @@
686
848
  letter-spacing: var(--letter-spacing-default);
687
849
  color: var(--color-text-menu);
688
850
  box-shadow: var(--elevation-400);
851
+ outline: 0;
689
852
  }
690
853
  .fp-MenuItem {
691
854
  position: relative;
@@ -714,9 +877,12 @@
714
877
  display: flex;
715
878
  align-items: center;
716
879
  height: var(--space-6);
717
- padding: 0 var(--space-4);
880
+ padding: 0 var(--space-2);
718
881
  color: var(--color-text-menu-tertiary);
719
882
  }
883
+ .fp-MenuLabel:where(.fp-MenuContent:has(.fp-MenuCheckboxItem, .fp-MenuRadioItem) .fp-MenuLabel) {
884
+ padding-left: var(--space-6);
885
+ }
720
886
  .fp-MenuGroup {
721
887
  padding: var(--space-2) 0;
722
888
  }
@@ -762,9 +928,19 @@
762
928
  letter-spacing: var(--letter-spacing-default);
763
929
  color: var(--figma-color-text);
764
930
  }
931
+ .fp-SelectTrigger[data-disabled] {
932
+ color: var(--figma-color-text-disabled);
933
+ border-color: var(--figma-color-border-disabled);
934
+ --color-icon: var(--figma-color-icon-disabled);
935
+ }
765
936
  .fp-SelectTriggerIcon {
766
937
  margin-left: auto;
767
938
  }
939
+ .fp-SelectPositioner {
940
+ display: flex;
941
+ flex-direction: column;
942
+ min-width: calc(var(--anchor-width) + var(--space-6) - 1px);
943
+ }
768
944
  .fp-SelectScrollUpButton,
769
945
  .fp-SelectScrollDownButton {
770
946
  position: absolute;
@@ -789,6 +965,117 @@
789
965
  bottom: 0;
790
966
  border-radius: 0 0 var(--radius-large) var(--radius-large);
791
967
  }
968
+ .fp-ComboboxTrigger {
969
+ cursor: default;
970
+ }
971
+ .fp-ComboboxTrigger:focus-visible {
972
+ border-color: var(--figma-color-border-selected);
973
+ }
974
+ .fp-ComboboxTrigger[data-disabled] {
975
+ color: var(--figma-color-text-disabled);
976
+ border-color: var(--figma-color-border-disabled);
977
+ }
978
+ .fp-ComboboxPositioner {
979
+ display: flex;
980
+ flex-direction: column;
981
+ min-width: var(--anchor-width);
982
+ max-width: min(var(--available-width), 24rem);
983
+ }
984
+ .fp-ComboboxPopup {
985
+ box-sizing: border-box;
986
+ display: flex;
987
+ flex-direction: column;
988
+ gap: var(--space-2);
989
+ max-height: min(var(--available-height), 20rem);
990
+ min-width: var(--anchor-width);
991
+ padding: var(--space-2);
992
+ background-color: var(--figma-color-bg);
993
+ border-radius: var(--radius-large);
994
+ box-shadow: var(--elevation-500);
995
+ color: var(--figma-color-text);
996
+ font-family: var(--font-family-default);
997
+ font-size: var(--font-size-default);
998
+ font-weight: var(--font-weight-default);
999
+ letter-spacing: var(--letter-spacing-default);
1000
+ outline: 0;
1001
+ overflow: auto;
1002
+ }
1003
+ .fp-ComboboxInputGroup {
1004
+ box-sizing: border-box;
1005
+ position: relative;
1006
+ flex-shrink: 0;
1007
+ --color-icon: var(--figma-color-icon-secondary);
1008
+ }
1009
+ .fp-ComboboxInputGroup > .fp-Icon {
1010
+ position: absolute;
1011
+ top: 50%;
1012
+ left: var(--space-2);
1013
+ z-index: 1;
1014
+ transform: translateY(-50%);
1015
+ }
1016
+ .fp-ComboboxInputGroup:has(.fp-ComboboxInput:disabled) {
1017
+ --color-icon: var(--figma-color-icon-disabled);
1018
+ }
1019
+ .fp-ComboboxInput {
1020
+ min-width: 0;
1021
+ padding-left: calc(var(--space-2) + var(--space-6) + var(--space-1));
1022
+ padding-right: var(--space-6);
1023
+ }
1024
+ .fp-ComboboxList {
1025
+ display: flex;
1026
+ flex-direction: column;
1027
+ }
1028
+ .fp-ComboboxItem {
1029
+ width: 100%;
1030
+ box-sizing: border-box;
1031
+ color: var(--figma-color-text);
1032
+ line-height: var(--line-height-default);
1033
+ }
1034
+ .fp-ComboboxItem[data-selected] {
1035
+ background-color: var(--figma-color-bg-selected-secondary);
1036
+ }
1037
+ .fp-ComboboxItem[data-highlighted] {
1038
+ background-color: var(--figma-color-bg-hover);
1039
+ }
1040
+ .fp-ComboboxItem[data-selected][data-highlighted] {
1041
+ background-color: var(--figma-color-bg-selected);
1042
+ }
1043
+ .fp-ComboboxItem[data-disabled] {
1044
+ color: var(--figma-color-text-disabled);
1045
+ }
1046
+ .fp-ComboboxItemIndicator {
1047
+ --color-icon: var(--figma-color-icon);
1048
+ }
1049
+ .fp-ComboboxMessage {
1050
+ display: flex;
1051
+ align-items: center;
1052
+ min-height: var(--space-6);
1053
+ padding: 0 var(--space-2);
1054
+ color: var(--figma-color-text-secondary);
1055
+ }
1056
+ .fp-ComboboxMessage:empty {
1057
+ min-height: 0;
1058
+ padding: 0;
1059
+ }
1060
+ .fp-ComboboxClear.fp-IconButton,
1061
+ .fp-ComboboxSearchClear.fp-IconButton {
1062
+ --color-icon: var(--figma-color-icon-secondary);
1063
+ }
1064
+ .fp-ComboboxClear.fp-IconButton:hover, .fp-ComboboxSearchClear.fp-IconButton:hover {
1065
+ background-color: transparent;
1066
+ --color-icon: var(--figma-color-icon-secondary-hover);
1067
+ }
1068
+ .fp-ComboboxClear.fp-IconButton[data-disabled] {
1069
+ --color-icon: var(--figma-color-icon-disabled);
1070
+ }
1071
+ .fp-ComboboxSearchClear.fp-IconButton {
1072
+ position: absolute;
1073
+ top: 0;
1074
+ right: 0;
1075
+ }
1076
+ .fp-ComboboxInput:placeholder-shown + .fp-ComboboxSearchClear.fp-IconButton {
1077
+ display: none;
1078
+ }
792
1079
  .fp-Button {
793
1080
  box-sizing: border-box;
794
1081
  background-clip: border-box;
@@ -812,6 +1099,7 @@
812
1099
  letter-spacing: var(--letter-spacing-default);
813
1100
  line-height: var(--line-height-default);
814
1101
  border-radius: var(--radius-medium);
1102
+ --color-icon: currentColor;
815
1103
  }
816
1104
  .fp-Button:where(.fp-variant-secondary) {
817
1105
  --button-color-bg: transparent;
@@ -957,76 +1245,105 @@
957
1245
  width: var(--space-8);
958
1246
  height: var(--space-8);
959
1247
  }
960
- .fp-IconButton[data-state='open']:where(.fp-active-appearance-subtle) {
1248
+ .fp-IconButton:where(.fp-active-appearance-subtle):where([data-state='open'], [data-popup-open]) {
961
1249
  background-color: var(--figma-color-bg-selected);
962
1250
  --color-icon: var(--figma-color-icon-brand);
963
1251
  }
964
- .fp-IconButton[data-state='open']:where(.fp-active-appearance-solid) {
1252
+ .fp-IconButton:where(.fp-active-appearance-solid):where([data-state='open'], [data-popup-open]) {
965
1253
  background-color: var(--figma-color-bg-selected-strong);
966
1254
  --color-icon: var(--figma-color-icon-onbrand);
967
1255
  }
1256
+ :root,
1257
+ .light,
1258
+ .light-theme {
1259
+ --switch-border-color: #00000033;
1260
+ --switch-thumb-outline-color-unchecked: #00000033;
1261
+ --switch-thumb-outline-color-checked: #0000001a;
1262
+ }
1263
+ .figma-dark {
1264
+ --switch-border-color: #ffffff33;
1265
+ }
968
1266
  .fp-switchRoot {
969
1267
  appearance: none;
970
1268
  box-sizing: border-box;
971
1269
  position: relative;
972
1270
  display: block;
973
- width: var(--space-6);
974
- height: var(--space-3);
1271
+ width: var(--space-8);
1272
+ height: var(--space-4);
975
1273
  padding: 0;
976
- background: linear-gradient(90deg, var(--figma-color-bg-brand) 0px 24px, var(--figma-color-icon-tertiary) 24px 48px);
977
- background-repeat: no-repeat;
978
- background-size: 200% 100%;
1274
+ background: none;
979
1275
  background-clip: padding-box;
980
1276
  border-radius: var(--radius-full);
981
1277
  border: 0;
982
- transition: background-position 0.1s ease-out;
1278
+ transition: background-position 0.08s ease-out;
1279
+
1280
+ /* Using ::before to render the background to create the real gap between the
1281
+ outline and the background in the focused mode as it is in Figma. */
983
1282
  }
984
- .fp-switchRoot:focus-visible {
985
- outline-offset: 2px;
986
- outline: 2px solid var(--figma-color-border-selected);
1283
+ .fp-switchRoot::before {
1284
+ box-sizing: border-box;
1285
+ position: absolute;
1286
+ inset: 0;
1287
+ border: 1px solid var(--switch-border-color);
1288
+ border-radius: var(--radius-full);
1289
+ background: none;
1290
+ content: '';
1291
+ }
1292
+ .fp-switchRoot[data-unchecked]::before {
1293
+ background: var(--figma-color-bg-secondary);
987
1294
  }
988
- .fp-switchRoot[data-disabled] {
989
- background: var(--figma-color-icon-disabled);
990
- border-color: var(--figma-color-icon-disabled);
1295
+ .fp-switchRoot[data-unchecked]:active::before {
1296
+ background: var(--figma-color-bg-tertiary);
991
1297
  }
992
- .fp-switchRoot[data-state='unchecked'] {
993
- background-position: -24px;
1298
+ .fp-switchRoot[data-checked]::before {
1299
+ background: var(--figma-color-bg-brand);
994
1300
  }
995
- .fp-switchRoot[data-state='checked'] {
996
- background-position: 0;
1301
+ .fp-switchRoot[data-checked]:active::before {
1302
+ background: var(--figma-color-bg-brand-pressed);
997
1303
  }
1304
+ .fp-switchRoot:focus-visible {
1305
+ outline-offset: -1px;
1306
+ outline: 1px solid var(--figma-color-border-selected-strong);
1307
+ }
1308
+ .fp-switchRoot:focus-visible::before {
1309
+ inset: 2px;
1310
+ }
1311
+ .fp-switchRoot[data-disabled][data-unchecked]::before {
1312
+ /* This gives it more contrast than the disabled checked state but this is
1313
+ how it is in Figma. ¯\_(ツ)_/¯ */
1314
+ background: var(--figma-color-bg-disabled);
1315
+ }
1316
+ .fp-switchRoot[data-disabled][data-checked]::before {
1317
+ background: var(--figma-color-bg-tertiary);
1318
+ }
998
1319
  .fp-switchThumb {
999
1320
  box-sizing: border-box;
1000
1321
  position: absolute;
1001
- top: 1px;
1002
- left: 1px;
1003
- height: var(--space-2_5);
1004
- width: var(--space-2_5);
1322
+ top: var(--space-1);
1323
+ left: var(--space-1);
1324
+ height: var(--space-2);
1325
+ width: var(--space-3);
1005
1326
  border-radius: var(--radius-full);
1327
+ outline: 1px solid var(--switch-thumb-outline-color-unchecked);
1006
1328
  background: var(--figma-color-icon-onbrand);
1007
- transition: all 0.1s ease-out;
1329
+ transition: all 0.08s ease-out;
1008
1330
  }
1009
1331
  .fp-switchThumb[data-disabled] {
1010
- background-color: var(--figma-color-bg);
1011
- border-color: var(--figma-color-bg);
1012
- }
1013
- .fp-switchThumb[data-state='unchecked'] {
1014
- left: 1px;
1332
+ background-color: var(--figma-color-icon-ondisabled);
1015
1333
  }
1016
- .fp-switchThumb[data-state='checked'] {
1017
- left: calc(100% - var(--space-2_5) - 1px);
1334
+ .fp-switchThumb[data-checked] {
1335
+ left: calc(100% - var(--space-3) - var(--space-1));
1336
+ outline-color: var(--switch-thumb-outline-color-checked);
1018
1337
  }
1019
1338
  :root,
1020
1339
  .light,
1021
1340
  .light-theme {
1022
- --slider-root-size: var(--space-6);
1023
- --slider-track-size: var(--space-4);
1024
- --slider-thumb-width: var(--space-4);
1025
- --color-border-slider-track: #0000001a;
1341
+ --slider-track-border-color: #0000001a;
1342
+ --slider-track-bg: var(--figma-color-bg-secondary);
1343
+ --slider-thumb-bg: transparent;
1026
1344
  }
1027
- .dark,
1028
- .dark-theme {
1029
- --color-border-slider-track: #ffffff1a;
1345
+ .figma-dark {
1346
+ --slider-track-border-color: #ffffff1a;
1030
1347
  }
1031
1348
  .fp-SliderRoot {
1032
1349
  position: relative;
@@ -1039,31 +1356,76 @@
1039
1356
  }
1040
1357
  .fp-SliderRoot[data-orientation='horizontal'] {
1041
1358
  height: var(--slider-root-size);
1042
- border-width: 0 calc(var(--slider-thumb-width) / 2);
1359
+ border-width: 0 var(--slider-thumb-inset);
1043
1360
  }
1044
1361
  .fp-SliderRoot[data-orientation='vertical'] {
1045
1362
  flex-direction: column;
1046
1363
  width: var(--slider-root-size);
1047
- border-width: calc(var(--slider-thumb-width) / 2) 0;
1364
+ border-width: var(--slider-thumb-inset) 0;
1365
+ }
1366
+ .fp-SliderRoot:where(.fp-size-large) {
1367
+ --slider-root-size: var(--space-6);
1368
+ --slider-track-size: var(--space-4);
1369
+ --slider-thumb-size: var(--space-4);
1370
+ --slider-thumb-inset: calc(var(--slider-thumb-size) / 2);
1371
+ --slider-hint-width: var(--space-1);
1372
+ --slider-hint-height: var(--space-1);
1373
+ --slider-hint-offset: 0px;
1374
+ --slider-hint-radius: var(--radius-full);
1375
+ }
1376
+ .fp-SliderRoot:where(.fp-size-small) {
1377
+ --slider-root-size: var(--space-4);
1378
+ --slider-track-size: var(--space-1_5);
1379
+ --slider-thumb-size: var(--space-3);
1380
+ --slider-thumb-inset: calc(var(--slider-track-size) / 2);
1381
+ --slider-hint-width: 1px;
1382
+ --slider-hint-height: 3px;
1383
+ --slider-hint-offset: calc(var(--slider-track-size) / 2 + 3px + var(--slider-hint-height) / 2);
1384
+ --slider-hint-radius: 0;
1385
+ --slider-track-bg: var(--figma-color-bg-tertiary);
1386
+ --slider-track-border-color: transparent;
1387
+ --slider-thumb-bg: var(--figma-color-icon-onbrand);
1388
+ }
1389
+ .fp-SliderControl {
1390
+ position: relative;
1391
+ display: flex;
1392
+ align-items: center;
1393
+ flex-grow: 1;
1394
+ width: 100%;
1395
+ height: 100%;
1396
+ outline: 0;
1397
+ }
1398
+ .fp-SliderControl::before {
1399
+ content: '';
1400
+ position: absolute;
1401
+ }
1402
+ .fp-SliderRoot[data-orientation='horizontal'] .fp-SliderControl::before {
1403
+ inset: calc(50% - var(--space-11) / 2) calc((var(--slider-thumb-inset) + var(--space-3)) * -1);
1404
+ }
1405
+ .fp-SliderRoot[data-orientation='vertical'] .fp-SliderControl {
1406
+ flex-direction: column;
1407
+ }
1408
+ .fp-SliderRoot[data-orientation='vertical'] .fp-SliderControl::before {
1409
+ inset: calc((var(--slider-thumb-inset) + var(--space-3)) * -1) calc(50% - var(--space-11) / 2);
1048
1410
  }
1049
1411
  .fp-SliderTrack {
1050
1412
  box-sizing: border-box;
1051
- position: relative;
1052
- overflow: hidden;
1413
+ position: static;
1414
+ overflow: visible;
1053
1415
  flex-grow: 1;
1054
- background-color: var(--figma-color-bg-secondary);
1416
+ background: var(--slider-track-bg);
1055
1417
  border-radius: var(--radius-full);
1056
- outline: 1px solid var(--color-border-slider-track);
1418
+ outline: 1px solid var(--slider-track-border-color);
1057
1419
  outline-offset: -1px;
1058
1420
  }
1059
1421
  .fp-SliderTrack[data-orientation='horizontal'] {
1060
- margin-left: calc((var(--slider-thumb-width) / 2) * -1);
1061
- margin-right: calc((var(--slider-thumb-width) / 2) * -1);
1422
+ margin-left: calc(var(--slider-thumb-inset) * -1);
1423
+ margin-right: calc(var(--slider-thumb-inset) * -1);
1062
1424
  height: var(--slider-track-size);
1063
1425
  }
1064
1426
  .fp-SliderTrack[data-orientation='vertical'] {
1065
- margin-top: calc((var(--slider-thumb-width) / 2) * -1);
1066
- margin-bottom: calc((var(--slider-thumb-width) / 2) * -1);
1427
+ margin-top: calc(var(--slider-thumb-inset) * -1);
1428
+ margin-bottom: calc(var(--slider-thumb-inset) * -1);
1067
1429
  width: var(--slider-track-size);
1068
1430
  }
1069
1431
  .fp-SliderRange {
@@ -1074,13 +1436,13 @@
1074
1436
  }
1075
1437
  .fp-SliderRange[data-orientation='horizontal'] {
1076
1438
  height: var(--slider-track-size);
1077
- margin-left: calc((var(--slider-thumb-width) / 2) * -1);
1078
- margin-right: calc((var(--slider-thumb-width) / 2) * -1);
1439
+ margin-left: calc(var(--slider-thumb-inset) * -1);
1440
+ margin-right: calc(var(--slider-thumb-inset) * -1);
1079
1441
  }
1080
1442
  .fp-SliderRange[data-orientation='vertical'] {
1081
1443
  width: var(--slider-track-size);
1082
- margin-top: calc((var(--slider-thumb-width) / 2) * -1);
1083
- margin-bottom: calc((var(--slider-thumb-width) / 2) * -1);
1444
+ margin-top: calc(var(--slider-thumb-inset) * -1);
1445
+ margin-bottom: calc(var(--slider-thumb-inset) * -1);
1084
1446
  }
1085
1447
  .fp-SliderRange[data-disabled] {
1086
1448
  background-color: var(--figma-color-bg-disabled);
@@ -1088,9 +1450,10 @@
1088
1450
  .fp-SliderThumb {
1089
1451
  box-sizing: border-box;
1090
1452
  display: block;
1091
- width: var(--slider-track-size);
1092
- height: var(--slider-track-size);
1093
- background-color: var(--figma-color-icon-onbrand);
1453
+ z-index: 1;
1454
+ width: var(--slider-thumb-size);
1455
+ height: var(--slider-thumb-size);
1456
+ background-color: var(--slider-thumb-bg);
1094
1457
  border: 4px solid var(--figma-color-icon-onbrand);
1095
1458
  border-radius: var(--radius-full);
1096
1459
  box-shadow: var(--elevation-200);
@@ -1104,23 +1467,25 @@
1104
1467
  .fp-SliderThumb.fp-SliderThumb-focusVisible:focus-visible {
1105
1468
  outline: 1px solid var(--figma-color-border-selected);
1106
1469
  }
1107
- .fp-SliderThumb.fp-SliderThumb-modified {
1108
- background-color: transparent;
1470
+ .fp-SliderThumb.fp-SliderThumb-baseValue {
1471
+ --slider-thumb-bg: var(--figma-color-icon-onbrand);
1109
1472
  }
1110
1473
  .fp-SliderHint {
1111
1474
  position: absolute;
1112
1475
  display: block;
1113
- width: var(--space-1);
1114
- height: var(--space-1);
1115
1476
  background-color: var(--figma-color-icon-tertiary);
1116
- border-radius: var(--radius-full);
1477
+ border-radius: var(--slider-hint-radius);
1117
1478
  }
1118
1479
  .fp-SliderHint[data-orientation='horizontal'] {
1119
- top: 50%;
1480
+ top: calc(50% + var(--slider-hint-offset));
1481
+ width: var(--slider-hint-width);
1482
+ height: var(--slider-hint-height);
1120
1483
  transform: translateY(-50%);
1121
1484
  }
1122
1485
  .fp-SliderHint[data-orientation='vertical'] {
1123
- left: 50%;
1486
+ left: calc(50% + var(--slider-hint-offset));
1487
+ width: var(--slider-hint-height);
1488
+ height: var(--slider-hint-width);
1124
1489
  transform: translateX(-50%);
1125
1490
  }
1126
1491
  .fp-SliderHint.fp-SliderHint-baseValue {
@@ -1242,7 +1607,7 @@
1242
1607
  .fp-TabsList {
1243
1608
  display: flex;
1244
1609
  overflow-y: auto;
1245
- gap: var(--space-2);
1610
+ gap: var(--space-1);
1246
1611
  }
1247
1612
  .fp-TabsTrigger {
1248
1613
  all: unset;
@@ -1250,6 +1615,7 @@
1250
1615
  display: flex;
1251
1616
  align-items: center;
1252
1617
  justify-content: center;
1618
+ flex-shrink: 0;
1253
1619
  height: var(--space-6);
1254
1620
  padding: 0 var(--space-2);
1255
1621
  font-family: var(--font-family-default);
@@ -1257,17 +1623,22 @@
1257
1623
  font-weight: var(--font-weight-default);
1258
1624
  letter-spacing: var(--letter-spacing-default);
1259
1625
  line-height: var(--line-height-default);
1626
+ color: var(--figma-color-text-secondary);
1627
+ --color-icon: var(--figma-color-icon-secondary);
1628
+ border-radius: var(--radius-medium);
1629
+ white-space: nowrap;
1260
1630
  }
1261
- .fp-TabsTrigger:where([data-state='inactive']) {
1262
- color: var(--figma-color-text-secondary);
1263
- --color-icon: var(--figma-color-icon-secondary);
1631
+ .fp-TabsTrigger:hover:where(:not([data-disabled])) {
1632
+ background: var(--figma-color-bg-secondary);
1264
1633
  }
1265
- .fp-TabsTrigger:where([data-state='active']) {
1634
+ .fp-TabsTrigger:where([data-active]) {
1266
1635
  font-weight: var(--font-weight-strong);
1267
1636
  color: var(--figma-color-text);
1268
1637
  --color-icon: var(--figma-color-icon);
1269
1638
  background: var(--figma-color-bg-secondary);
1270
- border-radius: var(--radius-medium);
1639
+ }
1640
+ .fp-TabsTrigger:where([data-disabled]) {
1641
+ color: var(--figma-color-text-disabled);
1271
1642
  }
1272
1643
  .fp-CheckboxRoot {
1273
1644
  position: relative;
@@ -1352,6 +1723,7 @@
1352
1723
  .fp-RadioGroupItem {
1353
1724
  all: unset;
1354
1725
  box-sizing: border-box;
1726
+ display: inline-block;
1355
1727
  width: 16px;
1356
1728
  height: 16px;
1357
1729
  background-color: var(--figma-color-bg);
@@ -1363,14 +1735,14 @@
1363
1735
  .fp-RadioGroupItem:focus-visible {
1364
1736
  outline-color: var(--figma-color-border-selected);
1365
1737
  }
1366
- .fp-RadioGroupItem[data-state='checked'] {
1738
+ .fp-RadioGroupItem[data-checked] {
1367
1739
  background-color: var(--figma-color-icon);
1368
1740
  border-color: var(--figma-color-bg);
1369
1741
  }
1370
1742
  .fp-RadioGroupItem[data-disabled] {
1371
1743
  outline-color: var(--figma-color-icon-disabled);
1372
1744
  }
1373
- .fp-RadioGroupItem[data-disabled][data-state='checked'] {
1745
+ .fp-RadioGroupItem[data-disabled][data-checked] {
1374
1746
  background-color: var(--figma-color-icon-disabled);
1375
1747
  }
1376
1748
  .fp-RadioGroupLabel {
@@ -1407,7 +1779,7 @@
1407
1779
  white-space: nowrap;
1408
1780
  --color-icon: var(--figma-color-icon-secondary);
1409
1781
  }
1410
- .fp-SegmentedControlItem[aria-checked='true'] {
1782
+ .fp-SegmentedControlItem[data-pressed] {
1411
1783
  --color-icon: var(--figma-color-icon);
1412
1784
  background-color: var(--figma-color-bg);
1413
1785
  box-shadow: inset 0 0 0 var(--space-px) var(--figma-color-border);
@@ -1442,10 +1814,187 @@
1442
1814
  font-weight: var(--font-weight-default);
1443
1815
  letter-spacing: var(--letter-spacing-default);
1444
1816
  line-height: var(--line-height-default);
1817
+ color: var(--figma-color-text-secondary);
1818
+ }
1819
+ .fp-CollapsibleIndicator {
1820
+ --color-icon: var(--figma-color-icon-secondary);
1445
1821
  }
1446
- [data-state='open'] > .fp-CollapsibleIndicator {
1822
+ [data-panel-open] > .fp-CollapsibleIndicator {
1447
1823
  transform: rotate(90deg);
1448
1824
  }
1449
1825
  .fp-CollapsibleContent {
1450
1826
  margin-left: var(--space-4);
1451
1827
  }
1828
+ .fp-ColorPickerHueSlider:where(.fp-color-model-hsv, .fp-color-model-hsl, .fp-color-model-rgb, .fp-color-model-hex) {
1829
+ --slider-track-bg: linear-gradient(
1830
+ 90deg,
1831
+ rgba(255, 0, 0, 1) var(--slider-thumb-inset),
1832
+ rgba(255, 48, 0, 1),
1833
+ rgba(255, 96, 0, 1),
1834
+ rgba(255, 143, 0, 1),
1835
+ rgba(255, 191, 0, 1),
1836
+ rgba(255, 239, 0, 1),
1837
+ rgba(223, 255, 0, 1),
1838
+ rgba(175, 255, 0, 1),
1839
+ rgba(128, 255, 0, 1),
1840
+ rgba(80, 255, 0, 1),
1841
+ rgba(32, 255, 0, 1),
1842
+ rgba(0, 255, 16, 1),
1843
+ rgba(0, 255, 64, 1),
1844
+ rgba(0, 255, 112, 1),
1845
+ rgba(0, 255, 159, 1),
1846
+ rgba(0, 255, 207, 1),
1847
+ rgba(0, 255, 255, 1),
1848
+ rgba(0, 207, 255, 1),
1849
+ rgba(0, 159, 255, 1),
1850
+ rgba(0, 112, 255, 1),
1851
+ rgba(0, 64, 255, 1),
1852
+ rgba(0, 16, 255, 1),
1853
+ rgba(32, 0, 255, 1),
1854
+ rgba(80, 0, 255, 1),
1855
+ rgba(127, 0, 255, 1),
1856
+ rgba(175, 0, 255, 1),
1857
+ rgba(223, 0, 255, 1),
1858
+ rgba(255, 0, 239, 1),
1859
+ rgba(255, 0, 191, 1),
1860
+ rgba(255, 0, 143, 1),
1861
+ rgba(255, 0, 96, 1),
1862
+ rgba(255, 0, 48, 1) calc(100% - var(--slider-thumb-inset))
1863
+ );
1864
+ }
1865
+ @supports (color: color(display-p3 1 1 1)) {
1866
+ @media (color-gamut: p3) {
1867
+ .fp-ColorPickerHueSlider:where(.fp-color-model-hsv, .fp-color-model-hsl):where(.fp-color-space-display-p3) {
1868
+ --slider-track-bg: linear-gradient(
1869
+ 90deg,
1870
+ color(display-p3 1 0 0) var(--slider-thumb-inset),
1871
+ color(display-p3 1 0.1875 0),
1872
+ color(display-p3 1 0.375 0),
1873
+ color(display-p3 1 0.5625 0),
1874
+ color(display-p3 1 0.75 0),
1875
+ color(display-p3 1 0.9375 0),
1876
+ color(display-p3 0.875 1 0),
1877
+ color(display-p3 0.6875 1 0),
1878
+ color(display-p3 0.5 1 0),
1879
+ color(display-p3 0.3125 1 0),
1880
+ color(display-p3 0.125 1 0),
1881
+ color(display-p3 0 1 0.0625),
1882
+ color(display-p3 0 1 0.25),
1883
+ color(display-p3 0 1 0.4375),
1884
+ color(display-p3 0 1 0.625),
1885
+ color(display-p3 0 1 0.8125),
1886
+ color(display-p3 0 1 1),
1887
+ color(display-p3 0 0.8125 1),
1888
+ color(display-p3 0 0.625 1),
1889
+ color(display-p3 0 0.4375 1),
1890
+ color(display-p3 0 0.25 1),
1891
+ color(display-p3 0 0.0625 1),
1892
+ color(display-p3 0.125 0 1),
1893
+ color(display-p3 0.3125 0 1),
1894
+ color(display-p3 0.5 0 1),
1895
+ color(display-p3 0.6875 0 1),
1896
+ color(display-p3 0.875 0 1),
1897
+ color(display-p3 1 0 0.9375),
1898
+ color(display-p3 1 0 0.75),
1899
+ color(display-p3 1 0 0.5625),
1900
+ color(display-p3 1 0 0.375),
1901
+ color(display-p3 1 0 0.1875) calc(100% - var(--slider-thumb-inset))
1902
+ );
1903
+ }
1904
+ }
1905
+ }
1906
+ .fp-ColorPickerAlphaSlider {
1907
+ --track-bg-step-1: var(--track-bg-transparent-srgb);
1908
+ --track-bg-step-2: var(--track-bg-opaque-srgb);
1909
+ --slider-thumb-bg: var(--thumb-bg-srgb);
1910
+
1911
+ --slider-track-bg: linear-gradient(
1912
+ to right,
1913
+ var(--track-bg-step-1) 0 var(--slider-thumb-inset),
1914
+ var(--track-bg-step-2) calc(100% - var(--slider-thumb-inset)) 100%
1915
+ ),
1916
+ url('data:image/svg+xml;utf8,%3Csvg%20width%3D%222%22%20height%3D%222%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20d%3D%22M0%200h1v2h1V1H0%22%20fill-rule%3D%22nonzero%22%20fill%3D%22%23e1e1e1%22/%3E%3C/svg%3E')
1917
+ 0 0 / auto 66.66%,
1918
+ #fff;
1919
+ }
1920
+ @supports (color: color(display-p3 1 1 1)) {
1921
+ @media (color-gamut: p3) {
1922
+ .fp-ColorPickerAlphaSlider:where(.fp-color-space-display-p3) {
1923
+ --slider-thumb-bg: var(--thumb-bg-p3);
1924
+ --track-bg-step-1: var(--track-bg-transparent-p3);
1925
+ --track-bg-step-2: var(--track-bg-opaque-p3);
1926
+ }
1927
+ }
1928
+ }
1929
+ .fp-ColorPickerArea {
1930
+ position: relative;
1931
+ width: 100%;
1932
+ aspect-ratio: 1 / 1;
1933
+ }
1934
+ .fp-ColorPickerAreaCanvas {
1935
+ width: 100%;
1936
+ height: 100%;
1937
+ outline-width: 1px;
1938
+ outline-style: solid;
1939
+ outline-color: #0000001a; /*TODO: color-bordertranslucent*/
1940
+ outline-offset: -1px;
1941
+ --base-color: var(--base-color-srgb);
1942
+ --gradient-step-black: rgb(0 0 0);
1943
+ --gradient-step-black-transparent: rgb(0 0 0 / 0);
1944
+ --gradient-step-white: rgb(255 255 255);
1945
+ --gradient-step-white-transparent: rgb(255 255 255 / 0);
1946
+ --gradient-step-gray: rgb(128 128 128);
1947
+ --gradient-step-gray-transparent: rgb(128 128 128 / 0);
1948
+ }
1949
+ @supports (color: color(display-p3 1 1 1)) {
1950
+ @media (color-gamut: p3) {
1951
+ .fp-ColorPickerAreaCanvas:where(.fp-color-space-display-p3) {
1952
+ --base-color: var(--base-color-p3);
1953
+ --gradient-step-black: color(display-p3 0 0 0);
1954
+ --gradient-step-black-transparent: color(display-p3 0 0 0 / 0);
1955
+ --gradient-step-white: color(display-p3 1 1 1);
1956
+ --gradient-step-white-transparent: color(display-p3 1 1 1 / 0);
1957
+ --gradient-step-gray: color(display-p3 0.5 0.5 0.5);
1958
+ --gradient-step-gray-transparent: color(display-p3 0.5 0.5 0.5 / 0);
1959
+ }
1960
+ }
1961
+ }
1962
+ .fp-ColorPickerAreaCanvas:where(.fp-color-model-hsv, .fp-color-model-hex, .fp-color-model-rgb) {
1963
+ background: linear-gradient(to bottom, var(--gradient-step-black-transparent) 0%, var(--gradient-step-black) 100%),
1964
+ linear-gradient(to right, var(--gradient-step-white) 0%, var(--base-color) 100%);
1965
+ }
1966
+ .fp-ColorPickerAreaCanvas:where(.fp-color-model-hsl) {
1967
+ background: linear-gradient(
1968
+ to bottom,
1969
+ var(--gradient-step-white) 0%,
1970
+ var(--gradient-step-white-transparent) 49.99%,
1971
+ var(--gradient-step-black-transparent) 50.01%,
1972
+ var(--gradient-step-black) 100%
1973
+ ),
1974
+ linear-gradient(to right, var(--gradient-step-gray) 0%, var(--gradient-step-gray-transparent) 100%),
1975
+ var(--base-color);
1976
+ }
1977
+ .fp-ColorPickerThumb {
1978
+ position: absolute;
1979
+ box-sizing: border-box;
1980
+ box-shadow: var(--elevation-200);
1981
+ left: 0;
1982
+ transform: translate(-50%, -50%);
1983
+ width: 16px;
1984
+ height: 16px;
1985
+ border-radius: 8px;
1986
+ border-style: solid;
1987
+ border-width: 4px;
1988
+ border-color: white;
1989
+ background: var(--thumb-bg-srgb);
1990
+ }
1991
+ .fp-ColorPickerThumb:focus-visible {
1992
+ outline: 1px solid var(--figma-color-border-selected);
1993
+ }
1994
+ @supports (color: color(display-p3 1 1 1)) {
1995
+ @media (color-gamut: p3) {
1996
+ .fp-ColorPickerThumb:where(.fp-color-space-display-p3) {
1997
+ background: var(--thumb-bg-p3);
1998
+ }
1999
+ }
2000
+ }