GH GambleHub

Прогресстин жана статустун көрсөткүчтөрү

1) Принциптер

1. Заматта жооп (≤ 100 ms). Ар кандай иш-аракет дароо визуалдык тастыкталат: → 'busy '/скелет/микроанимация басуу.
2. Чынчылдык жана алдын ала айтуу. Пайыздар "түбөлүк 99%" эмес, реалдуу прогрессти чагылдырат. Эгерде баа берүү мүмкүн болбосо, анда аныкталбаган (indeterminate) вариантты жана түшүндүрмөнү колдонуңуз.
3. иш-аракеттердин жанында контекст. Колдонуучу карап/иш-аракет кылган жерде индикатор (баскычы, карта, блок) эмес, алыскы бурчта.
4. Ийгиликтен кийин көрүнбөстүк. Ийгилик - кыска чек/фейд жана башкалар. Ката - түшүнүктүү түшүндүрмө жана коопсуз кайталоо.
5. Демейки жеткиликтүүлүгү. 'role = "progressbar"', 'aria-valuenow', live-региондор, контраст ≥ AA.

2) Индикаторлордун түрлөрү жана аларды качан колдонуу керек

Сызыктуу прогресс (determinate/indeterminate). Жүктөө/импорт/экспорт, түшүнүктүү көлөмү менен кадамдар.
тегерек прогресс (адатта indeterminate). Кыска компакт жерлерде жергиликтүү иш.
Stepper (кадам). ырааттуу этаптары ("2-кадам 4"), KYC, мастер-процесстер.
Skeleton (skeleton штепсель). Спиннерлердин ордуна мазмундун структурасын алмаштыруу үчүн; 'prefers-reduced-motion' менен колдонуучулар үчүн "shimmer" алыс.
Статус-төш белгилер (success/warning/danger/info). Объекттин абалы ("Иштетүүдө", "Четке кагылды", "Даяр").
Баннер/тост статусу. Глобалдык окуялар: оффлайн, сервердин бузулушу, кезек синхрондоштуруу.
Inline Loader (баскыч/сап). Жергиликтүү операциялар: "Сактоо"..., "Жөнөтүү"....

3) Белгилүү vs белгисиз прогресс

Determinate: белгилүү иш көлөмү → %/этаптары көрсөтүү.
Indeterminate: көлөмү белгисиз → "иштеп жатат"... + контексти ("Адатта 1-2 мин").
Services өзгөртүү: indeterminate → баа пайда болгондо determinate өтүү менен баштаса болот.
ETA этияттык менен: диапазонун көрсөтүү ("~ 30-60 сек") жана "убада" качуу.

4) жайгаштыруу жана үлгүлөрү

Жергиликтүү иш-аракет үчүн: баскычы 'aria-busy', стол сапта spinner, карта прогресс.
Блок/тизменин үстүндө: пакеттик операцияларда секциянын хедери астында сызыктуу бар.
Global: жогорку жука прогресс (route-change), системалык баннерлер.
Sticky Panel : төмөнкү докто CTA ырастоо/прогресс.

5) Жеткиликтүүлүк (A11y)

Прогресс:
html
<div role = "progressbar" aria-valuemin =" 0" aria-valuemax =" 100" aria-valuenow =" 42" aria-label = "Load Report "> </div>

Indeterminate: 'role =' progressbar '' 'aria-valuenowсуз', түшүндүрмө текстти 'role =' status '' дегенге кошуңуз.
Live региондор: 'aria-live = "polite"' кадимки жаңылануулар үчүн, 'assertive' - критикалык гана.
'aria-busy =' true 'иш-аракеттер менен убактылуу бөгөттөлгөн контейнерде.
Фокус "секирип" кетпейт: этап өзгөргөндө, фокусту степпер этабынын аталышына жылдырыңыз.

6) Копирайтинг жана визуалдык семантика

Кыска жана иш боюнча: "Жүктөө бар"..., "Төлөмдү иштеп чыгуу"....
Кошуу "кийинки": "Даяр. Баракты автоматтык түрдө жаңыртабыз".
Түстөр: жашыл - ийгилик, кызгылт сары - эскертүү/көңүл буруу, кызыл - ката. түс ≠ мааниси гана алып жүрүүчү: сөлөкөт/текст бер.

7) Оптимисттик жаңыртуулар жана кайтарымдар

Оптимизм: Биз дароо UI өзгөртүп (мисалы, "Сүйүктүү" деген белги) жана акырын Server тастыктайт.
ката - жумшак артка + түшүндүрмө жана 'Retry'.
Критикалык операциялар (коюм/төлөм): кошумча "жумшак оптимизм" ("Жөнөтүлдү → Тастыктоону күтөбүз"...), бирок тастыкталганга чейин акчалай абалын өзгөртпөстөн.

8) Кезектер жана фон милдеттери

Кезекти көрсөтүңүз: иштетүүдөгү 'n' милдеттери, прогресс менен жеке карталар.
Мүмкүн болсо, узак операциялар үчүн тыныгуу/жокко чыгаруу.
Фонду иштетүү: "Фонда" төш белгиси, аяктагандан кийин тосттор, "Милдеттердин тарыхы" бөлүмү.

9) Аткаруу жана таймингдер

Биринчи жооп ≤ 100 ms: бош ордуна skeleton/inline-busy колдонуу.
Анимациялар: 120-180 мс (in), 80-140 мс (out), бир гана 'transform/opacity'.
Узак процесстер: прогрессти жаңылоо 10-15 жолу/сек; өзгөрүүлөрдү топтоңуз.

10) Сниппеттер

Кнопкадагы жергиликтүү прогресс

html
<button id="export" class="btn" aria-busy="false">Экспорт CSV</button>
<script>
const btn = document. getElementById('export');
btn. addEventListener('click', async () => {
btn. setAttribute('aria-busy','true'); btn. disabled = true;
try {
const r = await fetch('/api/export', { method:'POST' });
if(!r.ok) throw new Error();
//show toast "Export has begun. We will notify upon readiness"
} catch {
//toast with cause and Retry
} finally {
btn. disabled = false; btn. setAttribute('aria-busy','false');
}
});
</script>

Сызыктуу determinate

html
<div class="progress">
<div class="bar" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"></div>
</div>
<style>
.progress{height:4px; background:var(--bg-muted); border-radius:999px; overflow:hidden}
.progress. bar{height:100%;width:0%;background:var(--accent); transition:width. 16s}
</style>
<script>
const bar = document. querySelector('.progress. bar');
let n=0; const t=setInterval(()=>{ n=Math. min(100, n+5); bar. style. width=n+'%'; bar. setAttribute('aria-valuenow',n); if(n===100) clearInterval(t); },160);
</script>

Stepper

html
<nav aria-label = "Progress">
<ol class="steps">
<li class = "done "> <span> 1 </span> Data </li>
<li class = "current" aria-current = "step "> <span> 2 </span> Documents </li>
<li> <span> 3 </span> Confirmation </li>
</ol>
</nav>

11) Skeleton туура

Келечектеги мазмундун формасын (карталар/саптар) чексиз shimmer жок колдонуңуз (же 'prefers-reduced-motion' менен өчүрүңүз).
Убакыт чеги: жүктөө> 300-500 ms болсо, skeleton акталган; "микро-фейд" жетиштүү.

12) Статус-төш белгилер (объекттик шарттар)

Мисалдар: Долбоор, иштетүү, ырастоо күтүп, даяр, четке кагылды.

Кыска текст, туруктуу сөлөкөт/фон түстөр, контраст ≥ AA.
Сөлөкөтү' aria-hidden =" true"' + текст белги (SR үчүн).
чыкылдатуу - майда-чүйдөсүнө чейин ачып же "Тарых" ачып.

13) iGaming өзгөчөлүктөрү

Коюм:
  • CTA басуу → "Жөнөттү"..., кечигип жатканда> 3 с - "Тастыктоону күтөбүз..." (indeterminate).
  • Ийгилик - "Коюм кабыл алынды" + чек; ката - чынчыл түшүндүрмө ("рыноктук мезгил жабык/чен өзгөргөн") жана коопсуз Retry.
Аманат/чегерүү:
  • этаптарында Determinate: "Текшерүү ыкмасы → жөнөтүү → PSP ырастоо".
  • Чыгаруу үчүн - бейдж иштетүү, профилдеги статус экраны, ETA диапазону; аяктагандан кийин.
Турнирлер/лидерлер:
  • Stepper каттоо (кадамдар), сыйлыкка прогресс (N/упай), "катышат" статусун төш белгиси.
  • Реалдуу убакыт жаңыртуу - кылдаттык менен, эч кандай жарк эткен, менен 'aria-live = "polite"'.
KYC:
  • Stepper + төш белги "текшерүү". Буга чейин кабыл алынганын (белги) жана эмне калганын көрсөтүңүз.

14) Түстөр, контраст жана текст

Success/Info/Warning/Danger - дизайн системасында төрт туруктуу тон.
АА ≥ белгисинин фонуна тексттин карама-каршылыгы.
"Иштетүүдө" жана "эскертүү" үчүн бир түстү колдонбоңуз.

15) Метрика

Time-to-First-Feedback (TTFF): биринчи визуалдык жооп чыкылдатуу.
бүтүмдөр боюнча Completion Time жана узак милдеттери үчүн drop/abort rate.
Прогрессивдүү операциялар үчүн Retry success rate.
% оптимисттик, ийгиликтүү аяктады (жана кайтарым үлүшү).
Visible time skeleton/spinner (максаты: мүмкүн болушунча аз).

16) Анти-үлгүлөрү

"Тилсиз" баскычы (эч кандай busy/spinner)> 100 ms.
Чексиз Spinner эч кандай түшүндүрмө жана альтернатива.
99% илинип калган жалган пайыздар/жылгыч.
Кайталоо мүмкүн болбостон, мазмунду жаңылыш.
Статус үчүн текстсиз/иконасыз гана түс.
Прогресс алыс иш-аракет (колдонуучу көрө албайт).

17) Дизайн системасы токендери (мисал)

json
{
"progress": {
"barHeight": 4,
"radius": 999,
"inMs": 160,
"outMs": 120,
"pollHz": 10
},
"status": {
"tones": { "success": "#", "info": "#", "warning": "#", "danger": "#" },
"badge": { "radius": 8, "px": "6 10", "icon": 14 }
},
"skeleton": {
"rowHeight": 16,
"gap": 8,
"reduceMotion": true
},
"a11y": {
"useAriaBusy": true,
"live": "polite",
"contrastAA": true
}
}
CSS пресеттери:
css
.badge{display:inline-flex; gap:6px; align-items:center; padding:6px 10px; border-radius:8px; font-size:.875rem}
.badge--success{background:var(--bg-success); color:var(--on-success)}
.skeleton{background:linear-gradient(90deg, var(--sk1), var(--sk2), var(--sk1)); border-radius:8px}
@media (prefers-reduced-motion: reduce){.skeleton{background:var(--sk1)} }

18) QA-чек тизмеси

Жооп жана чынчылдык

  • TTFF ≤ 100 мс; жергиликтүү busy/skeleton бар.
  • Determinate - реалдуу%; indeterminate - түшүндүрмө менен.

Жеткиликтүүлүк

  • 'role = "progressbar" '/' aria-valuenow' туура; live-аймактар ​ ​ жаңыртууларда.
  • Бейдждердин/тексттин контрасты ≥ AA; түс гана маани алып жүрүүчү эмес.

Жүрүм-туруму

  • Туура кайтаруу жана түшүндүрүү менен оптимизм.
  • кезектери көрсөтүлөт; жокко чыгаруу/тыныгуу бар (колдонулса).
  • Иш-аракет ордуна жакын прогресс, CTA жаап жок.

Аткаруу

  • Updates 10-15 эсе көп эмес/сек; 'transform/opacity' анимациялары.
  • Skeleton 'reduce-motion' менен шиммер менен шылдыңдабайт.

Тексттер

  • Кыска, техникалык жаргон жок; аяктагандан кийин "мындан ары эмне болот".
  • кепилдик жок болсо, так убакыт "убада" жок.

19) Дизайн системасында документтер

Компоненты: `ProgressBar`, `ProgressCircle`, `Stepper`, `StatusBadge`, `InlineLoader`, `Skeleton`.
түрлөрүн тандоо эрежелери, копирайтинг жана статус үчүн түстөр.
Үлгүлөр: оптимизм, кезек, арткы иштетүү, оффлайн синхрондоштуруу.
Do/Don 't-галерея: "түбөлүк spinner", жалган пайыздар, "тилсиз" CTA vs жакшы TTFF.

Кыскача резюме

Прогресстин жана статустун көрсөткүчтөрү өз убагында, чынчыл жана жеткиликтүү пикир бериши керек. Аларды иш-аракеттердин жанына жайгаштырыңыз, белгилүү жана белгисиз прогрессти айырмалаңыз, a11y сыйлаңыз жана анимацияларды кыянаттык менен пайдаланбаңыз. iGaming бул коюмдарды, төлөмдөрдү, турнирлерди жана KYC үчүн өзгөчө маанилүү болуп саналат - тынч, алдын ала прогресс түздөн-түз ишеним жана конверсия жогорулатат.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.