GH GambleHub

化身,狀態和保證

1)化身和狀態在UX中的作用

化身是個體的視覺錨點,狀態是其活動的背景。他們在一起:
  • 提供識別(在列表、聊天室、表格中);
  • 提供有關存在的即時反饋(在線/離線);
  • 創建界面活力感(尤其是在實時遊戲,PvP,聊天室中);
  • 在玩家之間的互動中增加信任和參與度。

2)類型學

一個元素指定顯示示例
阿凡達可視化用戶ID圓形或方形縮略圖32-64 px
Presence當前連接狀態綠色/灰色點,「在網絡上」,「不活動」
Activity當前操作「玩Ra的書」,「在比賽中」,「下註」
Custom status自定義簽名「不要打擾」,「休息」

3)尺寸和形狀

32 px是最小大小(列表,表,聊天)。
40-48 px-配置文件、卡片、導航欄。
64-96 px是大型輪廓塊,流室。

表格: 圓形為標準,方形為品牌/運營商.

半徑:圓形為「50%」,軟正方形為「8-12 px」。


4)下載和倒退

支持的格式為: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)調色板和背景

根據名字的哈希對背景進行自我發生:穩定但獨特的顏色。
背景和縮寫之間≥ AA的對比。
對於黑暗主題-15-20%的調光。
避免偶爾的「有毒」組合;限制調色板(6-10色調)。


6)Presence指示

6.1個基本狀態

狀態顏色文本行為行為
Online綠色(#00C853)在網絡上連接到WebSocket
Idle黃色('#FFD 600')處於非活動狀態無行動>5分鐘
Busy / DND紅色(「#D32F2F」)不要打擾在遊戲中或禁用通知
Offline灰色(「#9E9E9E」)不在網上無連接>2分鐘

6.2 Activity-level presence

此外,還可以顯示動作:
  • 「播放」
  • 「下註」
  • 「在比賽中」
  • 「休息」

6.3技術實施

每30秒通過WebSocket發送「heartbeat」。
如果沒有信號>60 sec → 'offline'。
活動(滾動、點擊、bet) →在線狀態更新。
在存儲中:TTL 120秒(Redis/Realtime API)。


7)顯示模式

7.1在用戶列表中

化身+狀態位於右下角(8-10 px)。
Tooltip: 「Online (在線)」/「5分鐘後的最後一個登錄」。

7.2在聊天中

化身+nik+mini-presence(「online/offline」)。
最新消息和時間。
通過socket事件「user_presence」進行同步。

7.3在排行榜上

化身+名稱+級別/等級。
Hover →迷你輪廓(最新活動,國家,勝利)。

7.4在玩家卡(PvP/Live)

大型化身(64-80 px)。
生活狀態:「在遊戲中」,「暫停」,「等待對手」。
筆畫顏色=狀態('border-color' var)。


8)可用性(A11y)

「alt」具有名稱和狀態:「亞歷克斯玩家的頭像在網上」。
對於狀態-文本副本,而不僅僅是顏色。
更改狀態時的'aria-live='polite'。
與背景狀態的AA ≥對比。
不要使用閃爍指示燈。


9)下載狀態和錯誤

裝載:沒有框架的灰色圓圈/骨架。
錯誤:倒退圖標+提示「未加載阿凡達」。
Empty:首字母縮寫或系統placeholder。


10)隱私性

用戶必須控制可見性(on/off)。
設置:「顯示在線狀態」/「顯示最新活動」。
對於來賓帳戶,presence隱藏。
在PvP中-只能顯示「可用/繁忙」,而無需精確的時間。


11) presence API的實現

json
{
"userId": "u123",
"presence": "online",
"activity": "playing",
"lastSeen": "2025-11-03T18:52:00Z"
}
服務器:
  • 訂閱頻道'/presence/{userId}"。
  • 定期ping/pong通過socket。
  • 通過TTL自動更新狀態。
客戶端:
js socket.on('presence:update', data => {
document.querySelector(`#u${data.userId}.status`).dataset.state = data.presence;
});

12) iGaming的細節

現場遊戲: 狀態「在12號房間」,「期待經銷商」,「講義去。」

比賽:「參與」徽章,結束計時器。
協作PvP:「發現對手/未激活」活動。
社交磁帶:來自錦標賽迷你徽章或VIP級別的化身。
投註:「在投註過程中」(忙碌)→「準備就緒」(在線)。


13)度量與表演

Presence latency:從事件到UI更新≤ 1秒。

Heartbeat success rate: ≥ 99%.

客戶端CPU加載:≤ 5%,1000更新/分鐘。
TTL accuracy:用戶在發布後不在線「掛起」。
內存泄漏測試:清除已預訂的聽眾。


14)反模式

沒有「alt」或沒有背景的化身是UI中的「漏洞」。
僅用於狀態的顏色(無文本/tooltip)。
閃爍點/脈動環-刺激。
沒有升級限制→ WebSocket過載。
以一秒鐘的精度顯示「最後一次」(侵犯隱私)。
一個網格中化身的不同格式/比例。


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 ≥對比;沒有純粹的顏色狀態。
  • Folback首次看到並閱讀。
  • Tooltip或文本狀態存在。

Presence

  • 狀態在事件發生後≤ 1秒更新。
  • 重新配置時,Offline → Online是正確的。
  • 不會出現激增(事件重復數據消除)。
  • 計入不作為(idle> 5分鐘)。

隱私權

  • presence可見性設置有效。
  • 最後一個季節四舍五入到分鐘/小時。
  • 沒有額外的活動披露(例如費率)。

表演表演

  • Heartbeat是穩定的,WebSocket自動重新連接與backoff。
  • 1000次更新時沒有內存泄漏。
  • TTFF在顯示時≤ 100毫秒。

17)設計系統中的文檔

Компоненты: `Avatar`, `PresenceDot`, `UserCard`, `ActivityBadge`, `LiveStatus`.

模式:帶有倒退的阿凡達,狀態點,Real Time Update Presence,私人模式。
代幣:尺寸,顏色,半徑,TTL更新,對比度。
Do/Do n't:沒有文字的顏色(do n't),一個列表中的圓形和正方形(do n't),穩定的尺寸和筆畫(do)。


簡短的摘要

化身和狀態不僅是裝飾元素,而且是用戶與系統之間交流的語言。連續的顏色,可讀的簽名,正確的同步和對隱私的尊重形成了「生活」空間的感覺,在iGaming中尤為重要:在競技場,錦標賽,現場聊天或與朋友打賭時。Presence使界面充滿活力和人性-但只有在平衡信息性和沈默的情況下。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。