@rogieking/figui3 6.23.4 → 6.24.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/README.md CHANGED
@@ -119,6 +119,7 @@ Minimal example:
119
119
  | [Popup](#popup) | `<fig-popup>` | Anchored floating surface |
120
120
  | [Toast](#toast) | `<fig-toast>` | Toast notification |
121
121
  | [Tooltip](#tooltip) | `<fig-tooltip>` | Hover/click tooltip |
122
+ | [Separator](#separator) | `<fig-separator>` | Visual divider with an optional label |
122
123
  | [Menu](#menu) | `<fig-menu>` | Triggered menu with keyboard navigation |
123
124
  | [Header](#header) | `<fig-header>` | Section header |
124
125
  | [Layer](#layer) | `<fig-layer>` | Collapsible layer list item from `fig-layer.js` |
@@ -1151,9 +1152,22 @@ Escape dismisses an open tooltip and returns focus to its trigger.
1151
1152
 
1152
1153
  ---
1153
1154
 
1155
+ #### Separator
1156
+
1157
+ `<fig-separator>` — [demo](https://rog.ie/figui3/#separator)
1158
+
1159
+ A visual divider between content groups. The optional `label` attribute adds a group label and accessible name.
1160
+
1161
+ ```html
1162
+ <fig-separator></fig-separator>
1163
+ <fig-separator label="More"></fig-separator>
1164
+ ```
1165
+
1166
+ ---
1167
+
1154
1168
  #### Menu
1155
1169
 
1156
- `<fig-menu>` / `<fig-menu-item>` / `<fig-menu-separator>` — [demo](https://rog.ie/figui3/#menu)
1170
+ `<fig-menu>` / `<fig-menu-item>` / `<fig-separator>` — [demo](https://rog.ie/figui3/#menu)
1157
1171
 
1158
1172
  Triggered menu with native keyboard patterns. The trigger gets `aria-haspopup="menu"`, `aria-expanded`, and `aria-controls`; menu items use `role="menuitem"` and disabled items are skipped by keyboard navigation.
1159
1173
 
@@ -1175,14 +1189,14 @@ Triggered menu with native keyboard patterns. The trigger gets `aria-haspopup="m
1175
1189
  <fig-button fig-menu-trigger>Actions</fig-button>
1176
1190
  <fig-menu-item value="copy">Copy</fig-menu-item>
1177
1191
  <fig-menu-item value="paste">Paste</fig-menu-item>
1178
- <fig-menu-separator></fig-menu-separator>
1192
+ <fig-separator></fig-separator>
1179
1193
  <fig-menu-item value="delete" disabled>Delete</fig-menu-item>
1180
- <fig-menu-separator label="More"></fig-menu-separator>
1194
+ <fig-separator label="More"></fig-separator>
1181
1195
  <fig-menu-item value="settings">Settings</fig-menu-item>
1182
1196
  </fig-menu>
1183
1197
  ```
1184
1198
 
1185
- `fig-menu-separator` accepts optional `label` — renders the rule, then secondary group text underneath.
1199
+ `fig-separator` accepts optional `label` — renders the rule, then secondary group text underneath.
1186
1200
 
1187
1201
  ---
1188
1202
 
package/components.css CHANGED
@@ -1245,6 +1245,7 @@ fig-avatar,
1245
1245
  }
1246
1246
  &::after {
1247
1247
  content: attr(initials);
1248
+ font-size: var(--body-medium-fontSize);
1248
1249
  }
1249
1250
  &[size="large"] {
1250
1251
  --size: 3rem;
@@ -4598,6 +4599,7 @@ fig-joystick {
4598
4599
  /* Shimmer */
4599
4600
  fig-shimmer {
4600
4601
  display: contents;
4602
+ color: var(--figma-color-text-secondary);
4601
4603
  --fig-shimmer-angle: 90deg;
4602
4604
  --fig-shimmer-bright-fill-color: var(--figma-color-bg-tertiary);
4603
4605
  --fig-shimmer-bright-text-color: var(--figma-color-text);
@@ -5400,7 +5402,7 @@ fig-menu {
5400
5402
  display: contents;
5401
5403
 
5402
5404
  & > fig-menu-item,
5403
- & > fig-menu-separator {
5405
+ & > fig-separator {
5404
5406
  display: none;
5405
5407
  }
5406
5408
  }
@@ -5571,11 +5573,10 @@ fig-select-options,
5571
5573
 
5572
5574
  }
5573
5575
 
5574
- fig-select-options > fig-menu-separator {
5576
+ fig-select-options > fig-separator {
5575
5577
  /* Align labels with select option text after the checkmark column. */
5576
5578
  &[label]:not([label=""]) {
5577
- padding-left: var(--spacer-5);
5578
- padding-right: var(--spacer-2);
5579
+ --fig-menu-inline-padding: 0 var(--spacer-2) 0 var(--spacer-5);
5579
5580
 
5580
5581
  &::before {
5581
5582
  margin-inline: unset;
@@ -5708,27 +5709,24 @@ fig-menu-item {
5708
5709
  }
5709
5710
  }
5710
5711
 
5711
- fig-menu-separator {
5712
- --fig-menu-separator-color: var(--figma-color-border);
5713
- --fig-menu-separator-label-color: var(--figma-color-text-secondary);
5712
+ fig-separator {
5713
+ --fig-separator-color: var(--figma-color-border);
5714
+ --fig-separator-label-color: var(--figma-color-text-secondary);
5715
+ --fig-menu-inline-padding: 0 var(--spacer-3);
5714
5716
 
5715
5717
  display: block;
5718
+ box-sizing: border-box;
5719
+ width: 100%;
5716
5720
  height: 1px;
5717
5721
  margin: var(--spacer-2) 0;
5718
5722
  padding: 0;
5719
5723
  border: 0;
5720
- background: var(--fig-menu-separator-color);
5721
- color: var(--fig-menu-separator-label-color);
5724
+ background: var(--fig-separator-color);
5725
+ color: var(--fig-separator-label-color);
5722
5726
  font-weight: var(--body-medium-fontWeight);
5723
5727
  pointer-events: none;
5724
5728
  user-select: none;
5725
5729
 
5726
- &:first-of-type{
5727
- &[label]:not([label=""])::before {
5728
- display: none;
5729
- }
5730
- }
5731
-
5732
5730
  /* Labeled: rule, then secondary group label (same pattern as menu optgroups). */
5733
5731
  &[label]:not([label=""]) {
5734
5732
  display: flex;
@@ -5737,29 +5735,46 @@ fig-menu-separator {
5737
5735
  height: auto;
5738
5736
  margin: var(--spacer-2) 0;
5739
5737
  margin-bottom: var(--spacer-1);
5740
- padding: 0 var(--fig-menu-item-padding, var(--spacer-4));
5738
+ padding: var(--fig-menu-inline-padding);
5741
5739
  background: transparent;
5742
5740
 
5743
5741
  &::before {
5744
5742
  content: "";
5745
5743
  display: block;
5746
5744
  height: 1px;
5747
- margin-inline: calc(-1 * var(--fig-menu-item-padding, var(--spacer-4)));
5748
- background: var(--fig-menu-separator-color);
5745
+ margin-inline: calc(-1 * var(--spacer-3));
5746
+ background: var(--fig-separator-color);
5749
5747
  }
5750
5748
 
5751
5749
  &::after {
5752
5750
  content: attr(label);
5753
5751
  display: block;
5754
- color: var(--fig-menu-separator-label-color);
5752
+ color: var(--fig-separator-label-color);
5755
5753
  line-height: var(--spacer-4);
5756
5754
  min-height: var(--spacer-4);
5757
5755
  }
5758
5756
  }
5759
5757
  }
5760
5758
 
5761
- dialog[is="fig-popup"][theme="menu"] fig-menu-separator,
5762
- fig-select-options > fig-menu-separator {
5763
- --fig-menu-separator-color: var(--figma-color-border-menu);
5764
- --fig-menu-separator-label-color: var(--figma-color-text-menu-secondary);
5759
+ dialog[is="fig-popup"][theme="menu"]
5760
+ fig-separator:first-child[label]:not([label=""])::before,
5761
+ fig-select-options > fig-separator:first-child[label]:not([label=""])::before {
5762
+ display: none;
5763
+ }
5764
+
5765
+ dialog[is="fig-popup"][theme="menu"] fig-separator,
5766
+ fig-select-options > fig-separator {
5767
+ --fig-separator-color: var(--figma-color-border-menu);
5768
+ --fig-separator-label-color: var(--figma-color-text-menu-secondary);
5769
+ }
5770
+
5771
+ dialog[is="fig-popup"][theme="menu"] fig-separator {
5772
+ --fig-menu-inline-padding: 0
5773
+ var(--fig-menu-item-padding, var(--spacer-4));
5774
+
5775
+ &[label]:not([label=""])::before {
5776
+ margin-inline: calc(
5777
+ -1 * var(--fig-menu-item-padding, var(--spacer-4))
5778
+ );
5779
+ }
5765
5780
  }