KQ-1193 · RADIO/TUNE
Radio Tune
An inline loader drawn as a small tabletop radio whose needle scans the dial like a seek radio: it sweeps up the band, catches each strong station with a hunting settle on the snap spring, dwells while the signal bars stand up, sweeps on and glides back to the bottom on glide, while the meter — the signal at the needle plus the band's own seeded static — wavers between stations. With progress the needle travels to the home station as the work goes on and at 1 locks on, a hair past the mark and back on snap, with the meter full and the backlight warm. It is a real slider: a drag moves the needle 1:1 under the pointer while the knob turns, a release coasts and is pulled onto a station within reach, arrow keys turn it finely, Page Up and Page Down seek, Home and End reach the ends, and focus stops the search.
searching · fm · turn the knob
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/radio-tune
Props
- label
- string
- default —
- Visible text beside the glyph, and the loader's accessible name ("Loading" when omitted).
- hideLabel
- boolean
- default false
- Keep the label for assistive technology only.
- size
- number
- default 32
- The glyph's box in px, 16 to 64. Detail is chosen by size: scale marks, stations and five signal bars from 24, scale numbers, band name, feet and walnut grain from 40.
- speed
- number
- default 1
- How fast it sweeps, dwells and flickers, 0.5 to 2.
- band
- "fm" | "am" | "sw"
- default "fm"
- The waveband: FM 88–108 MHz with evenly spread stations and hiss, AM 530–1700 kHz on a compressed scale with stations crowded low and crackle, or SW 5.9–18 MHz with stations bunched in broadcast bands and a fading warble.
- dial
- "cream" | "walnut" | "black"
- default "walnut"
- The cabinet: cream bakelite, walnut or black bakelite, fixed pigments that read the same in both themes.
- progress
- number
- default —
- Determinate share done, 0 to 1: the needle travels toward the home station and locks on at 1. Omit for a radio that keeps searching.
- sound
- boolean
- default false
- While the visitor drags, play a hum loop as a heterodyne whistle that falls toward zero-beat on a station, a click for each scale mark passed and a brighter click when a hand, key or tap lands on a station. The search and the final lock are silent.
- disabled
- boolean
- default false
- Keeps searching, but cannot be tuned by hand or key.
- className
- string
- default —
- Classes for the inline root; the label inherits its font size and colour.
| Prop | Type | Default | Description |
|---|---|---|---|
| label | string | — | Visible text beside the glyph, and the loader's accessible name ("Loading" when omitted). |
| hideLabel | boolean | false | Keep the label for assistive technology only. |
| size | number | 32 | The glyph's box in px, 16 to 64. Detail is chosen by size: scale marks, stations and five signal bars from 24, scale numbers, band name, feet and walnut grain from 40. |
| speed | number | 1 | How fast it sweeps, dwells and flickers, 0.5 to 2. |
| band | "fm" | "am" | "sw" | "fm" | The waveband: FM 88–108 MHz with evenly spread stations and hiss, AM 530–1700 kHz on a compressed scale with stations crowded low and crackle, or SW 5.9–18 MHz with stations bunched in broadcast bands and a fading warble. |
| dial | "cream" | "walnut" | "black" | "walnut" | The cabinet: cream bakelite, walnut or black bakelite, fixed pigments that read the same in both themes. |
| progress | number | — | Determinate share done, 0 to 1: the needle travels toward the home station and locks on at 1. Omit for a radio that keeps searching. |
| sound | boolean | false | While the visitor drags, play a hum loop as a heterodyne whistle that falls toward zero-beat on a station, a click for each scale mark passed and a brighter click when a hand, key or tap lands on a station. The search and the final lock are silent. |
| disabled | boolean | false | Keeps searching, but cannot be tuned by hand or key. |
| className | string | — | Classes for the inline root; the label inherits its font size and colour. |