@rogieking/figui3 4.15.10 → 5.1.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.
package/components.css CHANGED
@@ -349,6 +349,13 @@
349
349
  --icon-24-swap: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.35355 6.35355C8.54882 6.15829 8.54882 5.84171 8.35355 5.64645C8.15829 5.45118 7.84171 5.45118 7.64645 5.64645L5.14645 8.14645C4.95118 8.34171 4.95118 8.65829 5.14645 8.85355L7.64645 11.3536C7.84171 11.5488 8.15829 11.5488 8.35355 11.3536C8.54882 11.1583 8.54882 10.8417 8.35355 10.6464L6.70711 9H18.5C18.7761 9 19 8.77614 19 8.5C19 8.22386 18.7761 8 18.5 8H6.70711L8.35355 6.35355ZM15.6464 13.3536C15.4512 13.1583 15.4512 12.8417 15.6464 12.6464C15.8417 12.4512 16.1583 12.4512 16.3536 12.6464L18.8536 15.1464C19.0488 15.3417 19.0488 15.6583 18.8536 15.8536L16.3536 18.3536C16.1583 18.5488 15.8417 18.5488 15.6464 18.3536C15.4512 18.1583 15.4512 17.8417 15.6464 17.6464L17.2929 16H5.5C5.22386 16 5 15.7761 5 15.5C5 15.2239 5.22386 15 5.5 15H17.2929L15.6464 13.3536Z' fill='currentColor'/%3E%3C/svg%3E");
350
350
  --icon-24-play: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7 7.75274C7 6.4055 8.45837 5.56342 9.625 6.23712L17.2109 10.619C18.277 11.2349 18.2771 12.7745 17.2109 13.3904L9.625 17.7723C8.45843 18.4459 7.00013 17.6038 7 16.2566V7.75274ZM9.125 7.10333C8.625 6.8145 8 7.17532 8 7.75274V16.2566C8.00013 16.834 8.62505 17.1949 9.125 16.9061L16.7109 12.5242C17.1107 12.2933 17.1106 11.7162 16.7109 11.4852L9.125 7.10333Z' fill='currentColor'/%3E%3C/svg%3E");
351
351
  --icon-24-pause: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.65332 6.00781C10.4097 6.08461 11 6.72334 11 7.5V16.5C11 17.2767 10.4097 17.9154 9.65332 17.9922L9.5 18H7.5C6.67157 18 6 17.3284 6 16.5V7.5C6 6.67157 6.67157 6 7.5 6H9.5L9.65332 6.00781ZM16.6533 6.00781C17.4097 6.08461 18 6.72334 18 7.5V16.5C18 17.2767 17.4097 17.9154 16.6533 17.9922L16.5 18H14.5C13.6716 18 13 17.3284 13 16.5V7.5C13 6.67157 13.6716 6 14.5 6H16.5L16.6533 6.00781ZM7.5 7C7.22386 7 7 7.22386 7 7.5V16.5C7 16.7761 7.22386 17 7.5 17H9.5C9.77614 17 10 16.7761 10 16.5V7.5C10 7.22386 9.77614 7 9.5 7H7.5ZM14.5 7C14.2239 7 14 7.22386 14 7.5V16.5C14 16.7761 14.2239 17 14.5 17H16.5C16.7761 17 17 16.7761 17 16.5V7.5C17 7.22386 16.7761 7 16.5 7H14.5Z' fill='currentColor'/%3E%3C/svg%3E");
352
+ --icon-24-search: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.5 6C14.5376 6 17 8.46243 17 11.5C17 12.8387 16.5206 14.0648 15.7256 15.0186L17.8535 17.1465C18.0488 17.3417 18.0488 17.6582 17.8535 17.8535C17.6583 18.0486 17.3417 18.0487 17.1465 17.8535L15.0186 15.7256C14.0648 16.5206 12.8387 17 11.5 17C8.46243 17 6 14.5376 6 11.5C6 8.46243 8.46243 6 11.5 6ZM11.5 7C9.01472 7 7 9.01472 7 11.5C7 13.9853 9.01472 16 11.5 16C13.9853 16 16 13.9853 16 11.5C16 9.01472 13.9853 7 11.5 7Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
353
+ --icon-16-close: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.1464 4.14645C11.3417 3.95118 11.6582 3.95118 11.8534 4.14645C12.0487 4.34171 12.0487 4.65822 11.8534 4.85348L8.70696 7.99996L11.8534 11.1464C12.0487 11.3417 12.0487 11.6582 11.8534 11.8535C11.6582 12.0487 11.3417 12.0487 11.1464 11.8535L7.99993 8.70699L4.85345 11.8535C4.65819 12.0487 4.34168 12.0487 4.14642 11.8535C3.95115 11.6582 3.95115 11.3417 4.14642 11.1464L7.2929 7.99996L4.14642 4.85348C3.95115 4.65822 3.95115 4.34171 4.14642 4.14645C4.34168 3.95118 4.65819 3.95118 4.85345 4.14645L7.99993 7.29293L11.1464 4.14645Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
354
+ --icon-24-visible: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 7C16.6667 7 19 10.75 19 12C19 13.25 16.6667 17 12 17C7.47888 17 5.14784 13.4802 5.00684 12.124L5 12C5 10.75 7.33333 7 12 7ZM12 8C9.95481 8 8.44137 8.81596 7.43359 9.76074C6.92603 10.2366 6.55333 10.7404 6.3125 11.1758C6.05459 11.6422 6 11.9345 6 12C6.00002 12.0656 6.05462 12.3579 6.3125 12.8242C6.55334 13.2597 6.92602 13.7634 7.43359 14.2393C8.44138 15.1841 9.95482 16 12 16C14.0452 16 15.5586 15.1841 16.5664 14.2393C17.074 13.7634 17.4467 13.2597 17.6875 12.8242C17.9454 12.3578 18 12.0655 18 12C18 11.9345 17.9454 11.6422 17.6875 11.1758C17.4467 10.7403 17.074 10.2366 16.5664 9.76074C15.5586 8.81595 14.0452 8 12 8ZM12 10C13.1046 10 14 10.8954 14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10ZM12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
355
+ --icon-16-visible: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 4C11.5 4 14 7 14 8C14 9 11.5 12 8 12C4.5 12 2 9 2 8C2 7 4.5 4 8 4ZM8 5C6.60166 5 5.36649 5.57587 4.44238 6.30176C3.98232 6.66314 3.61689 7.04836 3.36328 7.38867C3.13535 7.69455 3.04058 7.90734 3.00977 8C3.04058 8.09266 3.13535 8.30545 3.36328 8.61133C3.61689 8.95164 3.98232 9.33686 4.44238 9.69824C5.36649 10.4241 6.60166 11 8 11C9.39834 11 10.6335 10.4241 11.5576 9.69824C12.0177 9.33686 12.3831 8.95163 12.6367 8.61133C12.8644 8.30577 12.9583 8.09281 12.9893 8C12.9583 7.90719 12.8644 7.69423 12.6367 7.38867C12.3831 7.04836 12.0177 6.66314 11.5576 6.30176C10.6335 5.57587 9.39834 5 8 5ZM8 7C8.55228 7 9 7.44772 9 8C9 8.55228 8.55228 9 8 9C7.44772 9 7 8.55228 7 8C7 7.44772 7.44772 7 8 7Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
356
+ --icon-24-hidden: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.51343 9C5.78194 9 6.03192 9.21752 6.13647 9.46484C6.18062 9.56923 6.2378 9.68955 6.31225 9.82422C6.55304 10.2596 6.92594 10.7635 7.43335 11.2393C8.44103 12.184 9.95488 12.9998 11.9998 13C14.0447 13 15.5584 12.1839 16.5662 11.2393C17.0736 10.7635 17.4464 10.2596 17.6873 9.82422C17.7588 9.69491 17.8147 9.57896 17.8582 9.47754C17.9668 9.22373 18.2237 9.0001 18.4998 9C18.7757 9 18.9947 9.22463 18.9167 9.48926C18.7151 10.1715 18.146 11.1394 17.2107 12.0039L18.3533 13.1465C18.5485 13.3417 18.5485 13.6583 18.3533 13.8535C18.158 14.0486 17.8414 14.0487 17.6462 13.8535L16.4275 12.6348C15.8837 13.0163 15.2541 13.3499 14.5378 13.5918L14.9851 15.3789C15.0519 15.6467 14.8887 15.9184 14.6208 15.9854C14.3532 16.0519 14.0813 15.8888 14.0144 15.6211L13.571 13.8486C13.0805 13.9449 12.5568 14 11.9998 14C11.4423 14 10.9184 13.945 10.4275 13.8486L9.98511 15.6211C9.91811 15.8889 9.64645 16.0522 9.37866 15.9854C9.11111 15.9182 8.94768 15.6466 9.0144 15.3789L9.46069 13.5908C8.74459 13.3488 8.11371 13.0173 7.57007 12.6357L6.35327 13.8535C6.15799 14.0486 5.84143 14.0487 5.64624 13.8535C5.45126 13.6583 5.45126 13.3417 5.64624 13.1465L6.78882 12.0029C5.67043 10.9689 5.07561 9.78781 5.00659 9.12402C5.00289 9.05679 5.05649 9.00021 5.12378 9H5.51343Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
357
+ --icon-16-hidden: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.4138 5.5C13.7373 5.5 13.9807 5.76652 13.8415 6.05859C13.6075 6.54952 13.1215 7.17678 12.4421 7.7627L13.4157 9.22266C13.5689 9.45242 13.5068 9.76284 13.277 9.91602C13.0473 10.069 12.7368 10.007 12.5837 9.77734L11.6413 8.36328C11.1673 8.67367 10.6355 8.9499 10.0524 9.15039L10.4851 10.8789C10.5519 11.1467 10.3886 11.4184 10.1208 11.4854C9.85308 11.5519 9.58128 11.3888 9.51435 11.1211L9.08466 9.40332C8.7357 9.46559 8.37327 9.5 7.9997 9.5C7.62569 9.49998 7.2631 9.46575 6.91376 9.40332L6.48505 11.1211C6.41806 11.3889 6.1464 11.5522 5.87861 11.4854C5.61102 11.4183 5.44761 11.1466 5.51435 10.8789L5.94599 9.15039C5.36302 8.94979 4.83099 8.67372 4.35712 8.36328L3.41572 9.77734C3.2625 10.007 2.95206 10.0692 2.72236 9.91602C2.49286 9.76282 2.43071 9.45232 2.58368 9.22266L3.55634 7.76172C2.8777 7.1762 2.3927 6.54916 2.15888 6.05859C2.01973 5.76657 2.26219 5.50011 2.58564 5.5C3.05129 5.5 3.02196 5.6191 3.27021 5.98145C3.50192 6.31962 3.85806 6.72067 4.32294 7.10352C5.25669 7.87247 6.53958 8.49991 7.9997 8.5C9.45975 8.5 10.7427 7.87238 11.6765 7.10352C12.1413 6.72067 12.4985 6.31962 12.7302 5.98145C12.981 5.61523 12.9588 5.50007 13.4138 5.5Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
358
+
352
359
  --tip-pointer: path("M8 6L2 0H14L8 6Z");
353
360
 
354
361
 
@@ -365,12 +372,20 @@
365
372
  inset 0px 0.5px 0px 0px light-dark(transparent, rgba(255, 255, 255, 0.08)),
366
373
  inset 0px 0px 0.5px 0px light-dark(transparent, rgba(255, 255, 255, 0.3));
367
374
 
368
- --elevation-100-canvas:
375
+ --figma-elevation-100-canvas:
369
376
  0 0 0.5px 0 light-dark(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.5)),
370
377
  0 0.5px 0 0 light-dark(transparent, rgba(255, 255, 255, 0.1)) inset,
371
378
  0 0 0.5px 0 light-dark(transparent, rgba(255, 255, 255, 0.3)) inset,
372
379
  0 1px 3px 0 light-dark(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.4));
373
380
 
381
+
382
+ --figma-elevation-200-canvas:
383
+ 0 0 0.5px 0 light-dark(rgba(0, 0, 0, 0.18), transparent),
384
+ 0 0.5px 0 0 light-dark(transparent, rgba(255, 255, 255, 0.08)) inset,
385
+ 0 3px 8px 0 light-dark(rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.35)),
386
+ 0 0 0.5px 0 light-dark(transparent, rgba(255, 255, 255, 0.30)) inset,
387
+ 0 1px 3px 0 light-dark(rgba(0, 0, 0, 0.10), rgba(0, 0, 0, 0.50));
388
+
374
389
  --figma-elevation-400-menu-panel:
375
390
  0px 0px 0.5px 0px light-dark(rgba(0, 0, 0, 0.12), transparent),
376
391
  0px 10px 16px 0px light-dark(rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.35)),
@@ -473,6 +488,11 @@ fig-input-number .fig-steppers {
473
488
  &:active{
474
489
  background-color: var(--figma-color-text) !important;
475
490
  }
491
+
492
+ &:disabled {
493
+ pointer-events: none;
494
+ background-color: var(--figma-color-text-disabled);
495
+ }
476
496
  }
477
497
 
478
498
  fig-input-number[disabled]:not([disabled="false"]) & button {
@@ -709,6 +729,9 @@ input[type="text"][list] {
709
729
  align-items: center;
710
730
  gap: 0;
711
731
  min-width: 0;
732
+ text-overflow: ellipsis;
733
+ overflow: hidden;
734
+ width: 100%;
712
735
  &:has(> svg) {
713
736
  margin-left: calc(var(--spacer-2) * -1);
714
737
  }
@@ -856,15 +879,19 @@ fig-button {
856
879
  }
857
880
  /* Variant: Secondary */
858
881
  &[variant="secondary"] {
859
- box-shadow: inset 0 0 0 1px var(--figma-color-border);
882
+ box-shadow: inset 0 0 0 1px var(--figma-color-bordertranslucent);
860
883
  padding: 0 calc(var(--spacer-2) - 1px);
861
884
  background: none;
862
885
  color: var(--figma-color-text);
863
886
 
864
- &:active {
865
- background-color: var(--figma-color-bg-secondary);
887
+ &:active,
888
+ &:active:hover {
889
+ background-color: var(--figma-color-bg-transparent-pressed);
866
890
  color: var(--figma-color-text);
867
891
  }
892
+ &:hover {
893
+ background-color: var(--figma-color-bg-secondary);
894
+ }
868
895
  }
869
896
 
870
897
  /* Variant: Input */
@@ -874,12 +901,13 @@ fig-button {
874
901
  color: var(--figma-color-text);
875
902
 
876
903
  &:hover {
877
- box-shadow: inset 0 0 0 1px var(--figma-color-border);
904
+ box-shadow: inset 0 0 0 1px var(--figma-color-bordertranslucent);
878
905
  background-color: var(--figma-color-bg-transparent);
879
906
  }
880
907
 
881
- &:active {
882
- background-color: var(--figma-color-bg-secondary);
908
+ &:active,
909
+ &:active:hover {
910
+ background-color: var(--figma-color-bg-transparent-pressed);
883
911
  color: var(--figma-color-text);
884
912
  }
885
913
 
@@ -1392,6 +1420,7 @@ fig-input-file {
1392
1420
  align-items: center;
1393
1421
  gap: var(--spacer-2);
1394
1422
  min-width: 0;
1423
+ max-width: 100%;
1395
1424
 
1396
1425
  &[full]:not([full="false"]) {
1397
1426
  flex: 1 1 auto;
@@ -1491,7 +1520,7 @@ fig-video {
1491
1520
  opacity: 0;
1492
1521
  pointer-events: none;
1493
1522
  }
1494
- &:is(:not([src]), [src=""]) > img.fig-media-element[data-generated] {
1523
+ &:not(:has(> img.fig-media-element[data-generated][src]:not([src=""]))) > img.fig-media-element[data-generated] {
1495
1524
  opacity: 0;
1496
1525
  pointer-events: none;
1497
1526
  }
@@ -1501,7 +1530,7 @@ fig-video {
1501
1530
  z-index: 2;
1502
1531
  max-width:calc(100% - var(--spacer-4));
1503
1532
  }
1504
- &:is(:not([src]), [src=""]) > fig-input-file[data-generated],
1533
+ &:not(:has(> img.fig-media-element[data-generated][src]:not([src=""]))) > fig-input-file[data-generated],
1505
1534
  &:hover > fig-input-file[data-generated] {
1506
1535
  opacity: 1;
1507
1536
  pointer-events: all;
@@ -1520,7 +1549,7 @@ fig-video {
1520
1549
  fig-media-controls {
1521
1550
  display: flex;
1522
1551
  align-items: center;
1523
- gap: var(--spacer-2);
1552
+ gap: var(--spacer-1);
1524
1553
  width: 100%;
1525
1554
 
1526
1555
 
@@ -1542,6 +1571,7 @@ fig-media-controls {
1542
1571
  font-variant-numeric: tabular-nums;
1543
1572
  white-space: nowrap;
1544
1573
  padding-right: var(--spacer-2);
1574
+ padding-left: var(--spacer-1);
1545
1575
  }
1546
1576
  }
1547
1577
 
@@ -1601,6 +1631,10 @@ fig-easing-curve {
1601
1631
  stroke-width: var(--stroke-width);
1602
1632
  stroke-linejoin: round;
1603
1633
  stroke-linecap: round;
1634
+
1635
+ &.is-active {
1636
+ stroke: var(--figma-color-bg-brand);
1637
+ }
1604
1638
  }
1605
1639
  .fig-easing-curve-path {
1606
1640
  fill: none;
@@ -1659,7 +1693,7 @@ fig-3d-rotate {
1659
1693
  --figma-3d-rotate-handle-size: 6px;
1660
1694
  --front-face-bg: light-dark(var(--figma-color-bg), #555);
1661
1695
 
1662
- fig-field[direction="horizontal"] & {
1696
+ fig-field:not([direction="vertical"]) & {
1663
1697
  flex: 1;
1664
1698
  min-width: 0;
1665
1699
  }
@@ -1723,14 +1757,14 @@ fig-3d-rotate {
1723
1757
  background: var(--figma-color-border-strong) !important;
1724
1758
  inset: -1px;
1725
1759
  border-radius: var(--radius-medium);
1726
- box-shadow: var(--elevation-100-canvas);
1760
+ box-shadow: var(--figma-elevation-100-canvas);
1727
1761
  }
1728
1762
 
1729
1763
  &.front {
1730
1764
  background: var(--front-face-bg);
1731
1765
  border-radius: var(--radius-medium);
1732
1766
  transform-style: preserve-3d;
1733
- box-shadow: var(--elevation-100-canvas);
1767
+ box-shadow: var(--figma-elevation-100-canvas);
1734
1768
  inset: -1px;
1735
1769
 
1736
1770
  &::after {
@@ -1842,7 +1876,7 @@ fig-origin-grid {
1842
1876
  --origin-grid-handle-size: 0.75rem;
1843
1877
  --origin-grid-height: var(--spacer-4);
1844
1878
 
1845
- fig-field[direction="horizontal"] & {
1879
+ fig-field:not([direction="vertical"]) & {
1846
1880
  flex: 1;
1847
1881
  min-width: 0;
1848
1882
  }
@@ -2685,7 +2719,7 @@ fig-slider {
2685
2719
  }
2686
2720
  }
2687
2721
 
2688
- &[variant="neue"] {
2722
+ &:not([variant="classic"]) {
2689
2723
  --slider-height: 0.375rem;
2690
2724
  --slider-thumb-size: 0.75rem;
2691
2725
  --slider-tick-width: calc(var(--slider-height) / 2);
@@ -2703,7 +2737,7 @@ fig-slider {
2703
2737
  border-radius: var(--radius-medium);
2704
2738
  padding-left: var(--spacer-2);
2705
2739
 
2706
- &:not([text="true"]) {
2740
+ &[text="false"] {
2707
2741
  padding-right: var(--spacer-2);
2708
2742
  }
2709
2743
 
@@ -3033,13 +3067,14 @@ fig-tooltip {
3033
3067
  fig-preview {
3034
3068
  --fig-preview-fit: contain;
3035
3069
 
3036
- display: inline-grid;
3070
+ display: block;
3037
3071
  place-items: center;
3038
3072
  min-width: 0;
3039
3073
  max-width: 100%;
3040
3074
  background-color: var(--figma-color-bg-secondary);
3041
3075
  border-radius: var(--radius-medium);
3042
3076
  position: relative;
3077
+ overflow: hidden;
3043
3078
 
3044
3079
  &[full]:not([full="false"]) {
3045
3080
  width: 100%;
@@ -3051,30 +3086,20 @@ fig-preview {
3051
3086
 
3052
3087
  &::after {
3053
3088
  content: "";
3054
- grid-area: 1/1;
3055
- place-self: stretch;
3089
+ position: absolute;
3090
+ inset: 0;
3056
3091
  border-radius: inherit;
3057
3092
  box-shadow: inset 0 0 0 1px var(--figma-color-bordertranslucent);
3058
3093
  pointer-events: none;
3059
3094
  z-index: 2;
3060
3095
  }
3061
3096
 
3062
- > * {
3063
- grid-area: 1/1;
3064
- min-width: 0;
3065
- min-height: 0;
3066
- }
3067
-
3068
3097
  > :is(img, video, canvas, svg) {
3069
3098
  display: block;
3070
- max-width: 100%;
3071
- max-height: 100%;
3099
+ width: stretch;
3100
+ height: stretch;
3072
3101
  object-fit: var(--fig-preview-fit);
3073
3102
  object-position: center;
3074
- border-radius: 0;
3075
- }
3076
- > canvas{
3077
- border-radius: inherit;
3078
3103
  }
3079
3104
  }
3080
3105
 
@@ -3351,6 +3376,12 @@ fig-input-number {
3351
3376
  padding-left: 0;
3352
3377
  margin-left: calc(var(--spacer-2) * -1);
3353
3378
  }
3379
+
3380
+ &[type="search"]:not([data-search-has-value]) [data-generated="search-clear"] {
3381
+ visibility: hidden;
3382
+ pointer-events: none;
3383
+ }
3384
+
3354
3385
  & [slot="prepend"],
3355
3386
  & [slot="append"] {
3356
3387
  svg {
@@ -3373,6 +3404,17 @@ fig-input-number {
3373
3404
  }
3374
3405
  }
3375
3406
 
3407
+ & input[type="search"] {
3408
+ appearance: textfield;
3409
+ &::-webkit-search-cancel-button,
3410
+ &::-webkit-search-decoration,
3411
+ &::-webkit-search-results-button,
3412
+ &::-webkit-search-results-decoration {
3413
+ appearance: none;
3414
+ display: none;
3415
+ }
3416
+ }
3417
+
3376
3418
  &:has(input:focus) {
3377
3419
  box-shadow: inset 0 0 0 1px var(--figma-color-border-selected);
3378
3420
  outline: 0;
@@ -3391,6 +3433,10 @@ fig-input-number {
3391
3433
  color: var(--figma-color-text-disabled);
3392
3434
  }
3393
3435
  }
3436
+ &[readonly]{
3437
+ background-color: var(--figma-color-bg);
3438
+ box-shadow: inset 0 0 0 1px var(--figma-color-border-disabled);
3439
+ }
3394
3440
  }
3395
3441
 
3396
3442
  fig-input-number > [slot],
@@ -3451,13 +3497,7 @@ fig-input-fill {
3451
3497
  background-color: transparent !important;
3452
3498
  }
3453
3499
 
3454
- &[disabled]:not([disabled="false"]) {
3455
- .input-combo {
3456
- gap: 0;
3457
- }
3458
- }
3459
-
3460
- fig-field[direction="horizontal"] & {
3500
+ fig-field:not([direction="vertical"]) & {
3461
3501
  flex: 1;
3462
3502
  min-width: 0;
3463
3503
  }
@@ -3477,6 +3517,12 @@ fig-input-gradient {
3477
3517
  outline-offset: -1px !important;
3478
3518
  }
3479
3519
 
3520
+ fig-handle{
3521
+ --height: 14px;
3522
+ --width: 14px;
3523
+
3524
+ }
3525
+
3480
3526
  &[edit="false"] {
3481
3527
  pointer-events: none;
3482
3528
 
@@ -3666,18 +3712,24 @@ fig-field {
3666
3712
  --fig-field-label-ratio: 1fr;
3667
3713
  --fig-field-input-ratio: 2fr;
3668
3714
  display: grid;
3669
- grid-template-columns: var(--fig-field-left-padding) 1fr var(
3670
- --fig-field-right-padding
3671
- );
3672
- grid-template-rows: auto auto;
3673
- grid-template-areas:
3674
- "chevron label pad"
3675
- ". input pad";
3715
+ grid-template-columns:
3716
+ var(--fig-field-left-padding) minmax(0, var(--fig-field-label-ratio))
3717
+ minmax(0, var(--fig-field-input-ratio)) var(--fig-field-right-padding);
3718
+ grid-template-areas: "chevron label input pad";
3676
3719
  margin: 0;
3677
3720
  padding: var(--fig-field-top-padding) 0 var(--fig-field-bottom-padding) 0;
3678
3721
  gap: 0;
3679
3722
  align-items: start;
3680
3723
 
3724
+ &[columns="half"] {
3725
+ --fig-field-label-ratio: 2fr;
3726
+ }
3727
+
3728
+ &[columns="2/5"] {
3729
+ --fig-field-label-ratio: 2fr;
3730
+ --fig-field-input-ratio: 3fr;
3731
+ }
3732
+
3681
3733
  & > [full] {
3682
3734
  flex: 1 1 auto;
3683
3735
  }
@@ -3693,6 +3745,11 @@ fig-field {
3693
3745
  padding: var(--spacer-1) 0;
3694
3746
  line-height: 1rem;
3695
3747
  user-select: none;
3748
+ overflow: hidden;
3749
+ text-overflow: ellipsis;
3750
+ white-space: nowrap;
3751
+ margin-right: var(--fig-field-gap);
3752
+ min-width: 0;
3696
3753
  }
3697
3754
 
3698
3755
  & > *:not(.fig-field-chevron):not(label) {
@@ -3715,45 +3772,42 @@ fig-field {
3715
3772
  transform: rotate(0deg);
3716
3773
  }
3717
3774
 
3718
- &[direction="horizontal"] {
3719
- display: grid;
3775
+ /* labelless fields can have a few inputs */
3776
+ &:not([direction="vertical"]):not(:has(> label)) {
3720
3777
  grid-template-columns:
3721
3778
  var(--fig-field-left-padding) minmax(0, var(--fig-field-label-ratio))
3779
+ var(--spacer-2)
3722
3780
  minmax(0, var(--fig-field-input-ratio)) var(--fig-field-right-padding);
3723
- grid-template-areas: "chevron label input pad";
3724
- gap: 0;
3725
- align-items: start;
3781
+ grid-template-areas: "chevron input1 gap input2 pad";
3726
3782
 
3727
- &[columns="half"] {
3728
- --fig-field-label-ratio: 2fr;
3783
+ & > *:first-child {
3784
+ grid-area: input1;
3729
3785
  }
3730
- &[columns="2/5"] {
3731
- --fig-field-label-ratio: 2fr;
3732
- --fig-field-input-ratio: 3fr;
3786
+
3787
+ & > *:last-child {
3788
+ grid-area: input2;
3733
3789
  }
3734
- & > label {
3735
- overflow: hidden;
3736
- text-overflow: ellipsis;
3737
- white-space: nowrap;
3738
- margin-right: var(--fig-field-gap);
3739
- min-width: 0;
3790
+
3791
+ & > *:only-child {
3792
+ grid-column: input1 / -2;
3740
3793
  }
3741
- /* labelless fields can have a few inputs */
3742
- &:not(:has(> label)) {
3743
- grid-template-columns:
3744
- var(--fig-field-left-padding) minmax(0, var(--fig-field-label-ratio))
3745
- var(--spacer-2)
3746
- minmax(0, var(--fig-field-input-ratio)) var(--fig-field-right-padding);
3747
- grid-template-areas: "chevron input1 gap input2 pad";
3748
- & > *:first-child {
3749
- grid-area: input1;
3750
- }
3751
- & > *:last-child {
3752
- grid-area: input2;
3753
- }
3754
- & > *:only-child {
3755
- grid-column: input1 / -2;
3756
- }
3794
+ }
3795
+
3796
+ &[direction="vertical"] {
3797
+ grid-template-columns: var(--fig-field-left-padding) 1fr var(
3798
+ --fig-field-right-padding
3799
+ );
3800
+ grid-template-rows: auto auto;
3801
+ grid-template-areas:
3802
+ "chevron label pad"
3803
+ ". input pad";
3804
+
3805
+ & > label {
3806
+ overflow: visible;
3807
+ text-overflow: clip;
3808
+ white-space: normal;
3809
+ margin-right: 0;
3810
+ min-width: auto;
3757
3811
  }
3758
3812
  }
3759
3813
  }
@@ -3933,7 +3987,7 @@ fig-joystick {
3933
3987
  width: var(--size);
3934
3988
 
3935
3989
  /* When inside horizontal fig-field, grow to fill and let inputs expand */
3936
- fig-field[direction="horizontal"] & {
3990
+ fig-field:not([direction="vertical"]) & {
3937
3991
  flex: 1;
3938
3992
  min-width: 0;
3939
3993
 
@@ -4393,335 +4447,6 @@ fig-skeleton {
4393
4447
  }
4394
4448
  }
4395
4449
 
4396
- /* Fill Picker */
4397
- fig-fill-picker {
4398
- display: contents;
4399
-
4400
- > [slot^="mode-"] {
4401
- display: none;
4402
- }
4403
- }
4404
-
4405
- .fig-fill-picker-dialog {
4406
- contain: layout;
4407
- width: 240px;
4408
- padding: 0;
4409
-
4410
- & > fig-header {
4411
- padding: var(--spacer-2);
4412
- display: flex;
4413
- justify-content: space-between;
4414
- align-items: center;
4415
- }
4416
-
4417
- fig-tab {
4418
- font-size: 0.6875rem;
4419
- padding: var(--spacer-1) var(--spacer-1);
4420
- }
4421
- & > fig-content {
4422
- padding-bottom: var(--spacer-2-5);
4423
- }
4424
- .fig-fill-picker-type-label {
4425
- font-size: var(--font-size-small);
4426
- font-weight: var(--font-weight-medium);
4427
- color: var(--figma-color-text);
4428
- padding: var(--spacer-1) var(--spacer-2);
4429
- }
4430
-
4431
- .fig-fill-picker-gamut {
4432
- margin-left: auto;
4433
- }
4434
-
4435
- .fig-fill-picker-tab {
4436
- display: none;
4437
-
4438
- &:first-child {
4439
- display: block;
4440
- }
4441
- }
4442
-
4443
- .fig-fill-picker-color-area {
4444
- aspect-ratio: 1;
4445
- width: calc(100% - var(--spacer-3) * 2);
4446
- margin: var(--spacer-2) var(--spacer-3);
4447
-
4448
- > *:not(fig-handle) {
4449
- place-self: center;
4450
- width: 100%;
4451
- height: 100%;
4452
- border-radius: inherit;
4453
- }
4454
-
4455
- canvas {
4456
- width: 100%;
4457
- height: 100%;
4458
- border-radius: var(--radius-medium);
4459
- }
4460
- }
4461
-
4462
- .fig-fill-picker-color-area fig-handle {
4463
- z-index: 1;
4464
- }
4465
-
4466
- .fig-fill-picker-sliders {
4467
- display: grid;
4468
- grid-template-columns: calc(3.5rem + var(--spacer-3)) 1fr;
4469
- grid-template-rows: 1fr 1fr;
4470
- align-items: center;
4471
- padding-right: var(--spacer-3);
4472
- gap: var(--spacer-2);
4473
- padding-bottom: var(--spacer-1);
4474
-
4475
- .fig-fill-picker-eyedropper {
4476
- grid-column: 1;
4477
- grid-row: 1 / 3;
4478
- place-self: center;
4479
- margin-right: calc(var(--spacer-3) * -1);
4480
- width: 3.5rem;
4481
- aspect-ratio: 1 / 1;
4482
- height: 3.5rem;
4483
- }
4484
-
4485
- fig-slider {
4486
- grid-column: 2;
4487
- min-width: 0;
4488
- }
4489
- }
4490
-
4491
- .fig-fill-picker-inputs {
4492
- .fig-fill-picker-input-fields {
4493
- flex: 1;
4494
- min-width: 0;
4495
- display: flex;
4496
-
4497
- .input-combo {
4498
- flex: 1;
4499
- min-width: 0;
4500
- }
4501
-
4502
- fig-input-text {
4503
- flex: 1;
4504
- min-width: 0;
4505
- }
4506
- }
4507
- }
4508
-
4509
- /* Gradient Tab */
4510
- .fig-fill-picker-gradient-preview {
4511
- aspect-ratio: auto;
4512
- width: calc(100% - var(--spacer-3) * 2);
4513
- margin: var(--spacer-2) var(--spacer-3);
4514
- margin-top: var(--spacer-4);
4515
- background: transparent;
4516
- }
4517
-
4518
- .fig-fill-picker-gradient-header {
4519
- padding-right: var(--spacer-2);
4520
- display: flex;
4521
- padding-left: var(--spacer-3);
4522
- gap: var(--spacer-2);
4523
- .fig-fill-picker-gradient-type {
4524
- flex: 1;
4525
- min-width: 0;
4526
- }
4527
-
4528
- & > *:last-child fig-button {
4529
- margin-left: auto;
4530
- }
4531
-
4532
- .fig-fill-picker-gradient-center {
4533
- fig-input-number {
4534
- width: 48px;
4535
- }
4536
- }
4537
- }
4538
-
4539
- .fig-fill-picker-gradient-stops {
4540
- .fig-fill-picker-gradient-stops-header {
4541
- > span {
4542
- flex: 1;
4543
- }
4544
- }
4545
- }
4546
-
4547
- .fig-fill-picker-gradient-stops-list {
4548
- display: flex;
4549
- flex-direction: column;
4550
- gap: var(--spacer-1);
4551
- }
4552
-
4553
- .fig-fill-picker-gradient-stop-row {
4554
- padding-right: var(--spacer-2);
4555
- display: flex;
4556
- padding-left: var(--spacer-3);
4557
- gap: var(--spacer-2);
4558
- & > .fig-fill-picker-stop-position {
4559
- flex: 0;
4560
- flex-basis: 3rem;
4561
- min-width: 0;
4562
- width: 3rem;
4563
- }
4564
-
4565
- .fig-fill-picker-stop-color {
4566
- flex: 1;
4567
- min-width: 0;
4568
- fig-input-text {
4569
- min-width: 0;
4570
- }
4571
- }
4572
-
4573
- .fig-fill-picker-stop-remove {
4574
- flex-shrink: 0;
4575
- }
4576
- }
4577
-
4578
- /* Media Tabs (Image/Video/Webcam) */
4579
- .fig-fill-picker-media-header {
4580
- .fig-fill-picker-scale-mode {
4581
- flex: 1;
4582
- }
4583
-
4584
- .fig-fill-picker-scale {
4585
- width: 56px;
4586
- }
4587
- }
4588
-
4589
- .fig-fill-picker-media-preview {
4590
- position: relative;
4591
- aspect-ratio: 1;
4592
- margin: var(--spacer-1) var(--spacer-3);
4593
- border-radius: var(--radius-medium);
4594
- overflow: hidden;
4595
- display: flex;
4596
- align-items: center;
4597
- justify-content: center;
4598
-
4599
- &.dragover {
4600
- outline: 2px dashed var(--figma-color-border-brand);
4601
- outline-offset: -2px;
4602
- }
4603
-
4604
- &.has-media {
4605
- fig-button {
4606
- visibility: hidden;
4607
- }
4608
- &:hover {
4609
- fig-button {
4610
- visibility: visible;
4611
- }
4612
- }
4613
- }
4614
- }
4615
-
4616
- .fig-fill-picker-checkerboard {
4617
- position: absolute;
4618
- inset: 0;
4619
- background-image:
4620
- linear-gradient(
4621
- 45deg,
4622
- var(--figma-color-bg-tertiary) 25%,
4623
- transparent 25%
4624
- ),
4625
- linear-gradient(
4626
- -45deg,
4627
- var(--figma-color-bg-tertiary) 25%,
4628
- transparent 25%
4629
- ),
4630
- linear-gradient(
4631
- 45deg,
4632
- transparent 75%,
4633
- var(--figma-color-bg-tertiary) 75%
4634
- ),
4635
- linear-gradient(
4636
- -45deg,
4637
- transparent 75%,
4638
- var(--figma-color-bg-tertiary) 75%
4639
- );
4640
- background-size: 16px 16px;
4641
- background-position:
4642
- 0 0,
4643
- 0 8px,
4644
- 8px -8px,
4645
- -8px 0px;
4646
- }
4647
-
4648
- div.fig-fill-picker-image-preview {
4649
- position: absolute;
4650
- inset: 0;
4651
- width: 100%;
4652
- height: 100%;
4653
- display: none;
4654
- }
4655
-
4656
- fig-image.fig-fill-picker-image-preview {
4657
- max-width: none;
4658
- max-height: none;
4659
- width: auto;
4660
- }
4661
-
4662
- video.fig-fill-picker-video-preview {
4663
- position: absolute;
4664
- inset: 0;
4665
- width: 100%;
4666
- height: 100%;
4667
- object-fit: cover;
4668
- display: none;
4669
- }
4670
-
4671
- fig-media.fig-fill-picker-video-preview {
4672
- max-width: none;
4673
- max-height: none;
4674
- width: auto;
4675
- }
4676
-
4677
- .fig-fill-picker-upload {
4678
- position: relative;
4679
- z-index: 1;
4680
- }
4681
-
4682
- /* Webcam Tab */
4683
- .fig-fill-picker-webcam-preview {
4684
- position: relative;
4685
- aspect-ratio: 1;
4686
- margin: 0 var(--spacer-3);
4687
- border-radius: var(--radius-medium);
4688
- overflow: hidden;
4689
- margin-bottom: var(--spacer-2);
4690
- }
4691
-
4692
- .fig-fill-picker-webcam-video {
4693
- position: absolute;
4694
- inset: 0;
4695
- width: 100%;
4696
- height: 100%;
4697
- object-fit: cover;
4698
- }
4699
-
4700
- .fig-fill-picker-webcam-status {
4701
- position: absolute;
4702
- inset: 0;
4703
- display: flex;
4704
- align-items: center;
4705
- justify-content: center;
4706
- background: var(--figma-color-bg-secondary);
4707
- color: var(--figma-color-text-secondary);
4708
- font-size: 0.75rem;
4709
- }
4710
-
4711
- .fig-fill-picker-webcam-controls {
4712
- display: flex;
4713
- gap: var(--spacer-1);
4714
-
4715
- .fig-fill-picker-camera-select {
4716
- flex: 1;
4717
- }
4718
-
4719
- .fig-fill-picker-webcam-capture {
4720
- flex-shrink: 0;
4721
- }
4722
- }
4723
- }
4724
-
4725
4450
  /* Utilities */
4726
4451
 
4727
4452
  .fig-mask-icon,
@@ -5007,8 +4732,8 @@ fig-choice {
5007
4732
  }
5008
4733
 
5009
4734
  fig-handle {
5010
- --width: 0.875rem;
5011
- --height: 0.875rem;
4735
+ --width: 1rem;
4736
+ --height: 1rem;
5012
4737
  --fill: transparent;
5013
4738
  --border-radius: 50%;
5014
4739
  --fig-handle-hit-area-opacity: 0;
@@ -5016,21 +4741,21 @@ fig-handle {
5016
4741
  --fig-handle-checkerboard: var(--checkerboard);
5017
4742
  --fig-handle-bg: var(--handle-color);
5018
4743
  --fig-handle-outline-color: transparent;
5019
- --fig-handle-outline: 1px solid var(--fig-handle-outline-color);
5020
- --fig-handle-outline-offset: 1px;
5021
- --fig-handle-inner-bg: var(--fill);
4744
+ --fig-handle-outline: 1.5px solid var(--fig-handle-outline-color);
4745
+ --fig-handle-outline-offset: 0px;
4746
+ --fig-handle-inner-bg: var(--figma-color-bg-brand);
5022
4747
  --fig-handle-inner-outline: 1px solid var(--figma-color-bg-brand);
5023
- --fig-handle-height: 0.875rem;
5024
- --fig-handle-width: 0.875rem;
5025
- --fig-handle-padding: 0.0625rem;
5026
- --fig-handle-shadow: 0px 0 0 0.5px rgba(0, 0, 0, 0.1), var(--elevation-100-canvas);
4748
+ --fig-handle-height: var(--width);
4749
+ --fig-handle-width: var(--width);
4750
+ --fig-handle-padding: 0.25rem;
4751
+ --fig-handle-shadow: var(--figma-elevation-200-canvas);
5027
4752
  --fig-handle-inner-shadow: none;
5028
4753
 
5029
4754
  margin: 0;
5030
4755
  padding: var(--fig-handle-padding);
5031
4756
  place-items: center;
5032
- width: var(--width);
5033
- height: var(--height);
4757
+ width: var(--fig-handle-width);
4758
+ height: var(--fig-handle-height);
5034
4759
  border-radius: var(--border-radius);
5035
4760
  display: grid;
5036
4761
  background: var(--fig-handle-bg);
@@ -5046,7 +4771,7 @@ fig-handle {
5046
4771
  height: 100%;
5047
4772
  background: var(--fig-handle-inner-bg);
5048
4773
  background-position: 0 0;
5049
- background-size: 0.625rem 0.625rem;
4774
+ background-size: calc(var(--fig-handle-width) - var(--fig-handle-padding) * 2) calc(var(--fig-handle-height) - var(--fig-handle-padding) * 2);
5050
4775
  border-radius: var(--border-radius);
5051
4776
  box-shadow: var(--fig-handle-inner-shadow);
5052
4777
  outline: var(--fig-handle-inner-outline);
@@ -5056,8 +4781,9 @@ fig-handle {
5056
4781
  }
5057
4782
 
5058
4783
  &[size="small"] {
5059
- --width: 11px;
5060
- --height: 11px;
4784
+ --width: 0.75rem;
4785
+ --height: 0.75rem;
4786
+ --fig-handle-padding: 3px;
5061
4787
  }
5062
4788
 
5063
4789
  &[drag]:not([drag="false"]) {
@@ -5076,30 +4802,19 @@ fig-handle {
5076
4802
  --fig-handle-outline-color: var(--figma-color-border-selected);
5077
4803
  }
5078
4804
 
5079
- &[disabled]:not([disabled="false"]),
5080
- &[aria-disabled="true"] {
5081
- pointer-events: none;
5082
- cursor: default;
5083
- }
5084
- &[type="color"],
5085
- &[type="canvas"] {
5086
- &::after {
5087
- display: block;
4805
+ &[type="canvas"]{
4806
+ --fig-handle-inner-bg: transparent;
4807
+ --fig-handle-inner-outline: none;
4808
+ --fig-handle-outline-color: var(--figma-color-border-selected);
4809
+ &:hover,
4810
+ &[selected]:not([selected="false"]){
4811
+ --fig-handle-outline: 3px solid var(--figma-color-border-selected);
5088
4812
  }
5089
4813
  }
5090
- &[type="canvas"] {
5091
- --fill: #FFFFFF;
5092
- --handle-color: var(--figma-color-bg-brand);
5093
- --ring-width: 1.5px;
5094
- &::after{
5095
- box-shadow: none;
5096
- }
5097
- }
5098
-
5099
4814
  &[type="color"],
5100
4815
  &[control] {
5101
4816
  --fig-handle-inner-bg: linear-gradient(var(--fill), var(--fill)), var(--fig-handle-checkerboard);
5102
- --fig-handle-inner-shadow: inset 0 0 0 1px var(--figma-color-bordertranslucent);
4817
+ --fig-handle-padding: 0.125rem;
5103
4818
  --fig-handle-inner-outline: none;
5104
4819
  position: relative;
5105
4820
  overflow: visible;
@@ -5113,6 +4828,16 @@ fig-handle {
5113
4828
  }
5114
4829
  }
5115
4830
 
4831
+ &[disabled]:not([disabled="false"]),
4832
+ &[aria-disabled="true"] {
4833
+ cursor: not-allowed;
4834
+ --fig-handle-outline-color: transparent;
4835
+ background-color: var(--figma-color-bg-disabled);
4836
+ &::after{
4837
+ --fig-handle-inner-bg: var(--figma-color-icon-disabled);
4838
+ }
4839
+ }
4840
+
5116
4841
  .fig-handle-hit-area {
5117
4842
  position: absolute;
5118
4843
  inset: calc(var(--fig-handle-hit-area-size) * -0.5px);