GH GambleHub

Аватарлар, мәртебелер және presence

1) Аватардың рөлі және UX мәртебесі

Аватар - жеке тұлғаның көрнекі зәкірі, ал мәртебесі - оның белсенділігінің контексі. Олар бірге:
  • танымалдылықты қамтамасыз етеді (тізімдерде, чаттарда, кестелерде);
  • қатысу туралы жедел кері байланыс береді (online/offline);
  • интерфейстің жандылық сезімін тудырады (әсіресе real-time ойындарында, PvP, чаттарда);
  • ойыншылар арасындағы өзара іс-қимыл кезінде сенім мен тартымдылықты арттырады.

2) Типология

ЭлементМақсатыКөрсету үлгісі
АватарПайдаланушының көзбен шолу идентификаторыДөңгелек немесе шаршы миниатюра 32-64 px
PresenceҚосылымның ағымдағы күйіЖасыл/сұр нүкте, «желіде», «белсенді емес»
ActivityАғымдағы әрекет«Book of Ra ойнайды», «Турнирде», «Ставка қояды»
Custom statusПайдаланушы қолтаңбасы«Мазаламаңыз», «Үзілісте»

3) Өлшемдері мен пішіні

32 px - ең аз өлшем (тізімдер, кестелер, чаттар).
40-48 px - профильдер, карточкалар, навигация панелі.
64-96 px - профильдің ірі блоктары, стрим-бөлмелер.
Нысаны: дөңгелек - стандарт, шаршы - брендтер/операторлар үшін.
Радиусы: шеңбер үшін '50%' немесе жұмсақ квадрат үшін '8-12 px'.


4) Жүктеу және fallback

Қолдау көрсетілетін форматтар: JPEG, PNG, WebP, SVG (2-3 MB дейін).
Ресайз және серверде оңтайландыру (мысалы, 128, 256, 512 px).
Жоқ болған жағдайда - аватардың бас әрпі: аттың бірінші әріптері, палитраның аясы.
Жүктеу қатесі → пайдаланушы белгішесі бар placeholder.

html
<img class="avatar" src="/u/123/avatar.jpg" alt="Аватар игрока Alex" onerror="this.src='/assets/avatar-fallback.png'">

5) Түс палитрасы және фон

Хеш атауы бойынша фонның автогенерациясы: тұрақты, бірақ бірегей түс.
АА ≥ фон мен инициалдар арасындағы қарама-қарсылығы.
Қараңғы тақырып үшін - 15-20% қараңғылау.
Кездейсоқ «улы» тіркестерден аулақ болыңыз; палитраны шектеңіз (6-10 тонна).


6) Presence-индикация

6. 1 Базалық мәртебелер

Күй- жайыТүсіМәтінМінез-құлық
OnlineЖасыл ('#00C853')ЖелідеWebSocket қызметіне қосылған
IdleСары ('#FFD600')Белсенді емесӘрекет жоқ> 5 мин
Busy / DNDҚызыл ('#D32F2F')МазаламауОйында немесе ескертулерді өшірген
OfflineСұр ('#9E9E9E')Желіден тысҚосылым жоқ> 2 мин

6. 2 Activity-level presence

Қосымша әрекеттерді көрсетуге болады:
  • «Ойнайды»
  • «Ставка жасайды»
  • «Турнирде»
  • «Үзілісте»

6. 3 Техникалық іске асыру

WebSocket арқылы әрбір 30 секунд сайын 'heartbeat' жіберіледі.
Сигнал болмаған кезде> 60 сек → 'offline'.
Белсенділік кезінде (scroll, click, bet) → 'online' мәртебесін жаңарту.
Сақтау орнында: TTL 120 сек (Redis/Realtime API).


7) Бейнелеу үлгілері

7. 1 Пайдаланушылар тізімінде

Аватар + төменгі оң жақ бұрыштағы нүкте мәртебесі (8-10 px).
Tooltip: «Онлайн »/« Соңғы кіру 5 минут бұрын».

7. 2 сөйлесу

Аватар + ник + mini-presence ('online/offline').
Соңғы хабар және уақыт.
socket event 'user _ presence' арқылы үндестіру.

7. 3 Көшбасшылар кестесінде

Аватар + аты + деңгейі/дәрежесі.
Hover → шағын профиль (соңғы белсенділік, ел, жеңіс).

7. 4 Ойыншы карточкасында (PvP/Live)

Ірі аватар (64-80 px).
Тірі мәртебесі: «Ойында», «Үзілісте», «Қарсыласты күтеді».
Жиек түсі = күйі ('border-color' var).


8) Қол жетімділік (A11y)

'alt' атауы мен мәртебесімен: «Alex ойыншысының аватары - желіде».
Мәртебелер үшін - мәтіндік телнұсқалар, тек түсі ғана емес.
'aria-live =' polite 'күйі өзгергенде.
АА ≥ мәніне мәндік қарама-қайшылығы.
Жыпылықтайтын индикаторларды қолданбау.


9) Жүктеу жағдайлары және қателер

Loading: сұр шеңбер/қаңқасыз скелетон.
Error: fallback-белгішесі + «Аватар жүктелмеген» көмекшісі.
Empty: бастапқы немесе жүйелік placeholder.


10) Құпиялылық

Пайдаланушы presence (on/off) көрінуін бақылауы тиіс.
Параметрлер: «Онлайн күйін көрсету »/« Соңғы әрекетті көрсету».
Қонақ аккаунттары үшін presence жасырын.
PvP - тек «қол жетімді/бос емес» деп көрсетуге болады.


11) presence API іске асыру

json
{
"userId": "u123",
"presence": "online",
"activity": "playing",
"lastSeen": "2025-11-03T18:52:00Z"
}
Сервер:
  • '/presence/{ userId} 'арнасына жазылу.
  • Socket арқылы мерзімді ping/pong.
  • TTL күйін автоматты түрде жаңарту.
Клиент:
js socket.on('presence:update', data => {
document.querySelector(`#u${data.userId}.status`).dataset.state = data.presence;
});

12) iGaming ерекшелігі

Live-ойындар: «№ 12 бөлмеде», «Дилерді күтеді», «Тарату жүріп жатыр» мәртебесі.
Турнирлер: бейдж «Қатысады», аяқталу таймері.
Кооперативтік PvP: «Қарсылас табылды/белсенді емес» белсенділігі.
Әлеуметтік таспалар: mini-badge турнирі немесе VIP деңгейі бар аватар.
Мөлшерлемелер: «Мөлшерлеме процесінде» (busy) → «Дайын» (online).


13) Метрика және спектакль

Presence latency: оқиғадан UI жаңартуға дейін 1 сек ≤.
Heartbeat success rate: ≥ 99%.
CPU жүктеу: 1000 жаңарту/мин 5% ≤.
TTL accuracy: пайдаланушылар шыққаннан кейін онлайн «ілінбейді».
Memory leak tests: Жазылмаған тыңдаушыларды тазалау.


14) Антипаттерндер

'alt' -сіз немесе фонсыз аватар - UI-дегі «тесік».
Тек күй үшін түсі (мәтінсіз/tooltip).
Жыпылықтайтын нүктелер/пульсациялы сақиналар - тітіркендіреді.
Жаңарту лимитінің жоқтығы → WebSocket жүктелімі.
«last seen» секундқа дейінгі дәлдікпен көрсетіледі (құпиялылықтың бұзылуы).
Бір тордағы аватарлардың әртүрлі пішімдері/пропорциялары.


15) Дизайн-жүйе токендері (мысал)

json
{
"avatar": {
"sizes": { "xs": 24, "sm": 32, "md": 40, "lg": 64 },
"radius": { "circle": "50%", "square": 8 },
"border": { "width": 2, "color": "var(--bg-elevated)" }
},
"presence": {
"dotSize": 10,
"gap": 2,
"colors": {
"online": "#00C853",
"idle": "#FFD600",
"busy": "#D32F2F",
"offline": "#9E9E9E"
}
},
"motion": {
"updateMs": 150,
"fadeMs": 120
},
"a11y": {
"contrastAA": true,
"textLabel": true
}
}

16) QA-чек парағы

UI

  • Өлшемдері мен радиустары консистентті; аватар орталықтандырылған.
  • Контраст ≥ AA; түс күйі жоқ.
  • Фолбэк бастауын көріп, оқимыз.
  • Tooltip немесе мәтін күйі бар.

Presence

  • Жағдай оқиғадан кейін 1 сек ≤ жаңартылады.
  • Offline → Online реконнект кезінде дұрыс.
  • Жарылыстар жоқ (оқиғаларды дедупликациялау).
  • Әрекетсіздік ескеріледі (idle> 5 мин).

Құпиялылық

  • presence көріну параметрлері жұмыс істейді.
  • Last seen минутына/сағатына дейін дөңгелектенеді.
  • Белсенділіктің артық ашылуы жоқ (мысалы, мөлшерлемелер).

Көрініс

  • Heartbeat тұрақты, WebSocket auto-reconnect backoff.
  • 1000 жаңарту кезінде жад кемімейді.
  • TTFF көрсету кезінде 100 мс ≤.

17) Дизайн-жүйедегі құжаттама

Компоненты: `Avatar`, `PresenceDot`, `UserCard`, `ActivityBadge`, `LiveStatus`.
Паттерндер: «Fallback бар аватар», «Нүкте мәртебесі», «Real-time presence жаңарту», «Жеке режим».
Белгілер: өлшемдері, түстері, радиустары, TTL жаңартулары, қарама-қарсылығы.
Do/Don 't: мәтінсіз түс (don' t), бір тізімдегі дөңгелек және шаршы пішіндер (don 't), тұрақты өлшемдер мен жиектер (do).


Қысқаша түйіндеме

Аватарлар мен мәртебелер - бұл жай ғана сәндік элементтер емес, пайдаланушылар мен жүйе арасындағы қарым-қатынас тілі. Дәйекті түстер, оқылатын қолтаңбалар, дұрыс үндестіру және құпиялылықты құрметтеу, әсіресе iGaming-те: аренада, турнирде, live-чатта немесе достармен ставкаларда маңызды «тірі» кеңістік сезімін қалыптастырады. Presence интерфейсті динамикалық және адамгершілік етеді - бірақ ақпарат пен тыныштық теңгерімінде ғана.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.