GH GambleHub

Gamble Hub UI Komponentenbibliothek

1) Ziele und Grundsätze

Warum: Beschleunigen Sie die Lieferung von fitch, sorgen Sie für konsistente UX und vereinfachen Sie den Support.

Grundsätze:
  • Semantik und Neutralität. Die Komponente löst das UI-Problem, ohne die Geschäftslogik zu vernähen.
  • A11y-by-default. Rollen, Fokusringe, Aria-Attribute und Kontrast - in die Komponenten eingenäht.
  • i18n-first. Zeilenlängen, Zahlenformate, RTL - wir berücksichtigen aus der Box heraus.
  • Temization. Helle/dunkle Themen und Markenakzente durch Token.
  • Skalierbarkeit. Einheitliche APIs, Stabilität von Moll-Releases, Migration bei Major.

2) Grundlagen: Design-Token (Stiftung)

Beispiel für eine Struktur (JSON/YAML-Quelle → Build in CSS-Variablen/Android/iOS):
json
{
"color": {
"text": { "default": "{palette. neutral. 900}", "muted": "{palette. neutral. 600}", "inverse": "{palette. neutral. 0}" },
"surface": { "default": "{palette. neutral. 0}", "elevated": "{palette. neutral. 50}", "brand": "{palette. brand. 50}" },
"accent": { "primary": "{palette. brand. 600}", "success": "{palette. green. 600}", "warning": "{palette. amber. 600}", "error": "{palette. red. 600}" }
},
"space": { "xs": 4, "sm": 8, "md": 12, "lg": 16, "xl": 24 },
"radius": { "sm": 8, "md": 12, "lg": 16, "full": 999 },
"elevation": { "0": "none", "1": "0 1px 2px rgba(0,0,0,.08)", "2": "0 4px 12px rgba(0,0,0,.12)" },
"motion": { "fast": "120ms", "base": "200ms" },
"opacity": { "disabled": 0. 45, "muted": 0. 7 }
}

Regeln: Semantische Token (z.B. 'color. accent. success') von den Komponenten verwendet werden; Die Palette ist intern.

3) Bauteilkategorien

1. Базовые (Primitives): Button, Icon, Typography, Link, Badge, Divider, Avatar.
2. Формы: Input, PasswordInput, NumberInput, Select, Combobox, DatePicker, Checkbox, Radio, Switch, Slider, Textarea, FileUpload.
3. Navigation: AppBar, Tabs, Breadcrumbs, Pagination, Drawer/Sidebar, Stepper.
4. Фидбек: Alert, InlineError, Tooltip, Toast, Snackbar, Modal, Popover, Skeleton, Progress, StatusDot.
5. Daten und Tabellen: Table, DataList, Card, Akkordeon, Tag, EmptyState.

6. iGaming-Spezifität:
  • GameTile (Spielkarte)
  • ProviderBadge
  • JackpotTicker
  • LiveBadge (Live-Tisch/Show)
  • LobbyFilters (Anbieter/Genre/Limit)
  • BonusBanner / BonusCard
  • MissionProgress / AchievementBadge
  • TournamentLeaderboard
  • WalletCard / BalanceWidget
  • PaymentMethodCard
  • DepositForm / WithdrawalForm
  • KYCStatusBadge / KYCChecklist
  • ResponsibleGamingBanner / LimitsControl
  • AgeGate / SessionTimer / RiskAlert
  • SystemStatus / MaintenanceBanner

4) Komponentenseite: Pflichtinhalt

Zweck und wann zu verwenden/nicht zu verwenden.
Zusammensetzung und Optionen. Größen, Zustände, Modifikatoren.
API. Props, Ereignisse, Slots, kontrollierte/unkontrollierte Modi.
A11y. Rollen, Fokus, Aria-Verbindungen, Live-Regionen.
i18n. Längen, Formate, lokalisierbare Signaturen.
Microcopy. Empfohlene Texte (CTA, Hinweise, Fehler).
Beispiele für Code. Typische Fälle, Edge-Fälle (Fehler, Download, leer).
Tests. Matrix visuell/Einheit/Interaktion/A11y.
Anti-Beispiele. Häufige Nutzungsfehler.

5) Schlüsselkomponenten: schnelle Spezifikationen

5. 1 Button

Optionen: „primary | secondary | ghost | destructive“ Abmessungen: „sm | md | lg“

Zustände: normal, hover, focus-visible, aktiv, loading, disabled

A11y: sichtbarer Fokusring, 'aria-busy' bei 'loading', 'aria-pressed' für toggle

Microcopy: Aktion + Objekt („Änderungen speichern“, „Verifizierung bestehen“)

Anti-Beispiel: „OK“

5. 2 Input / Field

Inhaltsstoffe: Label, field, helper, error, prefix/suffix

A11y: `aria-invalid`, `aria-describedby`, связка `for/id`

Fehlermuster: Was ist falsch + wie zu beheben („Geben Sie die Nummer im Format + 380“...)

Slots: 'prefix' (Symbol), 'suffix' (Schaltfläche' Passwort anzeigen')

5. 3 Select / Combobox

Features: Listensuche, Tastatur, lange Listen virtualisieren

A11y: `role="combobox"`, `aria-expanded`, `aria-activedescendant`

Leere Ergebnisse: "Nichts gefunden. Ändern Sie die Abfrage"

5. 4 Modal / Drawer

Regeln: Trap-Fokus, Abschluss nach ESC/Overlay, Fokus zurück zum Initiator

Verwendung: Zahlungsbestätigungen, Bonusregeln, KYC-Schritte

5. 5 Toast / Snackbar

Zeit: 2-4 s, keine Durchflusssperre

Live-Regionen: 'aria-live =' polite' für Erfolge, 'assertive' für Fehler

Beispiele: "Zahlung akzeptiert. Die Bilanz wurde aktualisiert"

5. 6 EmptyState

Vorlage: Kontext + Wert + CTA + sekundäre CTA

Beispiel: "Hier werden ausgewählte Spiele angezeigt, wenn Sie das erste hinzufügen. [Favoriten hinzufügen"

6) iGaming-Komponenten: Spezifität und API

6. 1 GameTile

Zweck: Spielkarte in der Lobby/Katalog.
Zusammensetzung: Cover, Anbieter, Tags (Neu/Heiß/Jackpot/Live), RTP (opz.) , schnelles Handeln.

API (Beispiel):
ts
<GameTile title="Lightning Roulette"
provider="Evolution"
tags={["Live","Popular"]}
isJackpot={true}
onPlay={...}
onFavToggle={...}
/>

Zustände: hover (Schnellstart), Skelett, nicht verfügbar (Region/Zeit).
A11y: Alt-Text, Tastaturstart, 'aria-label = „Lightning Roulette spielen“.

6. 2 LobbyFilters

Zweck: Lobby-Filter (Genre, Anbieter, Limits, Volatilität).
Fichy: gespeicherte Voreinstellungen, Filter zurücksetzen, Ergebniszähler.
Microcopy: „Filter“, „Filter zurücksetzen“, „Gefunden: 128“.

6. 3 BonusBanner / BonusCard

Optionen: Begrüßung, Reload, Cashback, Freispiele, Turnier.
Felder: Titel, Bedingungen, Gültigkeit, CTA („Bonus aktivieren“).
A11y: Verweise auf Bedingungen sind lesbar, 'aria-describedby' → Details der Bedingungen.
Anti-Muster: Die wichtigsten Einschränkungen ausblenden.

6. 4 JackpotTicker

Zweck: Laufender Jackpot-Betrag mit Auto-Update.
API: Datenquelle, Aktualisierungszeitraum, Währungsformat.
A11y: 'role =' status', nicht stören die Lesbarkeit des screenrider.

6. 5 TournamentLeaderboard

Zusammensetzung: Positionstabelle, Punkte, Preise, Timer, eigene Position.
Fichi: Paginierung/Virtualisierung, Festigung der eigenen Linie.
A11y: 'th '/' scope', lesbare Spalten, Navigation mit Pfeilen.

6. 6 WalletCard / BalanceWidget

Felder: Guthaben, Sperrgelder, Bonusguthaben, Währung.
Aktionen: „Auffüllen“, „Zurückziehen“, „Verlauf“.
Sicherheit: Betrag ausblenden/anzeigen, Maskierung in öffentlichen Bereichen.

6. 7 PaymentMethodCard

Felder: Anbieterlogo, Limits, Provisionen, ETA, regionale Verfügbarkeit.
Status: nicht verfügbar (Region/Status), in Bearbeitung, Warnung vor Limits.
Microcopy: „1,5% Provision wird vom Anbieter einbehalten“, „Auszahlung - bis zu 15 Minuten“.

6. 8 DepositForm / WithdrawalForm

Muster: Inline-Validierung, Summenlimits, gleiche Methodenregel durch Hinweise.
A11y: Deklaration von Fehlern („assertive“), Übersetzung des Fokus auf den ersten Fehler.
Servicefelder: „Geldquelle“, „Zuordnung“, falls AML erforderlich.

6. 9 KYCStatusBadge / KYCChecklist

Staaten: „none | basic | extended | rejected | pending“.
Texte: „Es dauert ~ 2 Minuten“, „Foto ohne Blendung, sichtbare Ecken und Text“.
CTA: "Verifizierung bestehen", sekundär: "Warum ist das wichtig? ».

6. 10 LimitsControl / ResponsibleGamingBanner

Zweck: Einzahlungs-/Wett-/Zeitlimits, Pausen, Selbstausschluss.
A11u/Ton: neutral, ohne Druck, mit Bezug auf die Hilfe.

7) Layoutmuster (Rezepte)

Anmeldung/CUS: Stepper + Form + InlineError + PageAlert + SuccessToast.
Депозит: PaymentMethodCard + AmountInput + LimitsHint + ConfirmModal + StatusToast.
Лобби: SearchBar + LobbyFilters + GameGrid (из GameTile) + Pagination + EmptyState.
Турнир: TournamentLeaderboard + MissionProgress + BonusBanner.
Verantwortungsvolles Spielen: ResponsibleGamingBanner + LimitsControl + FAQ-Link.

8) Accessibility (A11y)

Der sichtbare Fokus ist immer (auch im dunklen Thema).
Navigieren Sie mit der Tastatur durch alle interaktiven Elemente.
„aria-live =“ polite/assertive „“ für Toast/Status.
Die Kontraste sind nicht niedriger als WCAG 2. 1 AA.
Der Text in den Icons ist nicht der einzige Bedeutungsträger.
RTL-Modi, 320-px-Check und laut lesbar.

9) Lokalisierung und Formate

Alle benutzerdefinierten Zeichenfolgen sind über i18n-Schlüssel.

Beispiel für Schlüssel:

ui. button. save = Save wallet. deposit. success = Payment accepted. Balance updated.
kyc. photo. hint = Photo without glare, corners and text are visible.
filters. reset = Reset filters

Datums-/Währungsformatierung - Dienstprogramme, nicht Zeichenfolgen.
Der Ton in den Sprachen ist durch tone-map (neutral/unterstützend/offiziell).

10) Leistung und Qualität

Virtualisierung von Listen (Spiele, Tabellen).
Faules Laden von Illustrationen, Code-Spliting durch Seiten.
Bundle-Größen: Budget für UI-Paket, keine schweren Abhängigkeiten.
Skeleton für Geschwindigkeitswahrnehmung, Spinner minimal.
Tests: Einheit, visuelle Schnappschüsse, Interaktion, A11y, E2E für kritische Flows.

11) Versionierung und Freigaben

SemVer: patch - Fehler; minor - zerstörungsfrei; major - mit Migrationen.
Release Notes: Token/API/Verhalten, Vorher/Nachher Screenshots.
Deprecations: Markierungen im Dock, Codemoden und Linterregeln.
Storybook/Playground: Live-Beispiele, Barrierefreiheit-Panel, RTL-Toggle.

12) Mitwirken (Input)

RFC auf die neue Komponente: das Problem → die Varianten → die gewählte Lösung → A11y → i18n → API → die Risiken.
PR-Checkliste: Doc, Story, Tests, visuelle Schnappschüsse, Kontraste, i18n, dark/RTL.
Definition of Done: Komponente + Dokumentation + Tests + Musterbeispiele.

13) MVP-Rekrutierung und Roadmap

MVP (erste Lieferung):
  • Button, Input, Select, Checkbox, Radio, Switch, Modal, Toast, Tooltip, Progress, Skeleton, Card, EmptyState, Tabs, Pagination, Breadcrumbs, Table, GameTile, LobbyFilters, BonusBanner, WalletCard, PaymentMethodCard, DepositForm, KYCStatusBadge.

Далее: TournamentLeaderboard, JackpotTicker, MissionProgress, LimitsControl, SystemStatus, Drawer/Sidebar, DatePicker, Combobox, FileUpload.

14) Beispiele für Mikrokopie (fertige Einsätze)

CTA: „Änderungen speichern“, „Verifizierung bestehen“, „Zahlungsmethode hinzufügen“.

Fehler: "Ungültiges Datumsformat. Verwenden Sie DD. MM. JJJJ. ", "Die Datei ist zu groß (max. 10 MB)"

Erfolg: "Die Zahlung wurde akzeptiert. Die Bilanz wurde aktualisiert. „, „Fertig! Die Unterlagen sind geprüft"

Leere Zustände: "Durch "{query}" wurde nichts gefunden. Setzen Sie die Filter zurück oder verfeinern Sie die Abfrage"

15) Anti-Muster

Geschäftslogik innerhalb der UI-Komponenten (bricht die Wiederverwendbarkeit).
Unsichtbarer Fokus oder Bedeutungsabhängigkeit nur von Farbe.
In den Komponentencode eingenähte Zeichenfolgen (ohne i18n).
Semantikverletzung (Button auf 'div', Listen ohne' ul/ol/li').
Varianten ohne klare Regeln (Reproduktion 'ButtonPrimaryBlueBig2').

16) Checklisten

Komponente vor Release:
  • Zweck, Varianten, APIs werden beschrieben.
  • A11y: Rolle, Fokus, Aria-Attribute, Kontrast.
  • i18n: Alle Zeilen werden herausgenommen, lange Sprachen und RTL geprüft.
  • Story/Demo: normal, Download, Fehler, leer.
  • Tests: Einheit + visuell + Interaktion + A11y.
  • Keine Geschäftslogik, nur Benutzeroberfläche/Verhalten.
Muster (Komposition):
  • Es gibt ein Schema der Komponenten und die Reihenfolge des Fokus.
  • Microcopy und Fehler-/Erfolgstexte sind definiert.
  • Die Schlüsselmetriken (Step Conversion, Error Rate, Time-to-Complete) wurden gemessen.

17) Dokumentenskelett für Bauteil (Vorlage)

Titel und Zweck

Wann zu verwenden/nicht zu verwenden

Varianten und Zustände

API (Props, Events, Slots)

Zugänglichkeit (Rolle, Tastatur, Aria, Kontrast)

i18n (Schlüssel, Formate, Längen, RTL)

Microcopy (Beispiele)

Codebeispiele (Typical und Edge)

Test-Matrix

Anti-Beispiele

Summe

Gamble Hub UI ist nicht nur eine Sammlung von Blöcken, sondern eine Disziplin: Token → Komponenten → Muster → Dokumentation → Metriken. Im Anschluss an diese Hyde liefern Teams Fichies schneller, Benutzer erhalten eine vorhersehbare und zugängliche Schnittstelle und das Produkt skaliert ohne visuelle Verpflichtung. Bei Bedarf werde ich die ersten Seiten des Docks durch das MVP-Set mit Beispielen und i18n-Schlüsseln sammeln.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.