figma-kit 1.0.0-beta.2 → 1.0.0-beta.22

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/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;
@@ -399,7 +399,7 @@
399
399
  .fp-Text:where(.fp-size-medium) {
400
400
  --font-size: var(--font-size-3);
401
401
  --line-height: var(--line-height-3);
402
- --letter-spacing: --letter-spacing-3;
402
+ --letter-spacing: var(--letter-spacing-3);
403
403
  }
404
404
  .fp-Text:where(.fp-size-large) {
405
405
  --font-size: var(--font-size-5);
@@ -429,7 +429,7 @@
429
429
  }
430
430
  .fp-Text code {
431
431
  font-family: var(--font-family-monospace);
432
- font-size: var(var(--font-size-2));
432
+ font-size: var(--font-size-2);
433
433
  background-color: var(--figma-color-bg-brand-tertiary);
434
434
  padding: 0.05rem 0.15rem;
435
435
  border-radius: var(--radius-extra-small);
@@ -626,15 +626,19 @@
626
626
  font-weight: var(--font-weight-default);
627
627
  letter-spacing: var(--letter-spacing-default);
628
628
  line-height: var(--line-height-default);
629
- height: var(--space-6);
629
+ min-height: var(--space-6);
630
630
  color: var(--color-text-tooltip);
631
631
  white-space: pre-wrap;
632
632
  word-break: break-word;
633
633
  border-radius: var(--radius-medium);
634
- box-shadow: var(--elevation-300-tooltip, 0 2px 7px rgba(0, 0, 0, 0.15));
634
+ box-shadow: var(--elevation-300, 0 2px 7px rgba(0, 0, 0, 0.15));
635
635
  }
636
- .fp-arrow {
636
+ .fp-tooltip-arrow {
637
637
  fill: var(--color-bg-tooltip);
638
+ width: var(--space-3_5);
639
+ height: 7px;
640
+ position: relative;
641
+ bottom: 1px;
638
642
  }
639
643
  .fp-textarea {
640
644
  all: unset;
@@ -717,6 +721,9 @@
717
721
  padding: 0 var(--space-4);
718
722
  color: var(--color-text-menu-tertiary);
719
723
  }
724
+ .fp-MenuLabel:where(.fp-MenuContent:has(.fp-MenuCheckboxItem, .fp-MenuRadioItem) .fp-MenuLabel) {
725
+ padding-left: var(--space-6);
726
+ }
720
727
  .fp-MenuGroup {
721
728
  padding: var(--space-2) 0;
722
729
  }
@@ -970,51 +977,65 @@
970
977
  box-sizing: border-box;
971
978
  position: relative;
972
979
  display: block;
973
- width: var(--space-6);
974
- height: var(--space-3);
980
+ width: var(--space-8);
981
+ height: var(--space-4);
975
982
  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%;
983
+ background: none;
979
984
  background-clip: padding-box;
980
985
  border-radius: var(--radius-full);
981
986
  border: 0;
982
- transition: background-position 0.1s ease-out;
987
+ transition: background-position 0.08s ease-out;
988
+
989
+ /* Using ::before to render the background to create the real gap between the
990
+ outline and the background in the focused mode as it is in Figma. */
983
991
  }
984
- .fp-switchRoot:focus-visible {
985
- outline-offset: 2px;
986
- outline: 2px solid var(--figma-color-border-selected);
992
+ .fp-switchRoot::before {
993
+ position: absolute;
994
+ inset: 0;
995
+ border-radius: var(--radius-full);
996
+ background: none;
997
+ content: '';
987
998
  }
988
- .fp-switchRoot[data-disabled] {
989
- background: var(--figma-color-icon-disabled);
990
- border-color: var(--figma-color-icon-disabled);
999
+ .fp-switchRoot[data-state='unchecked']::before {
1000
+ background: var(--figma-color-bg-tertiary);
991
1001
  }
992
- .fp-switchRoot[data-state='unchecked'] {
993
- background-position: -24px;
1002
+ .fp-switchRoot[data-state='checked']::before {
1003
+ background: var(--figma-color-bg-brand);
994
1004
  }
995
- .fp-switchRoot[data-state='checked'] {
996
- background-position: 0;
1005
+ .fp-switchRoot:focus-visible {
1006
+ outline-offset: -1px;
1007
+ outline: 1px solid var(--figma-color-border-selected-strong);
997
1008
  }
1009
+ .fp-switchRoot:focus-visible::before {
1010
+ inset: 2px;
1011
+ }
1012
+ .fp-switchRoot[data-disabled][data-state='unchecked']::before {
1013
+ /* This gives it more contrast than the disabled checked state but this is
1014
+ how it is in Figma. ¯\_(ツ)_/¯ */
1015
+ background: var(--figma-color-bg-disabled);
1016
+ }
1017
+ .fp-switchRoot[data-disabled][data-state='checked']::before {
1018
+ background: var(--figma-color-bg-tertiary);
1019
+ }
998
1020
  .fp-switchThumb {
999
1021
  box-sizing: border-box;
1000
1022
  position: absolute;
1001
1023
  top: 1px;
1002
1024
  left: 1px;
1003
- height: var(--space-2_5);
1004
- width: var(--space-2_5);
1025
+ height: var(--space-3_5);
1026
+ width: var(--space-3_5);
1005
1027
  border-radius: var(--radius-full);
1006
1028
  background: var(--figma-color-icon-onbrand);
1007
- transition: all 0.1s ease-out;
1029
+ transition: all 0.08s ease-out;
1008
1030
  }
1009
1031
  .fp-switchThumb[data-disabled] {
1010
- background-color: var(--figma-color-bg);
1011
- border-color: var(--figma-color-bg);
1032
+ background-color: var(--figma-color-icon-ondisabled);
1012
1033
  }
1013
1034
  .fp-switchThumb[data-state='unchecked'] {
1014
1035
  left: 1px;
1015
1036
  }
1016
1037
  .fp-switchThumb[data-state='checked'] {
1017
- left: calc(100% - var(--space-2_5) - 1px);
1038
+ left: calc(100% - var(--space-3_5) - 1px);
1018
1039
  }
1019
1040
  :root,
1020
1041
  .light,
@@ -1022,11 +1043,12 @@
1022
1043
  --slider-root-size: var(--space-6);
1023
1044
  --slider-track-size: var(--space-4);
1024
1045
  --slider-thumb-width: var(--space-4);
1025
- --color-border-slider-track: #0000001a;
1046
+ --slider-track-border-color: #0000001a;
1047
+ --slider-track-bg: var(--figma-color-bg-secondary);
1048
+ --slider-thumb-bg: transparent;
1026
1049
  }
1027
- .dark,
1028
- .dark-theme {
1029
- --color-border-slider-track: #ffffff1a;
1050
+ .figma-dark {
1051
+ --slider-track-border-color: #ffffff1a;
1030
1052
  }
1031
1053
  .fp-SliderRoot {
1032
1054
  position: relative;
@@ -1051,9 +1073,9 @@
1051
1073
  position: relative;
1052
1074
  overflow: hidden;
1053
1075
  flex-grow: 1;
1054
- background-color: var(--figma-color-bg-secondary);
1076
+ background: var(--slider-track-bg);
1055
1077
  border-radius: var(--radius-full);
1056
- outline: 1px solid var(--color-border-slider-track);
1078
+ outline: 1px solid var(--slider-track-border-color);
1057
1079
  outline-offset: -1px;
1058
1080
  }
1059
1081
  .fp-SliderTrack[data-orientation='horizontal'] {
@@ -1090,7 +1112,7 @@
1090
1112
  display: block;
1091
1113
  width: var(--slider-track-size);
1092
1114
  height: var(--slider-track-size);
1093
- background-color: var(--figma-color-icon-onbrand);
1115
+ background-color: var(--slider-thumb-bg);
1094
1116
  border: 4px solid var(--figma-color-icon-onbrand);
1095
1117
  border-radius: var(--radius-full);
1096
1118
  box-shadow: var(--elevation-200);
@@ -1104,8 +1126,8 @@
1104
1126
  .fp-SliderThumb.fp-SliderThumb-focusVisible:focus-visible {
1105
1127
  outline: 1px solid var(--figma-color-border-selected);
1106
1128
  }
1107
- .fp-SliderThumb.fp-SliderThumb-modified {
1108
- background-color: transparent;
1129
+ .fp-SliderThumb.fp-SliderThumb-baseValue {
1130
+ --slider-thumb-bg: var(--figma-color-icon-onbrand);
1109
1131
  }
1110
1132
  .fp-SliderHint {
1111
1133
  position: absolute;
@@ -1250,6 +1272,7 @@
1250
1272
  display: flex;
1251
1273
  align-items: center;
1252
1274
  justify-content: center;
1275
+ flex-shrink: 0;
1253
1276
  height: var(--space-6);
1254
1277
  padding: 0 var(--space-2);
1255
1278
  font-family: var(--font-family-default);
@@ -1257,6 +1280,7 @@
1257
1280
  font-weight: var(--font-weight-default);
1258
1281
  letter-spacing: var(--letter-spacing-default);
1259
1282
  line-height: var(--line-height-default);
1283
+ white-space: nowrap;
1260
1284
  }
1261
1285
  .fp-TabsTrigger:where([data-state='inactive']) {
1262
1286
  color: var(--figma-color-text-secondary);
@@ -1442,6 +1466,10 @@
1442
1466
  font-weight: var(--font-weight-default);
1443
1467
  letter-spacing: var(--letter-spacing-default);
1444
1468
  line-height: var(--line-height-default);
1469
+ color: var(--figma-color-text-secondary);
1470
+ }
1471
+ .fp-CollapsibleIndicator {
1472
+ --color-icon: var(--figma-color-icon-secondary);
1445
1473
  }
1446
1474
  [data-state='open'] > .fp-CollapsibleIndicator {
1447
1475
  transform: rotate(90deg);
@@ -1449,3 +1477,176 @@
1449
1477
  .fp-CollapsibleContent {
1450
1478
  margin-left: var(--space-4);
1451
1479
  }
1480
+ .fp-ColorPickerHueSlider:where(.fp-color-model-hsv, .fp-color-model-hsl, .fp-color-model-rgb, .fp-color-model-hex) {
1481
+ --slider-track-bg: linear-gradient(
1482
+ 90deg,
1483
+ rgba(255, 0, 0, 1) calc(var(--slider-track-size) / 2),
1484
+ rgba(255, 48, 0, 1),
1485
+ rgba(255, 96, 0, 1),
1486
+ rgba(255, 143, 0, 1),
1487
+ rgba(255, 191, 0, 1),
1488
+ rgba(255, 239, 0, 1),
1489
+ rgba(223, 255, 0, 1),
1490
+ rgba(175, 255, 0, 1),
1491
+ rgba(128, 255, 0, 1),
1492
+ rgba(80, 255, 0, 1),
1493
+ rgba(32, 255, 0, 1),
1494
+ rgba(0, 255, 16, 1),
1495
+ rgba(0, 255, 64, 1),
1496
+ rgba(0, 255, 112, 1),
1497
+ rgba(0, 255, 159, 1),
1498
+ rgba(0, 255, 207, 1),
1499
+ rgba(0, 255, 255, 1),
1500
+ rgba(0, 207, 255, 1),
1501
+ rgba(0, 159, 255, 1),
1502
+ rgba(0, 112, 255, 1),
1503
+ rgba(0, 64, 255, 1),
1504
+ rgba(0, 16, 255, 1),
1505
+ rgba(32, 0, 255, 1),
1506
+ rgba(80, 0, 255, 1),
1507
+ rgba(127, 0, 255, 1),
1508
+ rgba(175, 0, 255, 1),
1509
+ rgba(223, 0, 255, 1),
1510
+ rgba(255, 0, 239, 1),
1511
+ rgba(255, 0, 191, 1),
1512
+ rgba(255, 0, 143, 1),
1513
+ rgba(255, 0, 96, 1),
1514
+ rgba(255, 0, 48, 1) calc(100% - calc(var(--slider-track-size) / 2))
1515
+ );
1516
+ }
1517
+ @supports (color: color(display-p3 1 1 1)) {
1518
+ @media (color-gamut: p3) {
1519
+ .fp-ColorPickerHueSlider:where(.fp-color-model-hsv, .fp-color-model-hsl):where(.fp-color-space-display-p3) {
1520
+ --slider-track-bg: linear-gradient(
1521
+ 90deg,
1522
+ color(display-p3 1 0 0) calc(var(--slider-track-size) / 2),
1523
+ color(display-p3 1 0.1875 0),
1524
+ color(display-p3 1 0.375 0),
1525
+ color(display-p3 1 0.5625 0),
1526
+ color(display-p3 1 0.75 0),
1527
+ color(display-p3 1 0.9375 0),
1528
+ color(display-p3 0.875 1 0),
1529
+ color(display-p3 0.6875 1 0),
1530
+ color(display-p3 0.5 1 0),
1531
+ color(display-p3 0.3125 1 0),
1532
+ color(display-p3 0.125 1 0),
1533
+ color(display-p3 0 1 0.0625),
1534
+ color(display-p3 0 1 0.25),
1535
+ color(display-p3 0 1 0.4375),
1536
+ color(display-p3 0 1 0.625),
1537
+ color(display-p3 0 1 0.8125),
1538
+ color(display-p3 0 1 1),
1539
+ color(display-p3 0 0.8125 1),
1540
+ color(display-p3 0 0.625 1),
1541
+ color(display-p3 0 0.4375 1),
1542
+ color(display-p3 0 0.25 1),
1543
+ color(display-p3 0 0.0625 1),
1544
+ color(display-p3 0.125 0 1),
1545
+ color(display-p3 0.3125 0 1),
1546
+ color(display-p3 0.5 0 1),
1547
+ color(display-p3 0.6875 0 1),
1548
+ color(display-p3 0.875 0 1),
1549
+ color(display-p3 1 0 0.9375),
1550
+ color(display-p3 1 0 0.75),
1551
+ color(display-p3 1 0 0.5625),
1552
+ color(display-p3 1 0 0.375),
1553
+ color(display-p3 1 0 0.1875) calc(100% - calc(var(--slider-track-size) / 2))
1554
+ );
1555
+ }
1556
+ }
1557
+ }
1558
+ .fp-ColorPickerAlphaSlider {
1559
+ --track-bg-step-1: var(--track-bg-transparent-srgb);
1560
+ --track-bg-step-2: var(--track-bg-opaque-srgb);
1561
+ --slider-thumb-bg: var(--thumb-bg-srgb);
1562
+
1563
+ --slider-track-bg: linear-gradient(
1564
+ to right,
1565
+ var(--track-bg-step-1) 0 calc(var(--slider-track-size) / 2),
1566
+ var(--track-bg-step-2) calc(100% - calc(var(--slider-track-size) / 2)) 100%
1567
+ ),
1568
+ 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')
1569
+ 0 0 / auto 66.66%,
1570
+ #fff;
1571
+ }
1572
+ @supports (color: color(display-p3 1 1 1)) {
1573
+ @media (color-gamut: p3) {
1574
+ .fp-ColorPickerAlphaSlider:where(.fp-color-space-display-p3) {
1575
+ --slider-thumb-bg: var(--thumb-bg-p3);
1576
+ --track-bg-step-1: var(--track-bg-transparent-p3);
1577
+ --track-bg-step-2: var(--track-bg-opaque-p3);
1578
+ }
1579
+ }
1580
+ }
1581
+ .fp-ColorPickerArea {
1582
+ position: relative;
1583
+ width: 100%;
1584
+ aspect-ratio: 1 / 1;
1585
+ }
1586
+ .fp-ColorPickerAreaCanvas {
1587
+ width: 100%;
1588
+ height: 100%;
1589
+ outline-width: 1px;
1590
+ outline-style: solid;
1591
+ outline-color: #0000001a; /*TODO: color-bordertranslucent*/
1592
+ outline-offset: -1px;
1593
+ --base-color: var(--base-color-srgb);
1594
+ --gradient-step-black: rgb(0 0 0);
1595
+ --gradient-step-black-transparent: rgb(0 0 0 / 0);
1596
+ --gradient-step-white: rgb(255 255 255);
1597
+ --gradient-step-white-transparent: rgb(255 255 255 / 0);
1598
+ --gradient-step-gray: rgb(128 128 128);
1599
+ --gradient-step-gray-transparent: rgb(128 128 128 / 0);
1600
+ }
1601
+ @supports (color: color(display-p3 1 1 1)) {
1602
+ @media (color-gamut: p3) {
1603
+ .fp-ColorPickerAreaCanvas:where(.fp-color-space-display-p3) {
1604
+ --base-color: var(--base-color-p3);
1605
+ --gradient-step-black: color(display-p3 0 0 0);
1606
+ --gradient-step-black-transparent: color(display-p3 0 0 0 / 0);
1607
+ --gradient-step-white: color(display-p3 1 1 1);
1608
+ --gradient-step-white-transparent: color(display-p3 1 1 1 / 0);
1609
+ --gradient-step-gray: color(display-p3 0.5 0.5 0.5);
1610
+ --gradient-step-gray-transparent: color(display-p3 0.5 0.5 0.5 / 0);
1611
+ }
1612
+ }
1613
+ }
1614
+ .fp-ColorPickerAreaCanvas:where(.fp-color-model-hsv, .fp-color-model-hex, .fp-color-model-rgb) {
1615
+ background: linear-gradient(to bottom, var(--gradient-step-black-transparent) 0%, var(--gradient-step-black) 100%),
1616
+ linear-gradient(to right, var(--gradient-step-white) 0%, var(--base-color) 100%);
1617
+ }
1618
+ .fp-ColorPickerAreaCanvas:where(.fp-color-model-hsl) {
1619
+ background: linear-gradient(
1620
+ to bottom,
1621
+ var(--gradient-step-white) 0%,
1622
+ var(--gradient-step-white-transparent) 49.99%,
1623
+ var(--gradient-step-black-transparent) 50.01%,
1624
+ var(--gradient-step-black) 100%
1625
+ ),
1626
+ linear-gradient(to right, var(--gradient-step-gray) 0%, var(--gradient-step-gray-transparent) 100%),
1627
+ var(--base-color);
1628
+ }
1629
+ .fp-ColorPickerThumb {
1630
+ position: absolute;
1631
+ box-sizing: border-box;
1632
+ box-shadow: var(--elevation-200);
1633
+ left: 0;
1634
+ transform: translate(-50%, -50%);
1635
+ width: 16px;
1636
+ height: 16px;
1637
+ border-radius: 8px;
1638
+ border-style: solid;
1639
+ border-width: 4px;
1640
+ border-color: white;
1641
+ background: var(--thumb-bg-srgb);
1642
+ }
1643
+ .fp-ColorPickerThumb:focus-visible {
1644
+ outline: 1px solid var(--figma-color-border-selected);
1645
+ }
1646
+ @supports (color: color(display-p3 1 1 1)) {
1647
+ @media (color-gamut: p3) {
1648
+ .fp-ColorPickerThumb:where(.fp-color-space-display-p3) {
1649
+ background: var(--thumb-bg-p3);
1650
+ }
1651
+ }
1652
+ }