|$ curl https://forge-ai.dev/api/markdown?path=docs/components/inputs
$cat docs/inputs-&-controls.md
updated Recently·12 min read·published

Inputs & Controls

CSSHTMLUIIntermediate

12+ input controls — toggles, radio buttons, star rating, slider, file upload, color swatches, and input groups.

Toggle Switch

Sized toggle switches with labeled variants.

toggle
Live
untitled.html
HTML
1<div class="wrap">
2 <label class="t">
3 <input type="checkbox" checked />
4 <span class="slider">
5 </span>
6 Notifications
7 </label>
8 <label class="t">
9 <input type="checkbox" />
10 <span class="slider">
11 </span>
12 Dark Mode
13 </label>
14 <label class="t sm">
15 <input type="checkbox" checked />
16 <span class="slider">
17 </span>
18 Small
19 </label>
20</div>
preview
Radio Button Group

Styled radio buttons as a segmented card selection.

radio
Live
untitled.html
HTML
1<div class="wrap">
2 <label class="r">
3 <input type="radio" name="plan" checked />
4 <span class="radio-mark">
5 </span>
6 <div>
7 <strong>
8 Free
9 </strong>
10 <p class="r-sub">
11 $0/mo — basic features
12 </p>
13 </div>
14 </label>
15 <label class="r">
16 <input type="radio" name="plan" />
17 <span class="radio-mark">
18 </span>
19 <div>
20 <strong>
21 Pro
22 </strong>
23 <p class="r-sub">
24 $12/mo — advanced features
25 </p>
26 </div>
27 </label>
28 <label class="r">
29 <input type="radio" name="plan" />
30 <span class="radio-mark">
31 </span>
32 <div>
33 <strong>
34 Enterprise
35 </strong>
36 <p class="r-sub">
37 Custom pricing
38 </p>
39 </div>
40 </label>
41</div>
preview
Star Rating

Interactive star rating with hover and selected states.

rating
Live
untitled.html
HTML
1<div class="wrap">
2 <div class="stars" style="--val:3">
3 <span class="star" data-val="1">
4
5 </span>
6 <span class="star" data-val="2">
7
8 </span>
9 <span class="star" data-val="3">
10
11 </span>
12 <span class="star" data-val="4">
13
14 </span>
15 <span class="star" data-val="5">
16
17 </span>
18 </div>
19 <span class="label">
20 3 / 5
21 </span>
22 <div class="stars sm" style="--val:4">
23 <span class="star" data-val="1">
24
25 </span>
26 <span class="star" data-val="2">
27
28 </span>
29 <span class="star" data-val="3">
30
31 </span>
32 <span class="star" data-val="4">
33
34 </span>
35 <span class="star" data-val="5">
36
37 </span>
38 </div>
39 <span class="label small">
40 4 / 5
41 </span>
42</div>
preview
Range Slider

Custom styled range slider with value display.

slider
Live
untitled.html
HTML
1<div class="wrap">
2 <div class="slider-group">
3 <label class="label">
4 Volume
5 </label>
6 <input type="range" min="0" max="100" value="65" class="range" />
7 <span class="val" id="vol">
8 65
9 </span>
10 </div>
11 <div class="slider-group">
12 <label class="label">
13 Brightness
14 </label>
15 <input type="range" min="0" max="100" value="80" class="range green" />
16 <span class="val" id="bri">
17 80
18 </span>
19 </div>
20 <script>
21 document.querySelectorAll('.range').forEach(r=>{r.addEventListener('input',()=>{const v=r.nextElementSibling;if(v)v.textContent=r.value})})
22 </script>
23</div>
preview
File Upload

Drag-and-drop file upload zone with button alternative.

file-upload
Live
untitled.html
HTML
1<div class="wrap">
2 <div class="drop-zone">
3 <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" style="color:#525252;margin-bottom:8px">
4 <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
5 <polyline points="17 8 12 3 7 8"/>
6 <line x1="12" y1="3" x2="12" y2="15"/>
7 </svg>
8 <span class="dz-text">
9 Drop files here or
10 <span class="dz-link">
11 browse
12 </span>
13 </span>
14 <span class="dz-hint">
15 PNG, JPG, PDF up to 10MB
16 </span>
17 </div>
18 <button class="upload-btn">
19 Choose File
20 </button>
21</div>
preview
Input Groups

Inputs with attached icons, buttons, and prefix/suffix text.

input-group
Live
untitled.html
HTML
1<div class="wrap">
2 <div class="i-group">
3 <span class="i-prefix">
4 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
5 <circle cx="11" cy="11" r="8"/>
6 <line x1="21" y1="21" x2="16.65" y2="16.65"/>
7 </svg>
8 </span>
9 <input class="i-input" type="text" placeholder="Search..." />
10 </div>
11 <div class="i-group">
12 <input class="i-input" type="text" placeholder="Enter domain" />
13 <button class="i-suffix">
14 Check
15 </button>
16 </div>
17 <div class="i-group">
18 <span class="i-prefix">
19 $
20 </span>
21 <input class="i-input" type="text" placeholder="0.00" />
22 <span class="i-suffix">
23 USD
24 </span>
25 </div>
26</div>
preview