GH GambleHub

მაკონტროლებელი არჩევანი: ჩეკბოქსი, სვიტჩი, რადიო

1) ძირითადი განსხვავებები (მნიშვნელობა, არა „ნიმუში“)

მაკონტროლებელირას ნიშნავსგამოყენებაეფექტის გამოყენება
ჩეკბოქსიჩართვა/გამორთვა კონფიგურაცია ან პარამეტრები. ეს შეიძლება იყოს დამოუკიდებელი ან მრავალჯერადი არჩევანი. მხარს უჭერს tri-state. პარამეტრების სიები, ფილტრები, თანხმობა. შეგიძლიათ აირჩიოთ რამდენიმე. ჩვეულებრივ, შეფერხებულია („შენახვის“ მიხედვით), მაგრამ დასაშვებია მყისიერად, თუ ეფექტი ცბიერია და შექცევადია.
სვიტჩი (შეცვლა)სისტემის/ფუნქციის ამჟამინდელი მდგომარეობის ცვლილება, რომელიც დაუყოვნებლივ უნდა შეიცვალოს და ვიზუალურად შესამჩნევი იყოს. ფუნქციონალური, სტატუსის, შეტყობინებების, ცოცხალი რეჟიმის დიდი/გამონაბოლქვი. მყისიერად და აშკარად; დამატებითი შენახვის გარეშე.
რადიოკოპებიურთიერთგამომრიცხავი ვარიანტები ერთი ნაკრებიდან. ზუსტად ერთი შეირჩა ყოველთვის (ან არჩევანის შემდეგ). რეჟიმები, ფორმატები, გაზომვის ერთეულები, დახარისხება. ჩვეულებრივ გამოიყენება დაუყოვნებლივ; რთული ცვლილებებისთვის - „გამოიყენეთ“.
წესი:
  • გჭირდებათ ერთი N - აიღეთ რადიო.
  • ჩვენ გვჭირდება დროშების ნებისმიერი ნაკრები - ჩეკბოქსი.
  • ჩვენ გვჭირდება ერთი ორობითი ნისლი, რომელიც დაუყოვნებლივ ცვლის ქცევას - სვიტჩს.

2) გადაწყვეტილების ხე (მოკლედ)

1. რამდენიმე დამოუკიდებელი არჩევნები? - ჩეკბოქსი.
2. ზუსტად ერთი ვარიანტია ნაკრებიდან? Radiocnopki (ან სეგმენტის კონტროლი/tegles).
3. ერთი ორობითი დროშა, მყისიერი და შესამჩნევი ეფექტი? - სვიტჩი.
4. გჭირდებათ „ნაწილობრივი“ ნიშანი?
5. რისკი/ღირებულება მაღალია (გადახდა, მოდერაცია)?

3) მომხმარებლის ქცევა და მოლოდინი

სვიტჩი = მყისიერი შედეგი. გადართვის შემდეგ, მომხმარებელი ელოდება დაუყოვნებლივ ეფექტს და შექცევას ინდივიდუალური „შენახვის“ გარეშე.
Chekbox = ვარიანტების არჩევანი. იგი შეიძლება გამოყენებულ იქნას დაუყოვნებლივ ან ღილაკით - მნიშვნელოვანია აშკარად აჩვენოს მოდელი („პარამეტრები დაცულია “/„ დააჭირეთ შენახვას“).
რადიო = რეჟიმის არჩევანი. გადასვლას შეუძლია ინტერფეისის აღდგენა. მიუთითეთ ცვლილებები (მიკროანიმაცია/ტექსტი).

4) სახელმწიფოები და ვიზუალური სემანტიკა

Normal / Hover / Focus / Active / Disabled / Error. ტექსტისა და ინდიკატორების კონტრასტი AA.
Tri-state (Chekbox): ცარიელი/ნაწილობრივ/შერჩეული. ნაწილობრივი მდგომარეობა თავისთავად მოუხერხებელია - კლიშე ცვლის „შერჩეულ“ და არა „ცარიელ“.
სვიტჩი: აქვს მკაფიო განსხვავება „შეყვანა/ამოღება“ „მორბენალის“ ფერისა და პოზიციის მიხედვით. ფერი არ არის მნიშვნელობის ერთადერთი გადამზიდავი (ხატი/ეტიკეტი იქვე).

5) საავტორო უფლებები და ხელმოწერები

ზმნა + ობიექტი ან განცხადება, რომელიც ხდება ნამდვილი არჩევანის დროს.

Chekbox: მიიღე ელექტრონული ფოსტის შეტყობინებები.
სვიტჩი: „შეტყობინებები: BNG/Vycle“ (ეტიკეტი მარცხნივ, მდგომარეობა - მარჯვნივ ან თავად სვიტერში).
რადიო: „კოეფიციენტების ფორმატი: ათობითი/წილადი/ამერიკული“.
მოერიდეთ ორმაგ უარყოფას: „ნუ გამორთავთ...“ - ჱაბვლწჱგა.

სარისკო მოქმედებებისთვის დაამატეთ მეორადი აღწერა: "დიდი. სწრაფი განაკვეთები (დადასტურების გარეშე) - შეიძლება გაუქმდეს 5 წამში"

6) წვდომა (A11y) და კლავიატურა

Chekbox: 'role = „checkbox“', 'aria-checked = „ნამდვილი' false 'mixed“', Space - გადართვა.
სვიტჩი: მშობლიური '<input ტიპი = „checkbox“>' სვიტჩის ვიზუალით ან 'role = „switch“' s 'aria-checked'. ქცევა ჰგავს Space.
რადიო: 'role = "radiogroup"' კონტეინერზე, 'role = "რადიო" "ელემენტებზე, ისრები -1- დან ან/და-დან - ისინი მოძრაობენ არჩევანს, Space/Enter - დასტურდება.
ჯგუფები: გამოიყენეთ 'fieldset '/' legend' ზოგადი კონტექსტისთვის.
ფოკუს რგოლები დატოვეთ ხილული; დაწკაპუნების ზონების ზომებია 44 × 44 px.

Snippets:
html
<! -- Radio Group -->
<fieldset role="radiogroup" aria-labelledby="odds-format">
<legend id = "odds-format "> Odds format </legend>
<label><input type="radio" name="odds" value="decimal" checked> Десятичный</label>
<label><input type="radio" name="odds" value="fractional"> Дробный</label>
<label> <input type = "radio" name = "odds" value = "american"> American </label>
</fieldset>

<! -- Checkbox (tri-state via aria) -->
<div role = "checkbox" aria-checked =" mixed" tabindex =" 0" id = "cb "> Notify about tournaments </div>

<! -- Switch (role = "switch") -->
<button role="switch" aria-checked="false" aria-labelledby="live-title" class="switch" id="live">
<span class="switch__knob"></span>
</button>
<span id = "live-title "> Live updates </span>

7) ასინქრონული ცვლილებები და შეცდომები

სვიტრი + ქსელი: შეცვლა - დაუყოვნებლივ ოპტიმისტური UI - სერვერის დადასტურება - უხერხულობის შემთხვევაში, ჩვენ რბილად ვტრიალებთ და ვაჩვენებთ მიზეზს.
Chekbox/Radio Stange- ში: ჯერჯერობით არ არსებობს დადასტურება - შეცვალეთ გლობალური ქცევა.
სარისკო მოქმედებები: დადასტურება (მოდალური) ან უნდო პანელი 5-10 წამით (თუ რეგულაცია ნებადართულია).

js
//Optimistic for switch const sw = document. getElementById('live');
sw. addEventListener('click', async ()=>{
const prev = sw. getAttribute('aria-checked') === 'true';
sw. setAttribute ('aria-checked', String (! prev)) ;//instantly try {
const r = await fetch('/api/live', { method:'POST', body: JSON. stringify({ enabled:!prev })});
if(!r.ok) throw new Error();
} catch {
sw. setAttribute('aria-checked', String(prev));     // откат
//show the toast "Failed to enable live"
}
});

8) მობილური ნიმუშები

სვიჩი არის მთავარი ორობითი კონტროლი მობილური პარამეტრებით.
რადიო შეიძლება შეიცვალოს სეგმენტირებული კონტროლისთვის 2-4 ვარიანტისთვის (უკეთესია თითის დაჭერა).
სიებში ჩეკბოქსი - კლიკის დიდი არეალი და სწრაფი მულტივირუსის მხარდაჭერა.

9) ჯგუფისა და განლაგების ნიმუშები

რადიო: ვერტიკალური სია (უკეთესად სკანირებული), 2-3 ვარიანტისთვის - სეგმენტები ერთი ხაზით.
ჩეკბოქსი: ერთი სვეტის გასწორება; გრძელი სიებისთვის - „აირჩიე ყველაფერი“ + tri-state ჯგუფისთვის.
სვიტჩი: ეტიკეტი მარცხნივ, აკონტროლებდა მარჯვნივ ერთ ხაზზე; საჭიროების შემთხვევაში აჩვენეთ ამჟამინდელი მდგომარეობა ტექსტით („დიდი „/“ გამონადენი “).

10) ანტიპატერები

სვიტჩი, რომელიც დაუყოვნებლივ არ იყენებს ცვლილებებს (მოითხოვს „შენახვას“).
რადიო ფანჯრები, სადაც მრავალჯერადი არჩევანია შესაძლებელი.
ჩეკბოქსი ურთიერთგამომრიცხავი ვარიანტებისთვის („კაცი/ქალი“, როგორც ორი ჩეკბოქსი).
ორობითი სვიტრი საშიში შეუქცევადი მოქმედებისთვის (მონაცემების წაშლა).
ორმაგი უარყოფა ტექსტში.
განლაგების შეცვლა შეცდომით ისე, რომ ფოკუსი იკარგება.

11) iGaming სპეციფიკა (მაგალითები)

კოეფიციენტების ფორმატი: ათობითი/წილადი/ამერიკული რადიო ჯგუფი - დაუყოვნებლივ გამოიყენება და რჩება პროფილში.
სწრაფი კურსი: სვიტრი „სწრაფი განაკვეთები (დადასტურების გარეშე)“ მკაფიო აღწერით და undo თითოეული ოპერაციის შემდეგ 5-10 წამით.
გამოწერა/შეტყობინებები: ჩეკბოქსი მოვლენების ტიპებზე (მოგება, ტურნირები, ანაბრები). ჯგუფური ჩეკბოქსი „აირჩიე ყველაფერი“ - tri-state.
კოეფიციენტების ცოცხალი განახლებები: სვიტრი „ცოცხალი რეჟიმი“ ოპტიმისტურობით და ქსელის შეცდომით გამოტოვებით.
საპასუხისმგებლო თამაშის ლიმიტები: რადიო მატარებლები პერიოდებისთვის (დღე/კვირა/თვე) + თანხის ველი; შეცვლილი ლიმიტის დადასტურება „ხვალიდან“ შესვლით.

12) დიზაინის სისტემის ნიშნები (მაგალითი)

json
{
"checkbox": { "size": 20, "radius": 4, "gap": 8 },
"radio": { "size": 20, "dot": 10, "gap": 8 },
"switch": { "width": 44, "height": 24, "knob": 20, "padding": 2 },
"focusRing": { "width": 2, "offset": 2 },
"motion": { "toggleMs": 140, "ease": "cubic-bezier(0. 2,0,0. 2,1)" },
"a11y": { "contrastAA": true }
}
CSS პრესეტები (კონცეფცია):
css
.control { display:flex; align-items:center; gap:8px; min-height:36px; }
.switch { width:44px; height:24px; padding:2px; border-radius:999px; background:var(--bg-muted); position:relative; }
.switch[aria-checked="true"]{ background:var(--accent); }
.switch__knob{ position:absolute; width:20px; height:20px; border-radius:50%; left:2px; top:2px; transition: transform. 14s cubic-bezier(.2,0,.2,1); background:#fff; }
.switch[aria-checked="true"].switch__knob{ transform: translateX(20px); }
.control:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }

13) UX ლოგიკის Snippets

Tri-state „აირჩიე ყველაფერი“:
js function updateMaster(master, items){
const total = items. length, checked = items. filter(i=>i. checked). length;
master. indeterminate = checked>0 && checked<total;
master. checked = checked===total;
}
რადიო ჯგუფი კლავიატურით (ისრები):
js const radios = [...document. querySelectorAll('[role="radio"]')];
let i = radios. findIndex(r => r. getAttribute('aria-checked')==='true');
document. addEventListener('keydown', e => {
if(!['ArrowRight','ArrowDown','ArrowLeft','ArrowUp'].includes(e. key)) return;
e. preventDefault();
const dir = (e. key==='ArrowRight'          e. key==='ArrowDown')? 1: -1;
i = (i + dir + radios. length) % radios. length;
radios. forEach(r => r. setAttribute('aria-checked','false'));
radios[i].setAttribute('aria-checked','true');
radios[i].focus();
});

14) მეტრიკა და ექსპერიმენტები

Misclick rate და undo სიხშირე გრაგნილების მიხედვით.
რადიო ჯგუფებში არჩევანის დრო და შეუსაბამობის შეცდომა.
„არჩევანის ყველაფერი“ წილი და სახელმძღვანელო არჩევანის შედარება (სიჩქარე, სიზუსტე).
A/B: ეტიკეტის საავტორო უფლებები, ვარიანტების რიგი, სეგმენტირებული vs რადიო, „დაუყოვნებლივ გამოიყენეთ“ vs „ღილაკზე“.

15) QA ჩეკის სია

მნიშვნელობა და არჩევანი

  • კონტროლი შეესაბამება დავალებას (მრავლობითი) ჩეკბოქსი; ერთ - ერთი N - რადიოდან; მყისიერი ორობითი სვიტრი).
  • სარისკო მოქმედებებისთვის, არსებობს დადასტურება/undo.

ხელმისაწვდომობა

  • სწორი როლები ('checkbox '/' switch '/' radiogroup '/' radio'), 'aria-checked '/' indeterminate'.
  • ფოკუსის რგოლები ჩანს, ისრები მუშაობენ რადიო ჯგუფში, Space ცვლის checkbox/switch.

ქცევა

სვიტრი დაუყოვნებლივ იყენებს ცვლილებებს; შეცდომით - გამოტოვება და გაგზავნა.

  • Tri-state „არჩევანის ყველაფერი“ სწორია; ეტიკეტის კლიშეები მუშაობს.

ვიზუალური

  • კონტრასტი AA; მდგომარეობა მხოლოდ ფერით არ გადადის.
  • დაწკაპუნების ზონები - 44 × 44 px; წესრიგი და გათანაბრება სტაბილურია.

მობილური

  • Segmented კონტროლი 2-4 რადიო ვარიანტისთვის ტესტირებულია სენსორისთვის.
  • თითის დარტყმა და გადახრა არ ეწინააღმდეგება.

16) დოკუმენტაცია დიზაინის სისტემაში

კომპონენტები: 'Checkbox', 'Switch', 'RadioGroup '/' SegmentedeControl'.
ზომების/ანიმაციების/ფოკუსის ნიშნები, საავტორო უფლებების მაგალითები.
ნიმუშები: „აირჩიე ყველაფერი“ (tri-state), „მყისიერი გამოყენება“, „Undo რისკის შემდეგ“.
Do/Don 't Galler: გადავადებული შენახვის სვიტრი (don' t), რადიო ნაცვლად chekboxs (don 't), სეგმენტები მოკლე კომპლექტებისთვის (do).

მოკლე რეზიუმე

საკონტროლო არჩევანი ეხება მნიშვნელობას და მოლოდინს: ჩეკბოქსი - დამოუკიდებელი დროშები და ჯგუფები, სვიტრი - ფუნქციის მყისიერი ჩართვა/გამორთვა, რადიო - ზუსტად ერთი ვარიანტი ნაკრებიდან. შეინარჩუნეთ წვდომა, იფიქრეთ ასინქრონულ მდგომარეობებზე და საავტორო უფლებებზე - და მომხმარებლები თავდაჯერებულად შეცვლიან პარამეტრებს შეცდომების და სიურპრიზების გარეშე.

Contact

დაგვიკავშირდით

დაგვიკავშირდით ნებისმიერი კითხვის ან მხარდაჭერისთვის.ჩვენ ყოველთვის მზად ვართ დაგეხმაროთ!

ინტეგრაციის დაწყება

Email — სავალდებულოა. Telegram ან WhatsApp — სურვილისამებრ.

თქვენი სახელი არასავალდებულო
Email არასავალდებულო
თემა არასავალდებულო
შეტყობინება არასავალდებულო
Telegram არასავალდებულო
@
თუ მიუთითებთ Telegram-ს — ვუპასუხებთ იქაც, დამატებით Email-ზე.
WhatsApp არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.