@rogieking/figui3 11.3.0 → 11.3.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/.cursor/skills/figui3/components.md +1 -0
- package/.cursor/skills/figui3/reference.md +1 -0
- package/CHANGELOG.md +15 -0
- package/README.md +3 -3
- package/components.css +16 -1
- package/dist/components.css +1 -1
- package/dist/fig.css +1 -1
- package/dist/fig.js +5 -5
- package/fig.js +119 -4
- package/package.json +1 -1
|
@@ -219,6 +219,7 @@ Handlers below assume `onInput` / `onChange` / `onClick` from [react.md](react.m
|
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
- Attrs: `type` (`range`, `opacity`, `hue`, `stepper`, `delta`), `min`, `max`, `step`, `text`, `units`, `transform`, `color`, `default`, `variant` (`classic`), `placeholder`, `full`, `disabled`
|
|
222
|
+
- A valid explicit `default` adds a tick and native snap target for range, opacity, and hue sliders. Inferred defaults do not render a tick.
|
|
222
223
|
- Events: `input` / `change` → `currentTarget.value`
|
|
223
224
|
- React: keep `value` a string; do not remount during drag. Opacity: set `color`. Delta: set `default`. Stepper: include a `<datalist>` of stops.
|
|
224
225
|
|
|
@@ -55,6 +55,7 @@ Public API: `README.md`. React recipes: [components.md](components.md).
|
|
|
55
55
|
- Always set `min`, `max`, `step`; `units` when displayed
|
|
56
56
|
- `transform` when internal scale ≠ UI scale
|
|
57
57
|
- `variant="classic"` for the older appearance
|
|
58
|
+
- Valid explicit `default` values add a tick and native snap target for range, opacity, and hue; inferred defaults do not
|
|
58
59
|
- Opacity: set `color` and usually `units="%"`
|
|
59
60
|
- Delta: include `default` and typically symmetric min/max
|
|
60
61
|
- Stepper: include a `<datalist>` of stops
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [11.3.1]
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added explicit `fig-slider` default ticks and native snap targets for valid range, hue, and opacity defaults.
|
|
10
|
+
- Added an optional slider default control to the playground.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Made `fig-input-number` steppers repeat while held, emitting continuous input updates and one change event on release.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Kept generated slider default ticks within variant-specific track endpoints.
|
|
19
|
+
|
|
5
20
|
## [11.3.0]
|
|
6
21
|
|
|
7
22
|
### Added
|
package/README.md
CHANGED
|
@@ -356,7 +356,7 @@ The suggestion trigger uses `fig-select` when `fig-editor.js` is registered and
|
|
|
356
356
|
| `min` | number | `0` | Minimum |
|
|
357
357
|
| `max` | number | `100` | Maximum |
|
|
358
358
|
| `step` | number | `1` | Step increment |
|
|
359
|
-
| `default` | number | — |
|
|
359
|
+
| `default` | number | — | Explicit reference value; adds a tick and native snap target when valid |
|
|
360
360
|
| `text` | boolean | `true` | Show text input; set `text="false"` to hide |
|
|
361
361
|
| `placeholder` | string | `"##"` | Text input placeholder |
|
|
362
362
|
| `units` | string | — | Unit label (e.g. `"%"`, `"px"`) |
|
|
@@ -369,12 +369,12 @@ The suggestion trigger uses `fig-select` when `fig-editor.js` is registered and
|
|
|
369
369
|
**Events:** `input` (continuous), `change` (on release), with detail `{ value, angle, units }`. Event values are rounded to `precision`; the component retains its higher-precision internal value.
|
|
370
370
|
|
|
371
371
|
```html
|
|
372
|
-
<fig-slider min="0" max="100" value="50" units="%"></fig-slider>
|
|
372
|
+
<fig-slider min="0" max="100" value="50" default="25" units="%"></fig-slider>
|
|
373
373
|
<fig-slider type="hue" value="180" text="false"></fig-slider>
|
|
374
374
|
<fig-slider type="opacity" value="75" color="#FF5733" units="%"></fig-slider>
|
|
375
375
|
```
|
|
376
376
|
|
|
377
|
-
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.
|
|
377
|
+
For `type="range"`, omitting `value` follows native range behavior and starts at the midpoint of `min` and `max`. An explicitly authored, in-range, step-aligned `default` renders a tick and is passed to the native range input as a snap target; internally inferred defaults do not. Arrow keys move by `step`; hold Shift to move by a larger step.
|
|
378
378
|
|
|
379
379
|
---
|
|
380
380
|
|
package/components.css
CHANGED
|
@@ -3157,8 +3157,9 @@ fig-slider {
|
|
|
3157
3157
|
--slider-tick-radius: 100%;
|
|
3158
3158
|
--slider-border-radius: calc(var(--slider-height) / 2);
|
|
3159
3159
|
--slider-stepper-padding: calc(
|
|
3160
|
-
(var(--slider-
|
|
3160
|
+
(var(--slider-thumb-size) / 2) - var(--slider-tick-width) / 2
|
|
3161
3161
|
);
|
|
3162
|
+
--slider-default-tick-end-inset: calc(var(--slider-stepper-padding) * 2);
|
|
3162
3163
|
--slider-track-color: var(--figma-color-bg-secondary);
|
|
3163
3164
|
--slider-percent: calc(var(--slider-complete) * 100%);
|
|
3164
3165
|
--start-percent: calc(var(--default, 0) * 100%);
|
|
@@ -3449,11 +3450,25 @@ fig-slider {
|
|
|
3449
3450
|
}
|
|
3450
3451
|
}
|
|
3451
3452
|
|
|
3453
|
+
datalist[data-generated="slider-default"] option:first-child:last-child {
|
|
3454
|
+
position: absolute;
|
|
3455
|
+
margin: 0;
|
|
3456
|
+
left: clamp(
|
|
3457
|
+
var(--slider-stepper-padding),
|
|
3458
|
+
calc(var(--start-percent) - var(--slider-tick-width) / 2),
|
|
3459
|
+
calc(100% - var(--slider-default-tick-end-inset))
|
|
3460
|
+
);
|
|
3461
|
+
top: calc(50% - var(--slider-tick-height) / 2);
|
|
3462
|
+
}
|
|
3463
|
+
|
|
3452
3464
|
&:not([variant="classic"]) {
|
|
3453
3465
|
--slider-height: 0.375rem;
|
|
3454
3466
|
--slider-thumb-size: 0.75rem;
|
|
3455
3467
|
--slider-tick-width: calc(var(--slider-height) / 2);
|
|
3456
3468
|
--slider-tick-height: calc(var(--slider-height) / 2);
|
|
3469
|
+
--slider-default-tick-end-inset: calc(
|
|
3470
|
+
var(--slider-thumb-size) / 2 + var(--slider-tick-width) / 2 - 0.125rem
|
|
3471
|
+
);
|
|
3457
3472
|
--slider-number-width: var(--input-opacity-width);
|
|
3458
3473
|
--handle-transition: none;
|
|
3459
3474
|
--slider-transition: none;
|