انتقل إلى المحتوى
TopClass UI

مفتاح تبديل

مفتاح تشغيل وإطفاء لإعداد يسري فورًا. يتحرك مقبضه في الاتجاه الصحيح في التخطيطات من اليمين إلى اليسار.

client - الحجم لم يُقَس بعد

مفتاح تبديل

client - الحجم لم يُقَس بعد

مفتاح تشغيل وإطفاء لإعداد يسري فورًا. يتحرك مقبضه في الاتجاه الصحيح في التخطيطات من اليمين إلى اليسار.

تثبيت

جرّبه

size
invalid

الشيفرة

switch.tsx
import { Switch } from 'topclassui/switch'

<div className="flex items-center gap-2">
  <Switch id="switch-playground" defaultChecked />
  <label htmlFor="switch-playground" className="text-sm text-body">Weekly digest</label>
</div>

المفتاحان xs وsm يكبران إلى هدف بمقدار 44px تحت مؤشر لمس، فيبقى المقبض سهل اللمس.

كل الحالات، بدون تمرير الفأرة

7 حالات

أو استورده من الحزمة

topclassui/switch
import { Switch } from 'topclassui/switch'

ثبّت مرة واحدة:npm i topclassui@beta zod

أمثلة

  • لإعداد يسري لحظة تشغيله أو إطفائه. أما الاختيار الذي يرسله النموذج لاحقًا فيناسبه Checkbox أكثر.
  • داخل نموذج، المطفأ لا يرسل شيئًا والمشغَّل يرسل on، قبل الترطيب وبعده. وقيمة عدم التحديد تجعل المفتاح المطفأ يرسل نصًا خاصًا به.
  • إعادة ضبط النموذج تعيد المفتاح إلى حالته الافتراضية، على الشاشة وفي النموذج.
  • لا يرسم Switch تسمية خاصة به: اكتب <label htmlFor> تشير إلى id الخاص به.
  • size="custom" لا يرسم مقاسًا للمسار: أعطِ المسار مقاسًا من CSS الخاص بك.
basic
form
unchecked-value
sizes
بالعربية، من اليمين إلى اليسار

الخصائص

خصائص Switch
الخاصيةالنوعالافتراضيالحدودالوصف
aria-labelstring--The name read out when no visible label names the control.
aria-labelledbystring--The id of the visible text that names the control.
idstring--The id a <label htmlFor> points at.
classNamestring--Merged last, so a consumer class wins a conflict with the switch's own.
invalidbooleanfalse-Marks the value as wrong: sets aria-invalid, and the line of the track turns to danger and thickens.
refRef<HTMLButtonElement>--The root element, which is a <button>.
sizexs | sm | md | lg | xl | custom"md"-The toggle scale of the track and its thumb; custom emits no size classes.

لوحة المفاتيح وإمكانية الوصول

لوحة مفاتيح Switch
المفاتيحما يفعله
Tabينقل التركيز إلى المفتاح، ويتخطى المفتاح المعطّل.
SpaceEnterيشغّلان المفتاح أو يطفئانه.
  • الاسم مطلوب: id لتسمية <label htmlFor>، أو aria-label، أو aria-labelledby. والجذر هو <button role="switch">.
  • مساحة الهدف 24px، و44px تحت مؤشر لمس، مهما كان size المرسوم: حلقة التركيز تحيط بالمسار.
  • invalid يضبط aria-invalid، ويتحوّل خط المسار إلى لون الخطر ويزداد سمكًا.

من اليمين إلى اليسار

يبدأ المقبض من اليمين وينزلق إلى اليسار عند التشغيل، دون أي تغيير في الشيفرة.

الخادم والمتصفح

مكوّن متصفح: يُعرض على الخادم ثم يُرطَّب في المتصفح.

الملفات: index.tsx, client.tsx.

على الشارة: client - الحجم لم يُقَس بعد.