@rogieking/figui3 8.9.48 → 8.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/skills/fig-editor/SKILL.md +3 -3
- package/.cursor/skills/fig-editor/components.md +2 -2
- package/.cursor/skills/fig-editor/reference.md +3 -0
- package/.cursor/skills/fig-lab/SKILL.md +14 -5
- package/.cursor/skills/fig-lab/components.md +90 -12
- package/.cursor/skills/fig-lab/reference.md +107 -11
- package/.cursor/skills/figui3/components.md +3 -0
- package/.cursor/skills/figui3/react.md +4 -0
- package/README.md +171 -56
- package/components.css +36 -12
- package/dist/components.css +1 -1
- package/dist/fig-editor.css +1 -1
- package/dist/fig-editor.js +18 -5
- package/dist/fig-lab.css +1 -1
- package/dist/fig-lab.js +1 -3
- package/dist/fig.css +1 -1
- package/dist/fig.js +7 -7
- package/fig-editor.css +10 -0
- package/fig-editor.js +100 -10
- package/fig-lab.css +1497 -451
- package/fig-lab.js +2171 -1146
- package/fig.js +74 -30
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -103,14 +103,19 @@ Minimal example:
|
|
|
103
103
|
| [Radio](#radio) | `<fig-radio>` | Radio button |
|
|
104
104
|
| [Switch](#switch) | `<fig-switch>` | Toggle switch |
|
|
105
105
|
| [Slider](#slider) | `<fig-slider>` | Range, hue, opacity, delta, stepper |
|
|
106
|
-
| [Propskit Slider](#propskit-slider) | `<propskit-slider>` | Labeled
|
|
106
|
+
| [Propskit Slider](#propskit-slider) | `<propskit-slider>` | Labeled slider surface |
|
|
107
107
|
| [Input Wheel](#input-wheel) | `<fig-input-wheel>` | Standalone SVG tick-and-handle numeric scrubber |
|
|
108
108
|
| [Propskit Wheel](#propskit-wheel) | `<propskit-wheel>` | Labeled input wheel with optional number field |
|
|
109
109
|
| [Propskit Color](#propskit-color) | `<propskit-color>` | Full-surface labeled color control |
|
|
110
110
|
| [Propskit Fill](#propskit-fill) | `<propskit-fill>` | Full-surface labeled fill control |
|
|
111
111
|
| [Propskit Gradient](#propskit-gradient) | `<propskit-gradient>` | Full-surface labeled gradient control |
|
|
112
|
+
| [Propskit Palette](#propskit-palette) | `<propskit-palette>` | Labeled palette selector |
|
|
112
113
|
| [Propskit Number](#propskit-number) | `<propskit-number>` | Full-surface labeled number control |
|
|
113
114
|
| [Propskit Position](#propskit-position) | `<propskit-position>` | Compact X/Y control |
|
|
115
|
+
| [Propskit Joystick](#propskit-joystick) | `<propskit-joystick>` | Labeled two-axis joystick |
|
|
116
|
+
| [Propskit Origin](#propskit-origin) | `<propskit-origin>` | Labeled transform-origin grid |
|
|
117
|
+
| [Propskit Easing](#propskit-easing) | `<propskit-easing>` | Labeled cubic-bezier editor |
|
|
118
|
+
| [Propskit Spring](#propskit-spring) | `<propskit-spring>` | Labeled spring editor |
|
|
114
119
|
| [Propskit Color Point](#propskit-color-point) | `<propskit-color-point>` | Collapsible color and position group |
|
|
115
120
|
| [Propskit Point Point](#propskit-point-point) | `<propskit-point-point>` | Collapsible start and end position group |
|
|
116
121
|
| [Propskit Point Radius](#propskit-point-radius) | `<propskit-point-radius>` | Collapsible position and radius group |
|
|
@@ -231,11 +236,12 @@ Custom listbox select with overflow chevrons, grouped options, and sticky separa
|
|
|
231
236
|
| `label` | string | — | Closed-state / accessible label |
|
|
232
237
|
| `options` | string | — | Comma, newline, or JSON options if no authored `fig-select-option` children |
|
|
233
238
|
| `variant` | string | — | `"ghost"` for a borderless control with secondary hover fill |
|
|
239
|
+
| `subtle` | boolean | `false` | Use the secondary hover/focus fill for every option |
|
|
234
240
|
| `full` | boolean | `false` | Stretch to available width |
|
|
235
241
|
| `position` | string | `"bottom left"` | Popup position |
|
|
236
242
|
| `disabled` | boolean | `false` | Disabled state |
|
|
237
243
|
|
|
238
|
-
Author options in `<fig-select-options>`, or pass `options`. Use `label` on `<fig-select-option>` when the option content is rich. `fig-separator` with `sticky` pins group labels while scrolling.
|
|
244
|
+
Author options in `<fig-select-options>`, or pass `options`. Add `subtle` to one `<fig-select-option>` for the secondary hover/focus fill, or to `<fig-select>` to apply it to every option. Use `label` on `<fig-select-option>` when the option content is rich. `fig-separator` with `sticky` pins group labels while scrolling.
|
|
239
245
|
|
|
240
246
|
```html
|
|
241
247
|
<fig-select value="center" label="Align">
|
|
@@ -359,36 +365,45 @@ Author options in `<fig-select-options>`, or pass `options`. Use `label` on `<fi
|
|
|
359
365
|
|
|
360
366
|
For `type="range"`, omitting `value` follows native range behavior and starts at the midpoint of `min` and `max`. Arrow keys move by `step`; hold Shift to move by a larger step.
|
|
361
367
|
|
|
362
|
-
Full-surface `propskit-*` controls support `variant="minimal"`. The minimal variant removes vertical row padding and keeps the field background transparent until hover. It is available on switch, color, fill, gradient, select, text, number, slider, position, and wheel controls.
|
|
363
|
-
|
|
364
368
|
---
|
|
365
369
|
|
|
366
370
|
#### Propskit Number
|
|
367
371
|
|
|
368
372
|
`<propskit-number>`
|
|
369
373
|
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
PropsKit controls use the 40px large layout when `size` is omitted. Set
|
|
373
|
-
`size="small"` for the compact 32px row layout. Explicit `size="large"`
|
|
374
|
-
remains supported as an alias for the default layout.
|
|
374
|
+
Uses a plain horizontal surface with `<fig-input-number>`. Number attributes are forwarded to the inner input.
|
|
375
375
|
|
|
376
376
|
All PropsKit inputs expose `defaultValue`, `isDefault`, and `resetToDefault()`. A
|
|
377
377
|
`propskit-group` uses this shared contract to track its `dirty` state and reset
|
|
378
|
-
each nested input to its own current `default`.
|
|
379
|
-
|
|
380
|
-
|
|
378
|
+
each nested input to its own current `default`.
|
|
379
|
+
|
|
380
|
+
Surface labels default to `"Label"` when omitted; `label=""` removes the visible
|
|
381
|
+
label. PropsKit `input` and `change` events dispatch from the outer control with
|
|
382
|
+
`detail: { control, value, name? }`, and `event.target.value` is the same typed
|
|
383
|
+
value. `name` is included only when a non-empty `name` attribute is authored.
|
|
384
|
+
Switch values are boolean. Number, slider, and wheel values are finite numbers
|
|
385
|
+
or `null`; structured and
|
|
386
|
+
serialized controls expose their exact public `.value`. Select `optionhover`
|
|
387
|
+
uses the same envelope. `openchange` and group `reset` keep their semantic
|
|
388
|
+
details.
|
|
389
|
+
|
|
390
|
+
Shared surface variables are `--propskit-padding-block`,
|
|
391
|
+
`--propskit-padding-inline`, `--propskit-background`, `--propskit-border`,
|
|
392
|
+
`--propskit-color`, `--propskit-hover-background`, `--propskit-hover-border`,
|
|
393
|
+
`--propskit-hover-color`, `--propskit-label-inline-size`, and
|
|
394
|
+
`--propskit-input-inline-size`. Override one component with the matching prefix,
|
|
395
|
+
such as `--propskit-select-background` or
|
|
396
|
+
`--propskit-number-input-inline-size`.
|
|
381
397
|
|
|
382
398
|
| Attribute | Type | Default | Description |
|
|
383
399
|
|---|---|---|---|
|
|
384
400
|
| `label` | string | `"Label"` | Field label text; use an empty value to hide it |
|
|
385
|
-
| `
|
|
386
|
-
| `size` | string | default | Set to `"small"` for the compact layout |
|
|
401
|
+
| `name` | string | — | Optional event payload name |
|
|
387
402
|
| `default` | number/string | initial `value` | Right-click reset target |
|
|
388
403
|
| `disabled` | boolean | `false` | Disable interaction |
|
|
389
404
|
| *number attrs* | — | — | All `<fig-input-number>` attributes are forwarded |
|
|
390
405
|
|
|
391
|
-
**Events:** `input`, `change` —
|
|
406
|
+
**Events:** `input`, `change` — shared PropsKit envelope with `value: number | null`.
|
|
392
407
|
|
|
393
408
|
Right-click and choose **Reset**, or call `resetToDefault()`, to restore `default` (falling back to the initial value).
|
|
394
409
|
|
|
@@ -402,11 +417,11 @@ Right-click and choose **Reset**, or call `resetToDefault()`, to restore `defaul
|
|
|
402
417
|
|
|
403
418
|
`<propskit-color>`
|
|
404
419
|
|
|
405
|
-
|
|
420
|
+
Uses a plain horizontal surface with a solid `fig-fill-picker` swatch. Clicking the surface opens the color picker. There is no hex/opacity text field.
|
|
406
421
|
|
|
407
|
-
**Attributes:** `label`, `value`, `default`, `alpha`, `disabled
|
|
422
|
+
**Attributes:** `label`, `value`, `default`, `alpha`, `disabled`
|
|
408
423
|
|
|
409
|
-
**Events:** `input`, `change` —
|
|
424
|
+
**Events:** `input`, `change` — shared PropsKit envelope; `value` is the public color string.
|
|
410
425
|
|
|
411
426
|
Right-click and choose **Reset**, or call `resetToDefault()`, to restore `default` or the initial color.
|
|
412
427
|
|
|
@@ -420,11 +435,11 @@ Right-click and choose **Reset**, or call `resetToDefault()`, to restore `defaul
|
|
|
420
435
|
|
|
421
436
|
`<propskit-fill>`
|
|
422
437
|
|
|
423
|
-
|
|
438
|
+
Uses a plain horizontal surface with a `fig-fill-picker` swatch, sharing chrome with `propskit-color`. Clicking the surface opens the fill picker for solid, gradient, image, video, webcam, and custom modes. There is no hex/opacity text field.
|
|
424
439
|
|
|
425
|
-
**Attributes:** `label`, `value` (fill JSON), `default`, `mode`, `alpha`, `webcam-mode`, `default-video`, `disabled
|
|
440
|
+
**Attributes:** `label`, `value` (fill JSON), `default`, `mode`, `alpha`, `webcam-mode`, `default-video`, `disabled`
|
|
426
441
|
|
|
427
|
-
**Events:** `input`, `change` —
|
|
442
|
+
**Events:** `input`, `change` — shared PropsKit envelope; `value` is the host's serialized fill value.
|
|
428
443
|
|
|
429
444
|
Right-click and choose **Reset**, or call `resetToDefault()`, to restore `default` or the initial fill. Slot `mode-*` children onto the host to add custom picker tabs.
|
|
430
445
|
|
|
@@ -441,7 +456,7 @@ Right-click and choose **Reset**, or call `resetToDefault()`, to restore `defaul
|
|
|
441
456
|
|
|
442
457
|
`<propskit-gradient>`
|
|
443
458
|
|
|
444
|
-
|
|
459
|
+
Uses a plain horizontal surface with `<fig-input-gradient>`. Defaults to `edit="picker"` — click the surface to open the fill picker.
|
|
445
460
|
|
|
446
461
|
| Attribute | Type | Default | Description |
|
|
447
462
|
|---|---|---|---|
|
|
@@ -451,9 +466,8 @@ Composes a `<fig-field>` and `<fig-input-gradient>` into a full-surface property
|
|
|
451
466
|
| `edit` | boolean/string | `"picker"` | `true` (inline stops), `false`, or `"picker"` |
|
|
452
467
|
| `mode` | string | `"handle"` | `"handle"` or `"tip"` stop presentation |
|
|
453
468
|
| `disabled` | boolean | `false` | Disabled state |
|
|
454
|
-
| `size` | string | default | Set to `"small"` for the compact layout |
|
|
455
469
|
|
|
456
|
-
**Events:** `input`, `change` —
|
|
470
|
+
**Events:** `input`, `change` — shared PropsKit envelope; `value` is the host's serialized gradient value.
|
|
457
471
|
|
|
458
472
|
**Methods and state:** `defaultValue`, `isDefault`, and `resetToDefault()`. JSON defaults use structural equality, so object key order does not affect dirty state.
|
|
459
473
|
|
|
@@ -469,15 +483,40 @@ Click the field to open the fill picker. With `edit="true"`, the first stop rece
|
|
|
469
483
|
|
|
470
484
|
---
|
|
471
485
|
|
|
486
|
+
#### Propskit Palette
|
|
487
|
+
|
|
488
|
+
`<propskit-palette>`
|
|
489
|
+
|
|
490
|
+
Uses a plain horizontal surface with a selection-only `<fig-input-palette>` preview inside `<fig-select>`. Import `fig-editor.js` and `fig-editor.css`. Clicking anywhere on the surface opens the palette menu.
|
|
491
|
+
|
|
492
|
+
`options` is a JSON array of palettes. Each palette accepts color strings or `{ "color", "alpha" }` objects. The first palette is selected when `value` is omitted.
|
|
493
|
+
|
|
494
|
+
**Attributes:** `label`, `name`, `value` (palette JSON), `default` (palette JSON), `options`, `disabled`
|
|
495
|
+
|
|
496
|
+
**Events:** `input`, `change`, `optionhover` — shared PropsKit envelope with a typed `Array<{ color, alpha }>` value. `optionhover` does not change the selection.
|
|
497
|
+
|
|
498
|
+
**Methods and state:** `defaultValue`, `isDefault`, and `resetToDefault()`.
|
|
499
|
+
|
|
500
|
+
```html
|
|
501
|
+
<propskit-palette
|
|
502
|
+
label="Palette"
|
|
503
|
+
options='[["#0D99FF","#14AE5C"],[{"color":"#FFCD29","alpha":0.5},"#F24822"]]'
|
|
504
|
+
></propskit-palette>
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
---
|
|
508
|
+
|
|
472
509
|
#### Propskit Switch
|
|
473
510
|
|
|
474
511
|
`<propskit-switch>`
|
|
475
512
|
|
|
476
|
-
|
|
513
|
+
Uses a plain horizontal surface with `<fig-switch>` by default. The entire
|
|
514
|
+
surface toggles the switch. Set `variant="segmented-control"` to render an
|
|
515
|
+
Off/On `<fig-segmented-control>` instead.
|
|
477
516
|
|
|
478
|
-
**Attributes:** `label`, `checked`, `default`, `disabled`, `name`, `value`, `
|
|
517
|
+
**Attributes:** `label`, `checked`, `default`, `disabled`, `name`, `value`, `variant` (`switch` | `segmented-control`)
|
|
479
518
|
|
|
480
|
-
**Events:** `input`, `change` —
|
|
519
|
+
**Events:** `input`, `change` — shared PropsKit envelope with the public boolean value.
|
|
481
520
|
|
|
482
521
|
Right-click and choose **Reset**, or call `resetToDefault()`, to restore the default checked state.
|
|
483
522
|
|
|
@@ -491,11 +530,11 @@ Right-click and choose **Reset**, or call `resetToDefault()`, to restore the def
|
|
|
491
530
|
|
|
492
531
|
`<propskit-select>`
|
|
493
532
|
|
|
494
|
-
|
|
533
|
+
Uses a plain horizontal surface and always composes `<fig-select>`. Import `fig-editor.js` and `fig-editor.css`; delayed registration upgrades the authored select. Options can come from the `options` attribute (same formats as `fig-options`: comma-separated, newline-delimited, or a JSON array), or from an authored `<fig-select-options>` child for rich option content.
|
|
495
534
|
|
|
496
|
-
**Attributes:** `label`, `value`, `default`, `options`, `disabled
|
|
535
|
+
**Attributes:** `label`, `value`, `default`, `options`, `disabled`
|
|
497
536
|
|
|
498
|
-
**Events:** `input`, `change`, `optionhover` —
|
|
537
|
+
**Events:** `input`, `change`, `optionhover` — shared PropsKit envelope. `optionhover` uses the hovered option as `detail.value` without changing the selection.
|
|
499
538
|
|
|
500
539
|
Right-click and choose **Reset**, or call `resetToDefault()`, to restore `default` or the initial selection.
|
|
501
540
|
|
|
@@ -519,11 +558,11 @@ Right-click and choose **Reset**, or call `resetToDefault()`, to restore `defaul
|
|
|
519
558
|
|
|
520
559
|
`<propskit-text>`
|
|
521
560
|
|
|
522
|
-
|
|
561
|
+
Uses a plain horizontal surface with `<fig-input-text type="text">`. The inner input defaults to `multiline` and `autoresize`, starts at one line, and grows to a maximum of four lines. Set either attribute to `"false"` to disable that behavior. Other text input attributes and adornment slots are forwarded to the inner control; `type` is not forwarded.
|
|
523
562
|
|
|
524
|
-
**Attributes:** `label`, `value`, `default`, `placeholder`, `
|
|
563
|
+
**Attributes:** `label`, `value`, `default`, `placeholder`, `disabled`, `readonly`, `multiline`, `autoresize`
|
|
525
564
|
|
|
526
|
-
**Events:** `input`, `change` —
|
|
565
|
+
**Events:** `input`, `change` — shared PropsKit envelope with the public string value.
|
|
527
566
|
|
|
528
567
|
Right-click and choose **Reset**, or call `resetToDefault()`, to restore `default` or the initial text.
|
|
529
568
|
|
|
@@ -537,18 +576,17 @@ Right-click and choose **Reset**, or call `resetToDefault()`, to restore `defaul
|
|
|
537
576
|
|
|
538
577
|
`<propskit-slider>`
|
|
539
578
|
|
|
540
|
-
|
|
579
|
+
Uses a plain horizontal surface with `<fig-slider>`. Slider attributes except host-only PropsKit attributes are forwarded to the inner slider.
|
|
541
580
|
|
|
542
581
|
| Attribute | Type | Default | Description |
|
|
543
582
|
|---|---|---|---|
|
|
544
|
-
| `label` | string |
|
|
545
|
-
| `
|
|
546
|
-
| `size` | string | default | Set to `"small"` for the compact layout |
|
|
583
|
+
| `label` | string | `"Label"` | Field label text; use an empty value to hide it |
|
|
584
|
+
| `name` | string | — | Optional event payload name |
|
|
547
585
|
| `default` | number/string | initial `value` | Double-click and right-click reset target |
|
|
548
586
|
| `disabled` | boolean | `false` | Disable interaction |
|
|
549
587
|
| *slider attrs* | — | — | All `<fig-slider>` attributes except host-only PropsKit attributes are forwarded |
|
|
550
588
|
|
|
551
|
-
**Events:** `input`, `change` —
|
|
589
|
+
**Events:** `input`, `change` — shared PropsKit envelope with `value: number | null`.
|
|
552
590
|
|
|
553
591
|
Double-click or right-click and choose **Reset** to restore `default`, falling back to the initial value.
|
|
554
592
|
|
|
@@ -593,11 +631,12 @@ The `value`, `min`, `max`, and `step` properties mirror their attributes. `aria-
|
|
|
593
631
|
|
|
594
632
|
A labeled numeric scrubber that composes `<fig-input-wheel>` with an optional `<fig-input-number>`. The host provides row chrome and reset behavior; there is no `fig-field` or `fig-slider`.
|
|
595
633
|
|
|
596
|
-
Omitted `label` renders `"
|
|
634
|
+
Omitted `label` renders `"Label"`; `label=""` removes the visible label. Units are omitted by default and arbitrary values such as `px` pass through unchanged. Units remain wrapper and number-field behavior: time aliases receive time-focused defaults, and the effective step is applied to the child wheel without setting a child `units` attribute.
|
|
597
635
|
|
|
598
636
|
| Attribute | Type | Default | Description |
|
|
599
637
|
|---|---|---|---|
|
|
600
|
-
| `label` | string | `"
|
|
638
|
+
| `label` | string | `"Label"` | Empty removes the visible label |
|
|
639
|
+
| `name` | string | — | Optional event payload name |
|
|
601
640
|
| `units` | string | — | Optional arbitrary units. `seconds` / `milliseconds` normalize to `s` / `ms` |
|
|
602
641
|
| `value` | number | `0` | Numeric value in `units`. Unbounded unless `min`/`max` are set |
|
|
603
642
|
| `min` | number | — | Inclusive lower bound. Omit for no minimum |
|
|
@@ -607,12 +646,10 @@ Omitted `label` renders `"Value"`. If `label` is set, including `label=""`, that
|
|
|
607
646
|
| `elastic` | boolean/string | `true` | Stretch the composed row past the wheel edges; set `"false"` to disable row stretch. The handle still pulls |
|
|
608
647
|
| `spin` | boolean/string | `true` | Keep wheel ticks synchronized to `value`; set `"false"` to update only the value and number field |
|
|
609
648
|
| `text` | boolean/string | `true` | Include the editable `fig-input-number`; set `"false"` for only `fig-input-wheel` |
|
|
610
|
-
| `size` | string | default | Set to `"small"` for the compact layout |
|
|
611
649
|
| `default` | number/string | initial `value` | Right-click reset target |
|
|
612
650
|
| `disabled` | boolean | `false` | Disable wheel and number |
|
|
613
|
-
| `variant` | string | — | `"minimal"` removes vertical padding |
|
|
614
651
|
|
|
615
|
-
**Events:** `input` while dragging or typing; `change` on commit. Dragging moves by `step` on every `input`; hold Shift to scrub at `10× step`. `precision` only formats the displayed number. Arrow keys on the focused wheel move by `step`; Shift+arrow moves by `10× step`.
|
|
652
|
+
**Events:** `input` while dragging or typing; `change` on commit. Both use the shared PropsKit envelope with `value: number | null`. Dragging moves by `step` on every `input`; hold Shift to scrub at `10× step`. `precision` only formats the displayed number. Arrow keys on the focused wheel move by `step`; Shift+arrow moves by `10× step`.
|
|
616
653
|
|
|
617
654
|
```html
|
|
618
655
|
<propskit-wheel label="Duration" value="1.5" default="0" units="seconds"></propskit-wheel>
|
|
@@ -634,14 +671,13 @@ A compact X/Y field with optional percentage units.
|
|
|
634
671
|
| `x` | number | `50` | Horizontal value |
|
|
635
672
|
| `y` | number | `50` | Vertical value |
|
|
636
673
|
| `default` | JSON string | initial `{ x, y }` | Right-click and group reset target |
|
|
637
|
-
| `label` | string | `"
|
|
674
|
+
| `label` | string | `"Label"` | Field label; empty removes the visible label |
|
|
638
675
|
| `units` | string | — | `"percent"` shows `%`; omit for no units |
|
|
639
|
-
| `size` | string | default | Set to `"small"` for the compact row |
|
|
640
676
|
| `disabled` | boolean | `false` | Disable both number inputs |
|
|
641
677
|
|
|
642
678
|
**Properties and methods:** `x`, `y`, and `value` expose the current coordinates; `defaultValue` returns the normalized reset object; `isDefault` compares both coordinates; `resetToDefault()` restores both values.
|
|
643
679
|
|
|
644
|
-
**Events:** `input` and `change`
|
|
680
|
+
**Events:** `input` and `change` use the shared PropsKit envelope with the public `{ x, y, units }` value.
|
|
645
681
|
|
|
646
682
|
```html
|
|
647
683
|
<propskit-position
|
|
@@ -655,6 +691,87 @@ A compact X/Y field with optional percentage units.
|
|
|
655
691
|
|
|
656
692
|
---
|
|
657
693
|
|
|
694
|
+
#### Propskit Joystick
|
|
695
|
+
|
|
696
|
+
`<propskit-joystick>`
|
|
697
|
+
|
|
698
|
+
A vertical PropsKit surface with a label above a square `fig-joystick` and its X/Y percentage fields.
|
|
699
|
+
|
|
700
|
+
| Attribute | Type | Default | Description |
|
|
701
|
+
|---|---|---|---|
|
|
702
|
+
| `value` | JSON string | `{"x":50,"y":50}` | Current percentage coordinates |
|
|
703
|
+
| `default` | JSON string | initial value | Right-click and group reset target |
|
|
704
|
+
| `label` | string | `"Label"` | Field label; empty removes the visible label |
|
|
705
|
+
| `axis-labels` | string | — | One, two, or four labels forwarded to the joystick |
|
|
706
|
+
| `coordinates` | string | `"screen"` | `"screen"` or `"math"` coordinate mode |
|
|
707
|
+
| `precision` | number | `3` | X/Y field display precision |
|
|
708
|
+
| `disabled` | boolean | `false` | Disable the joystick and both fields |
|
|
709
|
+
|
|
710
|
+
The inner joystick always uses `fields="true"` and `aspect-ratio="1 / 1"`. The `.value`, `defaultValue`, and event values are typed `{ x, y }` percentage objects. `isDefault` compares both axes and `resetToDefault()` restores the reset value.
|
|
711
|
+
|
|
712
|
+
```html
|
|
713
|
+
<propskit-joystick
|
|
714
|
+
label="Position"
|
|
715
|
+
value='{"x":35,"y":65}'
|
|
716
|
+
default='{"x":50,"y":50}'
|
|
717
|
+
axis-labels="X Y"
|
|
718
|
+
></propskit-joystick>
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
---
|
|
722
|
+
|
|
723
|
+
#### Propskit Origin
|
|
724
|
+
|
|
725
|
+
`<propskit-origin>`
|
|
726
|
+
|
|
727
|
+
A vertical PropsKit surface with a label above a square `fig-origin-grid` and its X/Y percentage fields. The inner grid always uses `fields="true"` and `aspect-ratio="1 / 1"`.
|
|
728
|
+
|
|
729
|
+
Its `.value`, `defaultValue`, and event values are typed `{ x, y }` objects. The `value` and `default` attributes serialize that shape as JSON. `precision` and `drag` pass through to the grid.
|
|
730
|
+
|
|
731
|
+
```html
|
|
732
|
+
<propskit-origin
|
|
733
|
+
label="Transform origin"
|
|
734
|
+
value='{"x":50,"y":50}'
|
|
735
|
+
default='{"x":50,"y":50}'
|
|
736
|
+
></propskit-origin>
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
---
|
|
740
|
+
|
|
741
|
+
#### Propskit Easing
|
|
742
|
+
|
|
743
|
+
`<propskit-easing>`
|
|
744
|
+
|
|
745
|
+
A vertical PropsKit surface around `fig-easing-curve`, constrained to cubic-bezier presets. Its typed value is `{ x1, y1, x2, y2 }`; `value` and `default` serialize that shape as JSON.
|
|
746
|
+
|
|
747
|
+
```html
|
|
748
|
+
<propskit-easing
|
|
749
|
+
label="Easing"
|
|
750
|
+
value='{"x1":0.42,"y1":0,"x2":0.58,"y2":1}'
|
|
751
|
+
default='{"x1":0.42,"y1":0,"x2":0.58,"y2":1}'
|
|
752
|
+
></propskit-easing>
|
|
753
|
+
```
|
|
754
|
+
|
|
755
|
+
---
|
|
756
|
+
|
|
757
|
+
#### Propskit Spring
|
|
758
|
+
|
|
759
|
+
`<propskit-spring>`
|
|
760
|
+
|
|
761
|
+
A vertical PropsKit surface around `fig-easing-curve`, constrained to spring presets. Its typed value is `{ stiffness, damping, mass }`; `value` and `default` serialize that shape as JSON.
|
|
762
|
+
|
|
763
|
+
```html
|
|
764
|
+
<propskit-spring
|
|
765
|
+
label="Spring"
|
|
766
|
+
value='{"stiffness":200,"damping":15,"mass":1}'
|
|
767
|
+
default='{"stiffness":200,"damping":15,"mass":1}'
|
|
768
|
+
></propskit-spring>
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
Both curve controls forward `precision` and `edit`, support `disabled` and `variant="minimal"`, expose `isDefault`, and implement `resetToDefault()`. Their `input` and `change` events use the shared PropsKit envelope.
|
|
772
|
+
|
|
773
|
+
---
|
|
774
|
+
|
|
658
775
|
#### Propskit Color Point
|
|
659
776
|
|
|
660
777
|
`<propskit-color-point>`
|
|
@@ -667,12 +784,11 @@ A compact `<fig-group>` wrapper that combines `<propskit-color>` and `<propskit-
|
|
|
667
784
|
| `value` | JSON string | `{"x":50,"y":50,"color":"#D9D9D9"}` | Current color-point value |
|
|
668
785
|
| `collapsible` | boolean | `true` | Passed to the internal `fig-group` |
|
|
669
786
|
| `open` | boolean | `true` | Passed to the internal `fig-group` |
|
|
670
|
-
| `size` | string | default | Passed to both internal PropsKit controls |
|
|
671
787
|
| `disabled` | boolean | `false` | Disable both internal controls |
|
|
672
788
|
|
|
673
789
|
The internal group always has `compact`. `value` uses the same `{ x, y, color }` shape as `<fig-canvas-control type="color">`.
|
|
674
790
|
|
|
675
|
-
**Events:** `input` and `change`
|
|
791
|
+
**Events:** `input` and `change` use the shared PropsKit envelope with the public color-point value. `openchange` mirrors the internal group's expanded state.
|
|
676
792
|
|
|
677
793
|
```html
|
|
678
794
|
<propskit-color-point
|
|
@@ -696,12 +812,11 @@ A compact `<fig-group>` wrapper that combines `<propskit-position>` and `<propsk
|
|
|
696
812
|
| `collapsible` | boolean | `true` | Passed to the internal `fig-group` |
|
|
697
813
|
| `open` | boolean | `true` | Passed to the internal `fig-group` |
|
|
698
814
|
| `units` | string | — | `"percent"` passes percentage units to position and radius; omit for no units |
|
|
699
|
-
| `size` | string | default | Passed to both internal PropsKit controls |
|
|
700
815
|
| `disabled` | boolean | `false` | Disable both internal controls |
|
|
701
816
|
|
|
702
817
|
The internal group always has `compact`. `value` uses the same `{ x, y, radius }` shape as `<fig-canvas-control type="point-radius">`. Numeric radius values use pixels; percentage strings preserve `%`.
|
|
703
818
|
|
|
704
|
-
**Events:** `input` and `change`
|
|
819
|
+
**Events:** `input` and `change` use the shared PropsKit envelope with the public point-radius value. `openchange` mirrors the internal group's expanded state.
|
|
705
820
|
|
|
706
821
|
```html
|
|
707
822
|
<propskit-point-radius
|
|
@@ -726,12 +841,11 @@ A compact `<fig-group>` wrapper combining `<propskit-position>` with radius and
|
|
|
726
841
|
| `collapsible` | boolean | `true` | Passed to the internal `fig-group` |
|
|
727
842
|
| `open` | boolean | `true` | Passed to the internal `fig-group` |
|
|
728
843
|
| `units` | string | — | `"percent"` passes percentage units to position and radius; omit for no units |
|
|
729
|
-
| `size` | string | default | Passed to every internal PropsKit control |
|
|
730
844
|
| `disabled` | boolean | `false` | Disable every internal control |
|
|
731
845
|
|
|
732
846
|
The internal group always has `compact`. `value` uses the same `{ x, y, radius, angle }` shape as `<fig-canvas-control type="point-radius-angle">`. Numeric radius values use pixels; percentage strings preserve `%`. Angles are degrees.
|
|
733
847
|
|
|
734
|
-
**Events:** `input` and `change`
|
|
848
|
+
**Events:** `input` and `change` use the shared PropsKit envelope with the public point-radius-angle value. `openchange` mirrors the internal group's expanded state.
|
|
735
849
|
|
|
736
850
|
```html
|
|
737
851
|
<propskit-point-radius-angle
|
|
@@ -756,12 +870,11 @@ A compact `<fig-group>` wrapper combining start and end `<propskit-position>` co
|
|
|
756
870
|
| `collapsible` | boolean | `true` | Passed to the internal `fig-group` |
|
|
757
871
|
| `open` | boolean | `true` | Passed to the internal `fig-group` |
|
|
758
872
|
| `units` | string | — | `"percent"` passes percentage units to both positions; omit for no units |
|
|
759
|
-
| `size` | string | default | Passed to both position controls |
|
|
760
873
|
| `disabled` | boolean | `false` | Disable both position controls |
|
|
761
874
|
|
|
762
875
|
The internal group always has `compact`. `value` uses the same `{ x, y, x2, y2 }` shape as `<fig-canvas-control type="point-point">`.
|
|
763
876
|
|
|
764
|
-
**Events:** `input` and `change`
|
|
877
|
+
**Events:** `input` and `change` use the shared PropsKit envelope with the public point-point value. `openchange` mirrors the internal group's expanded state.
|
|
765
878
|
|
|
766
879
|
```html
|
|
767
880
|
<propskit-point-point
|
|
@@ -858,6 +971,7 @@ Waveform oscillator input with composable wave functions, live SVG waveform prev
|
|
|
858
971
|
| Attribute | Type | Default | Description |
|
|
859
972
|
|---|---|---|---|
|
|
860
973
|
| `value` | JSON string | — | `{"waves":[{"type":"sine","frequency":1,"amplitude":1,"phase":0,"offset":0}]}` |
|
|
974
|
+
| `name` | string | — | Optional event payload name |
|
|
861
975
|
| `default` | JSON string | initial `value` | Right-click reset target |
|
|
862
976
|
| `precision` | number | `2` | Decimal places |
|
|
863
977
|
| `aspect-ratio` | string | `"2 / 1"` | Editor aspect ratio |
|
|
@@ -874,8 +988,8 @@ Right-click and choose **Reset**, or call `resetToDefault()`, to restore the osc
|
|
|
874
988
|
|
|
875
989
|
| Event | Detail |
|
|
876
990
|
|---|---|
|
|
877
|
-
| `input` | `{
|
|
878
|
-
| `change` | `{
|
|
991
|
+
| `input` | Shared PropsKit `{ control, value, name? }` envelope while dragging or editing |
|
|
992
|
+
| `change` | Shared PropsKit `{ control, value, name? }` envelope on release or committed edit |
|
|
879
993
|
|
|
880
994
|
```html
|
|
881
995
|
<propskit-oscillator
|
|
@@ -1264,6 +1378,7 @@ An interactive bezier or spring easing curve editor with a preset dropdown and m
|
|
|
1264
1378
|
| Attribute | Type | Default | Description |
|
|
1265
1379
|
|---|---|---|---|
|
|
1266
1380
|
| `value` | string | — | Bezier: `"0.42, 0, 0.58, 1"` or Spring: `"spring(200, 15, 1)"` |
|
|
1381
|
+
| `mode` | string | — | Optional `"bezier"` or `"spring"` constraint; filters presets and rejects the other value type |
|
|
1267
1382
|
| `precision` | number | `2` | Decimal places |
|
|
1268
1383
|
| `aspect-ratio` | string | — | Editor aspect ratio |
|
|
1269
1384
|
| `edit` | boolean | `true` | Show the editor and custom bezier/spring options; set to `"false"` for preset-only |
|
package/components.css
CHANGED
|
@@ -212,13 +212,18 @@
|
|
|
212
212
|
Inter, AppleSystemUIFont, BlinkMacSystemFont, avenir next, avenir, segoe ui,
|
|
213
213
|
helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
|
214
214
|
--font-variant-numeric: lining-nums tabular-nums slashed-zero;
|
|
215
|
-
--body-medium-
|
|
216
|
-
--body-
|
|
215
|
+
--text-body-medium-font-size: 0.6875rem;
|
|
216
|
+
--text-body-small-font-size: 0.5625rem;
|
|
217
|
+
--text-body-large-font-size: 0.8125rem;
|
|
218
|
+
--body-medium-fontSize: var(--text-body-medium-font-size);
|
|
219
|
+
--font-size-small: var(--text-body-small-font-size);
|
|
220
|
+
--body-small-fontSize: var(--text-body-small-font-size);
|
|
221
|
+
--body-large-fontSize: var(--text-body-large-font-size);
|
|
217
222
|
--body-letter-spacing: 0.055px;
|
|
218
223
|
--body-medium-strong-fontWeight: 550;
|
|
219
224
|
--body-large-strong-fontWeight: 500;
|
|
220
225
|
--body-medium-fontWeight: 450;
|
|
221
|
-
|
|
226
|
+
|
|
222
227
|
--line-height: 1rem;
|
|
223
228
|
|
|
224
229
|
/* Spacing */
|
|
@@ -235,10 +240,12 @@
|
|
|
235
240
|
--radius-none: 0;
|
|
236
241
|
--radius-small: 0.125rem;
|
|
237
242
|
--radius-medium: 0.3125rem;
|
|
243
|
+
--radius-medium-large: 0.5625rem;
|
|
238
244
|
--radius-large: 0.8125rem;
|
|
239
245
|
--figma-radius-none: var(--radius-none);
|
|
240
246
|
--figma-radius-small: var(--radius-small);
|
|
241
247
|
--figma-radius-medium: var(--radius-medium);
|
|
248
|
+
--figma-radius-medium-large: var(--radius-medium-large);
|
|
242
249
|
--figma-radius-large: var(--radius-large);
|
|
243
250
|
|
|
244
251
|
/* Transitions */
|
|
@@ -400,6 +407,8 @@
|
|
|
400
407
|
--icon-16-warning: 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 fill-rule='evenodd' clip-rule='evenodd' d='M6.28478 2.91494C7.06157 1.62043 8.93759 1.62052 9.71446 2.91494L13.9488 9.9706C14.7487 11.3037 13.7876 12.9999 12.233 12.9999H3.76622C2.21173 12.9998 1.2506 11.3036 2.0504 9.9706L6.28478 2.91494ZM8.85704 3.42861C8.46851 2.78202 7.53064 2.78191 7.1422 3.42861H7.14122L2.90782 10.4853H2.9088C2.53393 11.11 2.93205 11.8944 3.62364 11.9901L3.76622 11.9999H12.233C13.0103 11.9999 13.4904 11.1518 13.0904 10.4853L8.85704 3.42861ZM7.99962 9.4999C8.41375 9.4999 8.74948 9.83581 8.74962 10.2499C8.74962 10.6641 8.41383 10.9999 7.99962 10.9999C7.58545 10.9999 7.24962 10.6641 7.24962 10.2499C7.24976 9.83584 7.58554 9.49995 7.99962 9.4999ZM8.07872 5.00381C8.46732 5.04556 8.76038 5.39199 8.72716 5.79092L8.49669 8.54092C8.47503 8.80006 8.25869 8.99996 7.99864 8.9999C7.73876 8.99965 7.52212 8.79994 7.5006 8.54092L7.27208 5.78994C7.23715 5.36476 7.57294 5.00004 7.99962 4.9999L8.07872 5.00381Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
|
|
401
408
|
--icon-24-copy: 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.5 6C6.67157 6 6 6.67157 6 7.5V13.5C6 14.3284 6.67157 15 7.5 15H13.5C14.3284 15 15 14.3284 15 13.5V7.5C15 6.67157 14.3284 6 13.5 6H7.5ZM7 7.5C7 7.22386 7.22386 7 7.5 7H13.5C13.7761 7 14 7.22386 14 7.5V13.5C14 13.7761 13.7761 14 13.5 14H7.5C7.22386 14 7 13.7761 7 13.5V7.5ZM9 16.5C9 16.2239 9.22386 16 9.5 16C9.77614 16 10 16.2239 10 16.5C10 16.7761 10.2239 17 10.5 17H16.5C16.7761 17 17 16.7761 17 16.5V10.5C17 10.2239 16.7761 10 16.5 10C16.2239 10 16 9.77614 16 9.5C16 9.22386 16.2239 9 16.5 9C17.3284 9 18 9.67157 18 10.5V16.5C18 17.3284 17.3284 18 16.5 18H10.5C9.67157 18 9 17.3284 9 16.5Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
|
|
402
409
|
--icon-16-copy: 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='M12.5 5C13.3284 5 14 5.67157 14 6.5V12.5C14 13.3284 13.3284 14 12.5 14H6.5C5.67157 14 5 13.3284 5 12.5C5 12.2239 5.22386 12 5.5 12C5.74171 12 5.94371 12.1714 5.99023 12.3994L6.00977 12.6006C6.05629 12.8286 6.25829 13 6.5 13H12.5C12.7761 13 13 12.7761 13 12.5V6.5C13 6.25829 12.8286 6.05629 12.6006 6.00977L12.3994 5.99023C12.1714 5.94371 12 5.74171 12 5.5C12 5.22386 12.2239 5 12.5 5ZM9.5 2C10.3284 2 11 2.67157 11 3.5V9.5C11 10.3284 10.3284 11 9.5 11H3.5C2.67157 11 2 10.3284 2 9.5V3.5C2 2.67157 2.67157 2 3.5 2H9.5ZM3.5 3C3.22386 3 3 3.22386 3 3.5V9.5C3 9.77614 3.22386 10 3.5 10H9.5C9.77614 10 10 9.77614 10 9.5V3.5C10 3.22386 9.77614 3 9.5 3H3.5Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
|
|
410
|
+
--icon-24-trash: 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='M16.3545 9C16.6385 9.00024 16.8652 9.23672 16.8535 9.52051L16.5801 16.083L16.5615 16.2812C16.4332 17.1916 15.6952 17.8997 14.7803 17.9902L14.582 18H9.41797C8.34615 17.9996 7.46456 17.154 7.41992 16.083L7.14746 9.52051C7.13579 9.23663 7.36236 9.0001 7.64648 9C7.91454 9 8.13534 9.21167 8.14648 9.47949L8.41895 16.042C8.44144 16.5772 8.88236 16.9996 9.41797 17H14.582C15.1176 16.9996 15.5586 16.5772 15.5811 16.042L15.8545 9.47949C15.8656 9.21167 16.0864 9 16.3545 9ZM11 10C11.2761 10 11.5 10.2239 11.5 10.5V14.5C11.5 14.7761 11.2761 15 11 15C10.724 14.9999 10.5 14.7761 10.5 14.5V10.5C10.5 10.2239 10.724 10.0001 11 10ZM13 10C13.2761 10 13.5 10.2239 13.5 10.5V14.5C13.5 14.7761 13.2761 15 13 15C12.724 14.9999 12.5 14.7761 12.5 14.5V10.5C12.5 10.2239 12.724 10.0001 13 10ZM13 5C13.5523 5 14 5.44772 14 6V7H17.5C17.7761 7 18 7.22386 18 7.5C18 7.77614 17.7761 8 17.5 8H6.5C6.22386 8 6 7.77614 6 7.5C6 7.22386 6.22386 7 6.5 7H10V6C10 5.44772 10.4477 5 11 5H13ZM11 7H13V6H11V7Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
|
|
411
|
+
--icon-16-trash: 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.2954 6C11.5803 6.00009 11.8072 6.23788 11.7944 6.52246L11.5659 11.5674L11.5513 11.7148C11.446 12.4443 10.8186 12.9988 10.0669 12.999H5.93408L5.78564 12.9922C5.1008 12.9249 4.54803 12.3959 4.44971 11.7148L4.43506 11.5674L4.20557 6.52246C4.19278 6.23794 4.4198 6.00019 4.70459 6C4.97189 6 5.19245 6.21051 5.20459 6.47754L5.43408 11.5215C5.44622 11.7885 5.66677 11.999 5.93408 11.999H10.0669C10.334 11.9988 10.5548 11.7884 10.5669 11.5215L10.7954 6.47754C10.8075 6.21051 11.0281 6 11.2954 6ZM7.00049 6.5C7.27657 6.50007 7.50049 6.7239 7.50049 7V10C7.50049 10.2761 7.27657 10.4999 7.00049 10.5C6.72435 10.5 6.50049 10.2761 6.50049 10V7C6.50049 6.72386 6.72435 6.5 7.00049 6.5ZM9.00049 6.5C9.27657 6.50007 9.50049 6.7239 9.50049 7V10C9.50049 10.2761 9.27657 10.4999 9.00049 10.5C8.72435 10.5 8.50049 10.2761 8.50049 10V7C8.50049 6.72386 8.72435 6.5 9.00049 6.5ZM9.00049 2C9.55255 2.00026 10.0005 2.44788 10.0005 3V4H12.5005C12.7764 4.00026 13.0005 4.22402 13.0005 4.5C13.0005 4.77598 12.7764 4.99974 12.5005 5H3.50049C3.22435 5 2.99951 4.77614 2.99951 4.5C2.99951 4.22386 3.22435 4 3.50049 4H6.00049V3C6.00049 2.44772 6.4482 2 7.00049 2H9.00049ZM7.00049 4H9.00049V3H7.00049V4Z' fill='black' fill-opacity='0.9'/%3E%3C/svg%3E");
|
|
403
412
|
|
|
404
413
|
--tip-pointer: path("M8 6L2 0H14L8 6Z");
|
|
405
414
|
|
|
@@ -1533,7 +1542,10 @@ input[type="color"] {
|
|
|
1533
1542
|
content: "";
|
|
1534
1543
|
width: calc(var(--width) - var(--padding) * 2);
|
|
1535
1544
|
height: calc(var(--height) - var(--padding) * 2);
|
|
1536
|
-
border-radius:
|
|
1545
|
+
border-radius: var(
|
|
1546
|
+
--fig-swatch-border-radius,
|
|
1547
|
+
calc(var(--border-radius) - (var(--padding) / 2))
|
|
1548
|
+
);
|
|
1537
1549
|
grid-area: 1/1;
|
|
1538
1550
|
place-self: center;
|
|
1539
1551
|
pointer-events: none;
|
|
@@ -1549,7 +1561,10 @@ input[type="color"] {
|
|
|
1549
1561
|
background-size: var(--swatch-bg-size);
|
|
1550
1562
|
background-position: var(--swatch-bg-position);
|
|
1551
1563
|
background-repeat: no-repeat;
|
|
1552
|
-
border-radius:
|
|
1564
|
+
border-radius: var(
|
|
1565
|
+
--fig-swatch-border-radius,
|
|
1566
|
+
calc(var(--border-radius) - (var(--padding) / 2))
|
|
1567
|
+
);
|
|
1553
1568
|
mask-image: linear-gradient(
|
|
1554
1569
|
to right,
|
|
1555
1570
|
black 0%,
|
|
@@ -1561,7 +1576,10 @@ input[type="color"] {
|
|
|
1561
1576
|
}
|
|
1562
1577
|
&[size="medium"]::before,
|
|
1563
1578
|
&[size="large"]::before {
|
|
1564
|
-
border-radius:
|
|
1579
|
+
border-radius: var(
|
|
1580
|
+
--fig-swatch-border-radius,
|
|
1581
|
+
calc(var(--border-radius) - var(--padding))
|
|
1582
|
+
);
|
|
1565
1583
|
}
|
|
1566
1584
|
&:focus,
|
|
1567
1585
|
&:active {
|
|
@@ -4174,6 +4192,17 @@ fig-input-palette {
|
|
|
4174
4192
|
grid-area: inputs;
|
|
4175
4193
|
min-width: 0;
|
|
4176
4194
|
width: 100%;
|
|
4195
|
+
position: relative;
|
|
4196
|
+
|
|
4197
|
+
&::after {
|
|
4198
|
+
content: "";
|
|
4199
|
+
position: absolute;
|
|
4200
|
+
inset: 0;
|
|
4201
|
+
border-radius: inherit;
|
|
4202
|
+
box-shadow: inset 0 0 0 1px var(--figma-color-bordertranslucent);
|
|
4203
|
+
pointer-events: none;
|
|
4204
|
+
z-index: 2;
|
|
4205
|
+
}
|
|
4177
4206
|
}
|
|
4178
4207
|
|
|
4179
4208
|
.palette-add-btn {
|
|
@@ -4707,7 +4736,7 @@ fig-joystick {
|
|
|
4707
4736
|
pointer-events: none;
|
|
4708
4737
|
user-select: none;
|
|
4709
4738
|
color: var(--figma-color-text-tertiary);
|
|
4710
|
-
font-size:
|
|
4739
|
+
font-size: var(--text-body-small-font-size);
|
|
4711
4740
|
line-height: 1;
|
|
4712
4741
|
letter-spacing: 0.01em;
|
|
4713
4742
|
font-weight: 700;
|
|
@@ -4735,11 +4764,6 @@ fig-joystick {
|
|
|
4735
4764
|
top: 50%;
|
|
4736
4765
|
transform: translate(-50%, -50%) rotate(-90deg);
|
|
4737
4766
|
transform-origin: center;
|
|
4738
|
-
|
|
4739
|
-
&.no-rotate {
|
|
4740
|
-
left: var(--spacer-2);
|
|
4741
|
-
transform: translateY(-50%);
|
|
4742
|
-
}
|
|
4743
4767
|
}
|
|
4744
4768
|
|
|
4745
4769
|
&.right {
|