کامپوننتها
سوییچ
برای روشن و خاموش کردن تنظیمی که بلافاصله اعمال میشود.
import { Switch } from "@kashi-ui/react";
پایه
در راستبهچپ، دستگیرهٔ سوییچ در حالت روشن به سمت چپ میرود؛ این رفتار خودکار است.
<Switch label="اعلانهای ایمیلی" description="خلاصهٔ هفتگی فعالیتها" defaultChecked />
<Switch label="حالت تعطیلات" /><label class="k-check" for=":r2R0:">
<input type="checkbox" role="switch" id=":r2R0:" class="k-switch" aria-describedby=":r2R0:-desc" checked=""/><span class="k-check__text"><span class="k-check__label">اعلانهای ایمیلی</span><span class="k-check__description" id=":r2R0:-desc">خلاصهٔ هفتگی فعالیتها</span></span>
</label>
<label class="k-check" for=":r3R0:">
<input type="checkbox" role="switch" id=":r3R0:" class="k-switch"/><span class="k-check__text"><span class="k-check__label">حالت تعطیلات</span></span>
</label>اندازهها و حالتها
<Switch label="کوچک" size="sm" defaultChecked />
<Switch label="متوسط" defaultChecked />
<Switch label="بزرگ" size="lg" defaultChecked />
<Switch label="غیرفعال" disabled /><label class="k-check" for=":r4R0:">
<input type="checkbox" role="switch" id=":r4R0:" class="k-switch k-switch--sm" checked=""/><span class="k-check__text"><span class="k-check__label">کوچک</span></span>
</label>
<label class="k-check" for=":r5R0:">
<input type="checkbox" role="switch" id=":r5R0:" class="k-switch" checked=""/><span class="k-check__text"><span class="k-check__label">متوسط</span></span>
</label>
<label class="k-check" for=":r6R0:">
<input type="checkbox" role="switch" id=":r6R0:" class="k-switch k-switch--lg" checked=""/><span class="k-check__text"><span class="k-check__label">بزرگ</span></span>
</label>
<label class="k-check" for=":r7R0:">
<input type="checkbox" role="switch" id=":r7R0:" class="k-switch" disabled=""/><span class="k-check__text"><span class="k-check__label">غیرفعال</span></span>
</label>سوییچ یا چکباکس؟
- سوییچ: تغییر فوراً اعمال میشود، مثل روشن کردن اعلانها.
- چکباکس: انتخاب پس از ارسال فرم اعمال میشود، مثل پذیرفتن قوانین.
فهرست تنظیمات
با labelPosition="start" برچسب پیش از کنترل میآید و کنترل به انتهای ردیف میرود؛ چیدمان رایج صفحههای تنظیمات. برای Checkbox هم کار میکند.
<Switch labelPosition="start" label="اعلانهای ایمیلی" description="خلاصهٔ هفتگی فعالیتها" /><article data-variant="outlined" class="k-card" style="inline-size:min(100%, 30rem)">
<div class="k-card__body demo-stack" style="inline-size:100%">
<label class="k-check k-check--start" for=":r9R1:">
<input type="checkbox" role="switch" id=":r9R1:" class="k-switch" aria-describedby=":r9R1:-desc" checked=""/><span class="k-check__text"><span class="k-check__label">اعلانهای ایمیلی</span><span class="k-check__description" id=":r9R1:-desc">خلاصهٔ هفتگی فعالیتها</span></span>
</label>
<div role="separator" class="k-divider"></div>
<label class="k-check k-check--start" for=":r9R3:">
<input type="checkbox" role="switch" id=":r9R3:" class="k-switch" aria-describedby=":r9R3:-desc"/><span class="k-check__text"><span class="k-check__label">ورود دو مرحلهای</span><span class="k-check__description" id=":r9R3:-desc">کد پیامکی هنگام ورود</span></span>
</label>
<div role="separator" class="k-divider"></div>
<label class="k-check k-check--start" for=":r9R5:">
<input type="checkbox" id=":r9R5:" class="k-checkbox" checked=""/><span class="k-check__text"><span class="k-check__label">نمایش در فهرست اعضا</span></span>
</label>
</div>
</article>| نام | نوع | پیشفرض | توضیح |
|---|---|---|---|
labelPosition | "start" | "end" | "end" | جای برچسب (Switch و Checkbox) |
classNames | { root, control, label, description } | — | کلاس دلخواه برای هر بخش |
ویژگیها
| نام | نوع | پیشفرض | توضیح |
|---|---|---|---|
label | ReactNode | — | برچسب کنار سوییچ |
description | ReactNode | — | توضیح زیر برچسب |
size | "sm" | "md" | "lg" | "md" | اندازه |
invalid | boolean | false | حالت خطا |
متغیرهای CSS
| متغیر | پیشفرض | کاربرد |
|---|---|---|
--k-switch-width | 2.25rem | عرض |
--k-switch-height | 1.25rem | ارتفاع |
--k-switch-track-on | var(--k-bg-brand) | رنگ مسیر در حالت روشن |
--k-switch-track-off | var(--k-border-input) | رنگ مسیر در حالت خاموش |
--k-switch-thumb | #fff | رنگ دستگیره |
دسترسپذیری
- روی
<input type="checkbox" role="switch">ساخته شده؛ صفحهخوان آن را «سوییچ، روشن» یا «خاموش» اعلام میکند. - مسیر خاموش کنتراست حداقل ۳ به ۱ با پسزمینه دارد.