From ef69f7bb6528e0c3e84bd3aa600f8baa6398f3ac Mon Sep 17 00:00:00 2001 From: ollyhearn Date: Wed, 3 Jun 2026 10:42:33 +0300 Subject: [PATCH] feat: knobs --- src/stories/Knob.stories.tsx | 28 ++++++++++++++++++++++------ src/styles/components.css | 2 +- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/stories/Knob.stories.tsx b/src/stories/Knob.stories.tsx index 26ee0db..e421d40 100644 --- a/src/stories/Knob.stories.tsx +++ b/src/stories/Knob.stories.tsx @@ -15,15 +15,22 @@ const meta = { }, args: { defaultValue: 62, min: 0, max: 100, step: 0, accent: 'lime' }, argTypes: { - defaultValue: { control: 'number', description: 'Uncontrolled starting value.' }, + defaultValue: { + control: 'number', + description: 'Uncontrolled starting value.', + }, min: { control: 'number' }, max: { control: 'number' }, - step: { control: 'number', description: '`0` = continuous; `> 0` adds detents + ticks.' }, + step: { + control: 'number', + description: '`0` = continuous; `> 0` adds detents + ticks.', + }, accent: { control: 'inline-radio', options: ['lime', 'ember'] }, size: { control: 'number', description: 'Diameter in px (default 108).' }, animated: { control: 'boolean', - description: 'Glide the fill/value between detents. Defaults to `true` when `step > 0`.', + description: + 'Glide the fill/value between detents. Defaults to `true` when `step > 0`.', }, disabled: { control: 'boolean' }, className: { control: 'text' }, @@ -57,7 +64,14 @@ export const Disabled: Story = { const Readout = (args: React.ComponentProps) => { const [v, setV] = useState(62); return ( -
+
) => { fontVariantNumeric: 'tabular-nums', }} > - {v} - % + {v.toFixed(2)} + + % +
); diff --git a/src/styles/components.css b/src/styles/components.css index b66b854..3288188 100644 --- a/src/styles/components.css +++ b/src/styles/components.css @@ -607,7 +607,7 @@ textarea.modern-sk-field { position: relative; display: flex; align-items: center; - width: 200px; + width: 100%; height: var(--ms-thumb); user-select: none; touch-action: none;