GH GambleHub

Yagona interfeys tili

1) Yagona interfeys tili nima va nima uchun kerak

Yagona interfeys tili (YEI) - bu tushunchalar, vizual qoidalar va o’zaro munosabatlarning umumiy tizimi bo’lib, uni dizaynerlar, muhandislar, tahlilchilar va kontent mualliflari baham ko’rishadi.

Maqsadlar:
  • Muvofiqlik: turli mahsulotlar va jamoalarda bir xil komponentlar va atamalar.
  • Tezlik: tez yig’ilish, kamroq xolivarlar, tezroq onbording.
  • Sifati: UX konsistent patternlari, «andoza» foydalanish imkoniyati.
  • Miqyoslanishi: «UI hayvonot bog’i» ga parchalanmasdan xavfsiz evolyutsiya.

2) Yagona til qatlamlari

1. Tokenlar (rangi, bosmaxonasi, o’lchamlari, soyalari, chekinishlari, radiuslari, animatsiyalari).
2. Komponentlar (tugmalar, kirish maydonlari, jadvallar, grafiklar, modallar, tostlar, tablar).
3. Patternlar (shakllar, validatsiya, bosqichma-bosqich ustalar, ro’yxatlar/jadvallar, bildirishnomalar).
4. Kontent (mikrokopirayting, terminologiya, xato xabarlari).
5. Ikonografiya va illyustratsiyalar (oilasi, uslubi, o’lchamlari va chiziqlari).
6. Foydalanish imkoniyati va i18n/RTL (A11y qoidalari, tarjima qilish qobiliyati, lokallar).
7. Jarayonlar (versiyalar, gaydraillar, revyu, linterlar, vitrinalar va misollar).

3) Dizayn-tokenlar (ifodalilik asosi)

Tokenlar - bu barcha mahsulotlarda qayta ishlatiladigan qiymatlar.

3. 1 Tokenlar tuzilishi (misol)

json
{
"color": {
"bg": { "base": "#FFFFFF", "subtle": "#F7F8FA" },
"fg": { "primary": "#11131A", "muted": "#656D76" },
"accent": { "primary": "#2F6BFF", "warning": "#FF9F1A", "critical": "#E53935", "success": "#2EAE60" }
},
"space": { "xs": 4, "sm": 8, "md": 12, "lg": 16, "xl": 24, "2xl": 32 },
"radius": { "sm": 8, "md": 12, "lg": 16, "pill": 1000 },
"shadow": { "sm": "0 1px 2px rgba(0,0,0,.08)", "md": "0 4px 12px rgba(0,0,0,.10)" },
"font": { "family": "Inter, system-ui", "size": { "sm": 12, "md": 14, "lg": 16, "xl": 20 } },
"motion": { "duration": { "fast": 120, "base": 200, "slow": 320 }, "curve": { "inout": "ease-in-out" } }
}

3. 2 Neyming tokenlari

Umumiy va xususiy:’color. accent. primary`, не `primaryBlue`.
Neymingdagi brendga bog’lanmasdan (brend - bu mavzu, tokenning nomi emas).
Gradatsiyalar:’fg. muted`, `fg. primary`, `fg. inverse`. Tizimsiz nomdagi yorqinlikni (’blue500’) kodlamang.

3. 3 Mavzu tokenlari

Yorqin, qorong’u, qarama-qarshi: nomlarni emas, balki qiymatlarni o’zgartirish.
Mavzular - qayta aniqlash qatlami, UI konsistent boʻlib qolmoqda.

4) Komponentlar: kontrakt, holatlar, foydalanish imkoniyati

Komponent = vizual + xulq-atvor + props shartnomasi + A11y.

4. 1 Tugma kontraktining namunasi

ts type ButtonProps = {
kind: "primary"      "secondary"      "tertiary"      "danger";
size: "sm"      "md"      "lg";
icon?: "plus"      "download"      "trash";
disabled?: boolean;
loading?: boolean;
ariaLabel?: string;
onClick?: (e: MouseEvent) => void;
};

Holatlar:’default/hover/active/focus/disabled/loading’.
Foydalanish imkoniyati: fokus halqa, target o’lchamlari ≥ 40-48 px, toggle uchun’aria-pressed’.

4. 2 Komponentlar kafolatlari

Barqaror oʻlchamlar (line-height, paddings).
Qutidan foydalanish imkoniyati (roley/aria, klaviatura, kontrast).
Invariantlar: maydon ichidagi xato har doim pastda va’aria-describedby’bilan.

5) UX patternlari (takrorlanadigan mantiq)

Shakllar: chap/yuqoridagi yorliq, placeholder ≠ label, xatolar + sarlavhasi, kirish niqoblari va maslahatlar.
Modalkalar: bitta asosiy CTA,’Esc’yopadi, fokus tuzog’i, fokus qaytishi.
Jadvallar/roʻyxatlar: saralash, sticky-sarlavha, sahifalik, eksport.
Filterlar: «Qoʻllash» tugmasi, qayta tiklash, saqlangan presetlar.
Ogohlantirishlar: tost ≤ 3-5 s, fokusdagi pauza,’role =’status/alert’.
Dashbordlar: top insights → kontekst → grafiklar → CTA.

6) Yagona terminologiya va mikrokopirayting

6. 1-lugʻat

Biznes va UX atamalarining yagona lugʻatini yuriting. Har bir interfeys maqola unga murojaat qiladi.
Dubletlar uchun - bitta so’zni tanlash («hamyon» vs «balans»), ikkinchisi - qidiruvda sinonim sifatida.

6. 2. Matnning qoidalari

Qisqa va ish bo’yicha; jargondan qochish.
Xatolar - nima qilish kerakligini tushuntirish uchun: «Sanani GGGG-MM-DD formatida ko’rsating».
Sarlavhalar - otlar; tugmalar - feʼllar («Saqlash», «Bekor qilish»).
Konsistent birliklar: UTC yoki lokallardagi sana/vaqt, kod bilan valyutalar (EUR, USD).

7) Ikonografiya va rasmlar

Oila izomorf: bitta burchak, chiziq qalinligi, 24 × 24 panjara.
Maqomi va semantikasi: rangi - ikkilamchi; shakl/ikonka + matn - birlamchi.
Kattalashtirish: piktogrammalar turli zichliklarda «suzmaydi» (1 ×/2 ×/3 ×).

8) Foydalanish imkoniyati (A11y) va mahalliylashtirish (i18n/RTL)

Komponentlar WCAG AA: kontrast, klaviatura navigatsiyasi, fokus,’prefers-reduced-motion’dan o’tadi.
Tarjima qilinayotgan satrlar - resurslarda, kodda emas. Pleysholderlar va sonlar/sanalar formati - lokalizatsiya qilinadi.
RTL: ikonkalarni oynalash, Tab tartibi, klaviatura mantig’i.

9) Sanalar, sanalar, valyutalar va formatlar

Sana/vaqt: ISO-8601, haqiqiy vaqt nuqtasi - UTC; foydalanuvchi uchun - lokal.
Valyuta: minor units/o’nlik satrlar; doimo kodni ko’rsatish (masalan, "€12,34" yoki "12. 34 EUR" - lokal bo’yicha).
Foizlar: «12,3%» va «+ 1,2 p.p.» bandlari aniq farqlansin.
Yaxlitlash: muhim razryadgacha; Katta sonlar uchun «k/m».

10) Governans: rollar, artefaktlar, kanallar

Design Language Council (DLC): token/komponent egalari, deydi RFC.

Artefaktlar:
  • Komponent kutubxonasi (Figma/kod) + namunalar bilan jonli katalog.
  • Hujjatlar: gaydraillar, patternlar, A11y, kontent-gidlar.
  • Cheynjlog (added/changed/deprecated/removed/fixed).
  • Kanallar: haftalik dizayn-sink, Slack-kanal, joriy etish shoukeyslari.

11) Versiyalash va evolyutsiya

Komponentlar paketi uchun SemVer:’MAJOR. MINOR. PATCH`.
MINOR - qo’shimcha: yangi tokenlar, defoltli propslar, yangi komponentlar.
MAJOR - breaking: propslarni olib tashlash, semantikani oʻzgartirish → migratsiya gaydalari.
Deprekatsiya: ogohlantirishlar, 90 kunga ≥ darcha, mos keladigan bayroqlar.

12) Linterlar va avtomatik tekshirishlar

UI-linter: tokenlardan tashqari taqiqlangan ranglar, anti-patternlar (div tugmasi, o’chirilgan outline).
A11y-tekshirish: kontrast, rollar/aria, fokus, klaviatura.
i18n-linter: koddagi "qattiq" satrlar, noto’g "ri pleysholderlar.
Skrinshot-testlar: komponentlarning vizual regressiyasi.
API vizualizatsiya shartnomalari (agar mavjud bo’lsa): ma’lumotlar turlari, diapazonlar, imzolar.

13) Komponentlar vitrini (storybook/qum qutisi)

Props nazorati, kod, holatlar, A11y-cheker bilan jonli misollar.
«Retseptlar»: ro’yxatdan o’tish shakli, 3 qadam ustasi, jadval + filtrlar, modalka + tostlar.
«Qum qutisi»: til/formatlarni almashtirish/RTL.

14) Neyming va tuzilma shablonlari

14. 1 Komponentlar (VEM/semantika, CSS misoli)


.btn/basic/
.btn--primary/view/
.btn--danger
.btn--lg/size/
.btn __ icon/part/

Kodda bir xil props nomlari mavjud:’size’,’kind’,’disabled’,’onClick’.

14. 2 Kutubxonaning fayl tuzilishi


/tokens
/components
/button
/input
/modal
/patterns
/docs
/changelog

15) Anti-patternlar

Tokenlardan tashqari «Erkin» ranglar/cheklovlar.
Komponentlar: «ButtonV2», «PrimaryButtonNew».
Pleysholder maydonning yagona belgisi sifatida.
Outline va «div-tugmalar» ni oʻchirish.
Oldindan aytib boʻlmaydigan hover/active/disabled.
Oddiy tarjima o’rniga transliteratsiya qilingan atamalar.
Yangilanishda migratsiya gaydalarining yo’qligi.

16) Yagona til sifati metrikasi

Coverage: komponent kutubxonasidan foydalanuvchi ekranlar ulushi.
Consistency Index: tokenlardan qayta foydalanish vs «qoʻl» uslublari.
A11y Pass Rate: WCAG AA orqali oʻtadigan komponentlar foizi.
Defect Escape: 1k kommitdagi UI/kontent nuqsonlari.
Time-to-Ship: namunaviy ekranni DLSdan oldin/keyin amalga oshirish vaqti.
Adoption: DAU oynalari, komponent/pattern bilan PR soni.

17) Ekranning chek-varaqasi

  • «Qattiq» qiymatlar emas, balki tokenlar (rang/cheklovlar/radiuslar) ishlatilgan.
  • Kutubxonadagi komponentlar; kasta - faqat RFCda.
  • Foydalanish imkoniyati: klaviatura/fokus/kontrast/roley/aria.
  • Birliklar: sanalar/valyutalar/foizlar - gaydu formatlari bo’yicha.
  • Mikroplar: tugmalar = feʼllar, xatolar = tuzatish uchun harakat.
  • Lokallar/RTL sxemani buzmaydi.
  • Holatlar: loading/empty/error.
  • Vizual regressiya testlari yangilandi.

18) Joriy etish rejasi (3 ta iteratsiya)

Iteratsiya 1 - Poydevor (2-3 hafta)

Tokenlar (rang/bosmaxona/spacing/motion), bazaviy komponentlar (Button, Input, Select, Tooltip, Modal), kontent-gidlar (ton, yorliqlar, xatolar).
Vitrin (storybook) va A11y-cheker, tokenlar linteri.

Iteratsiya 2 - Patternlar va mahalliylashtirish (3-4 hafta)

Shakllar/jadvallar/filtrlar patternlari, ikonpak 24 × 24, RTL/i18n-qum qutisi, son/sana/valyuta qoidalari.
SemVer, cheynjlog, RFC/migratsiya jarayoni, avtotestlar (vizual + A11y).

Iteratsiya 3 - Masshtab va evolyutsiya (uzluksiz)

Kompozitsion komponentlar (Wizard, DataGrid, Chart primitives), temizlash (och/qorong’u/kontrast), sifat metrikasi bo’yicha hisobotlar, muntazam UX-auditlar.

19) Mini-FAQ

«Hamma narsa birdaniga» kerakmi?
Yo’q. Tokenlar va asosiy komponentlardan boshlang, so’ngra pattern va jarayonlarni qo’shing.

Jamoalarni YEIdan foydalanishga qanday ishontirish mumkin?
Yutuqni ko’rsating: tezlik, kam nuqsonlar, tayyor ekran retseptlari va «qutidan» A11y.

Legacy ekranlar bilan nima qilish kerak?
Migratsiya rejasi, tokenlar orqali ko’prik uslublari, ustuvor ekranlar birinchi o’rinda turadi.

Jami

Yagona interfeys tili nafaqat komponentlar kutubxonasi. Bu qoidalar va jarayonlar tizimi bo’lib, unda tokenlar ifodalilik, komponentlar - xulq-atvor va qulaylik, patternlar - yechimlarning takrorlanuvchanligi, governans va metriklar - barqaror evolyutsiyani belgilaydi. Tilingizni aniq, tekshiriladigan va kengaytiriladigan qilib qoʻying - mahsulotlaringiz bir xilda, tez va ishonchli koʻrinadi va ishlaydi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Telegram
@Gamble_GC
Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.