PDP UI/UX qo‘llanma · v0.7

Rasmiy brend

PDP Veb-sayt

Veb-sayt, landing va veb interfeys uchun komponentlar: tugmalar, formalar, kartalar, menyular, grafiklar, holatlar, sahifa anatomiyasi va interfeys naqshlari. Ranglar, shrift va tokenlar — «Yadro» to‘plamidan.

Matn va raqam harakati

Matn harakati — diqqatni bitta joyga yig‘ish uchun

KPI raqami sanaladi, e’lon chipi yaltiraydi, hero sarlavhasi xiralikdan ochiladi, so‘z almashadi, AI javobi yozilib boradi, fikrlar tasmasi o‘tadi. Har effekt bir marta yoki sekin siklda; ma’no harakatsiz ham to‘liq o‘qiladi. G‘oya — Magic UI va Aceternity UI.

Effektlar va ulanishlar

Ko‘rinadigan ulanish va chiziqsiz hoshiya

Tizim qismlari qanday bog‘langanini ko‘rsatadigan jonli nurlar va orbita, tanlangan tarif uchun yorug‘lik hoshiyasi, kursorga ergashadigan yorug‘lik va banner yaltirashi. PDP qoidasiga ko‘ra kartaning atrofida chiziq yo‘q: hoshiya — orqadagi xira yorug‘lik, yorug‘lik — karta fonining o‘zida. G‘oya — Magic UI va Aceternity UI.

Fon naqshlari

Fon — sahna, mazmun emas: nuqta, katak va to‘r

Hero, bo‘sh holat, kirish ekrani va promo band uchun tinch fonlar. Uchtasi statik (CSS gradient — rasm yo‘q, og‘irligi nol), uchtasi jonli: miltillovchi to‘r, kataklar va retro to‘r. G‘oya — Magic UI va Aceternity UI; ranglar — faol brend tokenlaridan: qora maydon, brend rangi va aksent.

Jonli fonlar

Qora maydon, brend rangi va aksent — harakatda

Promo band, hero, tadbir e’loni va kirish ekrani uchun beshta jonli fon: aurora, to‘lqin, meteorlar, nurlar va zarrachalar. Hammasi CSS yoki kichik canvas (kutubxonasiz), brend ranglarida va matn uchun markazi bo‘sh. G‘oya — Aceternity UI va Magic UI.

Aurora foni

Aurora — EcoSystem’ning yorug‘ foni

DS banneri, taqdimot muqovasi va hero uchun tasdiqlangan fon: oqib o‘tuvchi xira ranglar va belgi atrofida oq maydon. Brendga qotirilgan — faqat Light: sahifa Dark rejimga o‘tsa ham, aurora yorug‘ qoladi; Dark versiya yo‘q.

Tugmalar

Bitta ekran — bitta asosiy harakat

Tugma — foydalanuvchi bajaradigan harakat. Vazifasini rang aytadi: asosiy, aksent, ikkinchi va uchinchi darajali, havola va xavfli; ekranda asosiy tugma bitta bo‘ladi. Variantlar, o‘lchamlar va holatlar — Untitled UI asosida; ko‘rinishi — dizayner taklifi (Rahimjon Gaziyev, 29.09.2026): pill, matn shrifti, soya yo‘q; chegara faqat outline’da. Maketda loading, bosilgan holat, havola ko‘rinishi va 44/48 px o‘lchamlar yo‘q edi — ular shu uslubda davom ettirilgan. Ranglar — faol brend tokenlaridan: bir xil klass har brendda o‘z rangini oladi.

O‘n uch variant, bitta primary

oddiy harakat

Primary.eco-btn--primary

Ekrandagi yagona asosiy harakat: yozilish, to‘lash, davom etish.

Secondary.eco-btn--secondary

Yakka muqobil harakat: filtrlash, nusxalash, sahifalash. Neytral fon, brend rangidagi matn. Rangli tugma (primary, accent, ink) yoniga qo‘yilmaydi — u yerda tertiary yoki outline.

Tertiary.eco-btn--tertiary

Rangli primary yonidagi ikkinchi harakat: batafsil, bekor qilish, keyinroq; toolbar va jadval qatori ham. Neytral fon, asosiy matn.

Accent.eco-btn--accent

Brend aksenti: aksiya, tadbir — alohida joydagi CTA. Primary o‘rnini olmaydi va uning yoniga qo‘yilmaydi.

Ink.eco-btn--ink

Brend siyohi (qora; Junior — brendning to‘q rangi): rangli fon yoki surat ustidagi tinch CTA.

Outline.eco-btn--outline

Fonsiz, 1 px neytral chegara: band yoki rangli fonda primary yonidagi ikkinchi harakat; toolbar, filtr.

Ghost.eco-btn--ghost

Fonsiz, hover’da neytral fon: menyu, qator ichidagi yengil harakat.

Link color.eco-btn--link-color

Matn yonidagi yengil harakat: “Kodni qayta yuborish”, “Barchasini ko‘rish”.

Link gray.eco-btn--link-gray

Eng past daraja, e’tiborni tortmaydi: “O‘tkazib yuborish”, izoh ostidagi amal.

xavfli harakat · destructive

Primary destructive.eco-btn--primary-destructive

Qaytarib bo‘lmaydigan harakat. Faqat tasdiqlash oynasi ichida — u yerda u yagona primary.

Secondary destructive.eco-btn--secondary-destructive

Xavfli harakatni boshlaydi, keyin tasdiqlash oynasi ochiladi: sozlamalardagi “Akkauntni o‘chirish”.

Tertiary destructive.eco-btn--tertiary-destructive

Ro‘yxat va jadval qatoridagi xavfli harakat: “O‘chirish”, “Guruhdan chiqarish”.

Link destructive.eco-btn--link-destructive

Matn ichidagi xavfli harakat: “Obunani bekor qilish”.

Harakatni fe’l bilan ayting: bosganda nima bo‘lishi aniq. Yonida — neytral fonli tertiary.
Band yoki rangli fonda ikkinchi harakat — outline: fonsiz, 1 px neytral chegara.
1 taPrimary ekranda bitta. Dialog, karta va forma ichida ham bitta.
1 rangRangli tugma yonida — faqat rangsiz: tertiary yoki outline. Ikki rangli tugma yonma-yon turmaydi.
1–3 so‘zIzoh tugmaga emas, uning ustidagi matnga yoziladi.
AaFaqat birinchi harf katta: “Kursga yozilish”, “KURSGA YOZILISH” emas.
<a> · <button>Sahifaga olib borsa — havola, amal bajarsa — tugma. Ko‘rinishi bir xil bo‘lishi mumkin.

O‘lcham joyga qarab tanlanadi

Light
xs · 32 pxFaqat zich UI: jadval qatori, filtr, toolbar — qo‘shni tugmadan kamida 8 px
sm · 36 pxIxcham joy: karta, yon panel, jadval sarlavhasi, dialog tugmalari (bosish maydoni 40)
md · 40 px · standartStandart va eng kichik bosish maydoni: forma, shapka
lg · 44 pxMobildagi asosiy harakat, formani yuborish, bottom sheet
xl · 48 pxHero va landing CTA, mobil pastki panel
Dark
xs · 32 pxFaqat zich UI: jadval qatori, filtr, toolbar — qo‘shni tugmadan kamida 8 px
sm · 36 pxIxcham joy: karta, yon panel, jadval sarlavhasi, dialog tugmalari (bosish maydoni 40)
md · 40 px · standartStandart va eng kichik bosish maydoni: forma, shapka
lg · 44 pxMobildagi asosiy harakat, formani yuborish, bottom sheet
xl · 48 pxHero va landing CTA, mobil pastki panel

Bosish maydoni kamida 40 px (md) bo‘lsin; mobilda asosiy amal uchun lg (44 px) oling. xs (32 px) va sm (36 px) faqat zich joyda yoki dialog harakatlarida (sm, ::before bilan bosish maydoni 40) va qo‘shni tugmalardan kamida 8 px oraliq bilan — batafsil Foydalanish qulayligi bo‘limida.

Holatlar

Variantdefaulthoverfocus-visibledisabledloading
primary
secondary
tertiary
accent
ink
outline
ghost
primary-destructive
secondary-destructive
  • Hover — rangli variantlar (primary, accent, ink) foni o‘z matni rangiga 12 % yaqinlashadi (kitdagi formula); secondary va tertiary neytral foni bir pog‘ona to‘qlashadi, secondary matni ham bir pog‘ona; outline va ghost neytral fon oladi; primary-destructive — --eco-bg-error-solid_hover.
  • Focus — faqat klaviaturada: hover foni va 2 px chiziq --eco-focus-ring, 2 px oraliq; destructive variantlarda chiziq --eco-focus-ring-error rangida.
  • Loading — kenglik saqlanadi, matn o‘rnida yuklanish belgisi (6 nuqta, tugma matni rangida), qayta bosilmaydi; tugmada aria-busy turadi.
  • Disabled — 50 % shaffof. U sababini aytmaydi: formada tugmani faol qoldiring va bosilganda nima yetishmasligini ko‘rsating.
  • Bosilgan (active) holat — tugma 97,5 % gacha kichrayadi (havola ko‘rinishi va guruh ichidagi tugmalardan tashqari); fon hover rangida qoladi.

Ikonka, havola ko‘rinishi va to‘liq kenglik

Light ikonka + matn
Dark ikonka + matn
Light faqat ikonka · aria-label majburiy
Dark faqat ikonka · aria-label majburiy
Light havola ko‘rinishi · matn <span> ichida
Dark havola ko‘rinishi · matn <span> ichida
  • Ikonka 16 px (lg va xl da 20 px), matndan 8 px narida (xs da 4 px). Harakat ikonkasi — chapda (yuklab olish, qo‘shish), yo‘nalish ikonkasi — o‘ngda (keyingi qadam, tashqi havola).
  • Faqat ikonka — hammaga tanish belgilar uchun: yopish, menyu, qidiruv, bildirishnoma. Tugma kvadrat (--icon). Doim aria-label va hover’da tooltip.
  • Havola ko‘rinishida matnni <span> ichiga oling: hover’da faqat matn tagiga chiziladi, ikonka emas. Padding yo‘q, bosish maydoni 16–20 px — mobilda yakka harakat uchun tertiary oling.
  • Mobilda asosiy harakat to‘liq kenglikda (--block), ekranning pastki qismida — bosh barmoq yetadigan joyda.
mobil · .eco-btn--block
PDP EcoSystem
Qabul ochiq

Frontend dasturlash

8 oy · oflayn va onlayn · birinchi dars 05.10.2026

1 200 000 so‘m / oyiga

Tooltip — qo‘shimcha izoh

Light .eco-tooltip
Dark .eco-tooltip
  • Tooltip — qo‘shimcha. Faqat ikonkali tugmada ham aria-label majburiy: ekran o‘qigich nomni undan oladi. Tooltip nomni takrorlasa, unga aria-hidden qo‘ying; qo‘shimcha izoh bersa, uni aria-describedby orqali tugmaga bog‘lang.
  • Fon --eco-bg-primary-solid, nom — bitta qator, xs 600. Izoh kerak bo‘lsa — <small> ichida, 1–2 qator; kengligi 320 px gacha.
  • Hover va klaviatura fokusida chiqadi, Esc bilan yopiladi; kursor tooltip ustiga o‘tsa yo‘qolmaydi (WCAG 1.4.13).
  • Matnli tugmaga uni takrorlaydigan tooltip qo‘ymang. Muhim ma’lumotni ham yashirmang: mobilda hover yo‘q — narx, muddat va xato sahifada ko‘rinib tursin.

Guruh, joylashuv va rangli fon

Guruhdan chiqasizmi?

F-214 · Frontend dasturlash guruhidagi joyingiz navbatdagi talabaga beriladi.

Dialog — o‘nggaAsosiy harakat eng o‘ngda, “Bekor qilish” chapida, oraliq 8 px. Tor ekranda — ustma-ust, to‘liq kenglikda, sm balandlikda.
Forma — chapgaTugmalar maydonlar bilan bir chiziqda, asosiysi birinchi.

To‘lovni tasdiqlang1 200 000 so‘m · Payme

Mobil — ustma-ustTo‘liq kenglik, asosiysi tepada, oraliq 8 px.
Light
PDP EcoSystem

Kuzgi qabul ochildi

PDP EcoSystem

Ochiq eshiklar kuni

Dark
PDP EcoSystem

Kuzgi qabul ochildi

PDP EcoSystem

Ochiq eshiklar kuni

Brend maydonida tugma maydon siyohi rangida, fokus halqasi ham: yorug‘ rejimda #FFFFFF (2,74 : 1), qorong‘ida #141414 (15,32 : 1).

Kamalak tugma — hero va promo uchun

faqat EcoSystem · Magic UI Rainbow Button asosida
.eco-btn--rainbow · .eco-btn--rainbow-lightTugma tagida aylanib turuvchi kamalak nuri va pastki chetida shu gradient (EcoSystem, Academy, Online — qizil → limon → sariq → yashil → to‘q sariq, ko‘ksiz; School, University, Junior — asl sovuq kamalak; 3,6 s sikl). Chapda — oq sahna, o‘ngda — qora: kamalak nuri toza fonda yaxshi ko‘rinadi, shuning uchun rangli yoki naqshli fon ustiga qo‘yilmaydi (oq/qora sahna yoki tinch naqsh). Light’da qora va oq tugma, Dark’da teskari. Faqat hero, promo band yoki bitta asosiy CTA — ekranda bittadan ko‘p emas; formalar va jadvallarda oddiy .eco-btn--primary. «Harakatni kamaytirish» yoqilsa — gradient joyida turadi.
Kod
<a class="eco-btn eco-btn--lg eco-btn--rainbow" href="/kurslar">Kurslarni ko‘rish <svg>…</svg></a>
<a class="eco-btn eco-btn--lg eco-btn--rainbow-light" href="/shablonlar">Shablonlar <svg>…</svg></a>

Shisha tugmalar va yuzalar

Figma «Tezco» referensi · hubdagi AI maydoni va DS banneri bilan bitta retsept
Light
Kursni ko‘rishv0.7 · Beta
Bu hafta1 248faol talabaHisobot+12 % o‘tgan haftaga nisbatan
Dark
Kursni ko‘rishv0.7 · Beta
Bu hafta1 248faol talabaHisobot+12 % o‘tgan haftaga nisbatan
.eco-btn--glass · .eco-glassShaffof yuza: orqadagi fon 3 px xiralashadi va biroz yorishadi; soya yo‘q. Dark — qora 20 %, Light — oq 40 %. Yorug‘lik chap-tepadan tushadi: 1 px qirra chap-tepada yorqin, chetning o‘rtasida yo‘qoladi, o‘ng-pastda yana xira — bu qirra shishaning o‘zi, chiziq emas. Tugma — pill yoki ikonka (.eco-btn--icon, kvadrat — .eco-btn--square); yuza — beyj (.eco-glass--pill), belgi plitkasi (.eco-glass--tile) va kichik karta. Rejimga ergashadi; doim qora bannerda — .eco-glass--dark, doim oq fonda — .eco-glass--light.

Shisha — faqat rangli yoki harakatli fon ustida (banner, hero, Aurora); oddiy oq/kulrang fonda ishlatilmaydi — u yerda oddiy tugma. Tutash tugmalar guruhiga qo‘yilmaydi. Brauzer blur’ni bilmasa — to‘q (Light’da oq) zaxira fon; yuqori kontrast rejimida — tizim ranglari va chiziq.

HTML va CSS — shisha

Kod
<!-- rangli fon (banner, hero, .eco-cover, .eco-aurora) ichida -->
<a class="eco-btn eco-btn--lg eco-btn--glass" href="/kurslar"><svg>…</svg>Kursni ko‘rish</a>
<button class="eco-btn eco-btn--icon eco-btn--glass" aria-label="Nusxalash"><svg>…</svg></button>
<span class="eco-glass eco-glass--pill">v0.7</span>
<span class="eco-glass eco-glass--tile"><svg>…</svg></span>
<div class="eco-glass">…</div>
<!-- Light sahifadagi doim qora banner: .eco-glass--dark yoki bannerga data-theme="dark" -->

/* retsept — tokenlar (hamma brendda bir xil; Light qiymati izohda) */
--eco-glass-fill: color-mix(in srgb, var(--eco-color-black) 20%, transparent);   /* Light: --eco-color-white 40 % */
--eco-glass-backdrop: blur(3px) brightness(1.25);                               /* Light: brightness(1.06) */
--eco-glass-rim: linear-gradient(135deg, …);                                     /* 1 px qirra: yorqin → 30 % → yo‘q 50 % → 72 % → xira */
--eco-glass-ink, --eco-glass-fill-hover, --eco-glass-solid                       /* matn, hover, blur’siz zaxira */
.my-glass { background: var(--eco-glass-fill); -webkit-backdrop-filter: var(--eco-glass-backdrop); backdrop-filter: var(--eco-glass-backdrop); }

Tutash tugmalar guruhi

Light
asosiy harakat + menyu · .eco-btn-group
bir turdagi harakatlar · sm
to‘liq kenglik · .eco-btn-group--fill
Dark
asosiy harakat + menyu · .eco-btn-group
bir turdagi harakatlar · sm
to‘liq kenglik · .eco-btn-group--fill
  • Guruh — bitta mavzudagi 2–4 harakat: asosiy harakat va uning menyusi, bir turdagi amallar. Tanlov (bittasi tanlangan) uchun guruh emas — segment ishlatiladi.
  • Tugmalar oraliqsiz; tashqi burchak tugma o‘lchamiga qarab, ichkisi 0. Ajratgich — 1 px, tugma matni rangida 15 %. Variant va o‘lcham har tugmada bir xil bo‘lsin.
  • Konteynerga role="group" va aria-label; menyu ochadigan tugmaga aria-haspopup va aria-expanded — faqat menyu haqiqatan ochilsa. Har tugma Tab bilan alohida fokuslanadi.
  • Kenglik — mazmunga qarab yoki to‘liq (--fill, tugmalar teng); tor joyda — ustma-ust (--vertical).

Spetsifikatsiya

O‘lchamBalandlikPadding x · yFaqat ikonkaShriftIkonkaOraliqRadiusQachon
xs --xs32 px12 · 0 px32 × 32 · 0 pxMatn shrifti 500 · 14/2016 px4 px--eco-radius-4xl
24 px · pill (xs — 16 px)
Zich UI: jadval, filtr, toolbar
sm --sm36 px16 · 0 px36 × 36 · 0 pxMatn shrifti 500 · 14/2016 px8 pxDesktop: karta, yon panel, dialog
md · standart40 px16 · 0 px40 × 40 · 0 pxMatn shrifti 500 · 16/2416 px8 pxForma, shapka
lg --lg44 px20 · 0 px44 × 44 · 0 pxMatn shrifti 500 · 16/2420 px8 pxMobil asosiy harakat
xl --xl48 px24 · 0 px48 × 48 · 0 pxMatn shrifti 500 · 16/2420 px8 pxHero va landing CTA
XususiyatQiymat
ShaklPill: 24 px · --eco-radius-4xl (xs — 16 px · --eco-radius-2xl); havola ko‘rinishida 4 px (--eco-radius-xs) — faqat fokus chizig‘i uchun
BalandlikQat’iy: 32 · 36 · 40 · 44 · 48 px, vertikal padding yo‘q — matn markazda (alohida token yo‘q). Faqat ikonka — shu balandlikdagi kvadrat, padding 0 (--icon)
OraliqIkonka va matn orasida 8 px (--eco-spacing-md), xs da 4 px (--eco-spacing-xs)
Rangprimary — --eco-brand-button (EcoSystem: yorug‘da yashil, qorong‘ida limon), accent — --eco-brand-button-accent, ink — --eco-brand-button-ink; matn fonga mos siyohda, kontrast ≥ 4,5 : 1. Istisno: yashil tugmada (#00B533) oq matn — brend qarori (30.09.2026), kontrast 2,7 : 1. secondary — neytral fon, matn --eco-brand-button-secondary-fg (rangli tugma yoniga qo‘yilmaydi); tertiary, outline, ghost — asosiy matn --eco-text-primary. Neytral fon: yorug‘da --eco-color-surface #F5F5F5 (hover #E6E6E6), qorong‘ida --eco-color-neutral-900 #212121 (hover neutral-800; kulrang kartada bir pog‘ona och). primary-destructive — --eco-bg-error-solid, matn --eco-text-white
ChegaraFaqat outline — 1 px ichki chiziq: yorug‘da --eco-border-tertiary, qorong‘ida tertiary foni bilan bir xil neytral (--eco-color-neutral-900, Figma #1F1F1F; #141414 ustida ≈ 1,15 : 1 — dizayn tasdiqlagan). secondary-destructive — och xato foni --eco-bg-error-primary, matn --eco-text-error-primary
SoyaYo‘q — tugmalar tekis. Endi ishlatilmaydi: --eco-shadow-xs-skeuomorphic va --eco-shadow-xs
FokusHover foni + 2 px --eco-focus-ring, 2 px oraliq; destructive — --eco-focus-ring-error
Disabled50 % shaffoflik, cursor: not-allowed
Harakat--eco-duration-fast · linear; rang o‘zgaradi, bosilganda tugma 97,5 % gacha kichrayadi (guruh ichida — yo‘q)

HTML — asosiy holatlar

Kod
<!-- Asosiy harakat: md (40 px) — standart, o‘lcham klassi shart emas -->
<button type="button" class="eco-btn eco-btn--primary">Kursga yozilish</button>

<!-- Mobil: lg (44 px), to‘liq kenglik -->
<button type="button" class="eco-btn eco-btn--primary eco-btn--lg eco-btn--block">Kursga yozilish</button>

<!-- Ikonka + matn -->
<button type="button" class="eco-btn eco-btn--secondary">
  <svg aria-hidden="true"><use href="#i-download"/></svg>Sertifikatni yuklab olish
</button>

<!-- Faqat ikonka: aria-label majburiy -->
<button type="button" class="eco-btn eco-btn--tertiary eco-btn--icon" aria-label="Bildirishnomalar">
  <svg aria-hidden="true"><use href="#i-bell"/></svg>
</button>

<!-- Havola ko‘rinishi: matn <span> ichida -->
<button type="button" class="eco-btn eco-btn--link-color"><span>Kodni qayta yuborish</span></button>

<!-- Xavfli harakat — faqat tasdiqlash oynasida -->
<button type="button" class="eco-btn eco-btn--primary-destructive">Guruhdan chiqish</button>

<!-- Yuklanmoqda: kenglik saqlanadi -->
<button type="submit" class="eco-btn eco-btn--primary is-loading" aria-busy="true" aria-label="Yuborilmoqda">
  <span>Yuborish</span>
</button>

<!-- Sahifaga olib boradi — demak, havola -->
<a class="eco-btn eco-btn--secondary" href="/kurslar">Barcha kurslar</a>

<!-- Tutash guruh: asosiy harakat + menyu (menyu — .eco-menu) -->
<div class="eco-btn-group" role="group" aria-label="Sertifikat">
  <button type="button" class="eco-btn eco-btn--primary">Yuklab olish</button>
  <button type="button" class="eco-btn eco-btn--primary eco-btn--icon" aria-label="Boshqa formatlar"
    aria-haspopup="menu" aria-expanded="false"><svg aria-hidden="true"><use href="#i-chevron-down"/></svg></button>
</div>

<!-- Tooltip: nom + ixtiyoriy izoh; izoh aria-describedby orqali o‘qiladi -->
<button type="button" class="eco-btn eco-btn--secondary eco-btn--icon"
  aria-label="Sertifikatni yuklab olish" aria-describedby="tip-cert">
  <svg aria-hidden="true"><use href="#i-download"/></svg>
</button>
<span class="eco-tooltip" aria-hidden="true">Sertifikatni yuklab olish
  <small id="tip-cert">PDF · kurs tugagach 24 soat ichida tayyor bo‘ladi</small>
</span>

Tugmalar

Bitta ekran — bitta asosiy harakat

Formalar

Yorliq doim ko‘rinadi, xato aniq aytiladi

Forma — foydalanuvchi bilan suhbat. Har bir maydonda ko‘rinib turadigan yorliq, kerak bo‘lsa izoh va tuzatish yo‘lini aytadigan xato matni bo‘ladi. Maydon tugma bilan bir balandlikda: md maydon 44 px — lg tugma, sm maydon 40 px — md tugma. Tuzilma va o‘lchamlar — Untitled UI asosida, maydon ko‘rinishi — dizayner taklifi (Rahimjon Gaziyev, 29.09.2026).

Maydon anatomiyasi

.eco-field

Shu raqamga SMS orqali tasdiqlash kodi keladi

Raqam to‘liq emas: yana 5 ta raqam kiriting

Yorliq
Doim ko‘rinadi, maydon ustida. 14 px / 500, --eco-text-secondary. Yorliq, maydon va izoh orasi — 6 px. Ixtiyoriy maydonga “(ixtiyoriy)” deb yozing — majburiylarga yulduzcha shart emas.
Maydon
44 px (md) yoki 40 px (sm), pill — radius --eco-field-radius-affix; ko‘p qatorli textarea — 20 px (--eco-field-radius-multiline), matn 16 px. Chegara yo‘q — maydonni fon ajratadi: odatda --eco-bg-secondary; kulrang yuzada (karta ichida avtomatik) --eco-bg-primary, soyasiz. Prefiks/suffiksli maydon — pill (pastda «Input guruhi»).
Fokus
Faol (fokus) maydon — bitta: 1,5 px, brend tugma rangi; 2 px hech qayerda ishlatilmaydi. Maydon atrofida 1,5 px tashqi halqa --eco-brand-button (qalinligi --eco-field-focus-w), oraliqsiz, maydon radiusi bo‘yicha — input, textarea, select, OTP, input guruhi, qidiruv, combobox, sana va chat maydonida bir xil. Xatoli maydonda halqa --eco-focus-ring-error — doimiy, fokussiz ham.
Placeholder
Faqat namuna: “90 123 45 67”, rangi --eco-text-placeholder. Yozish boshlanishi bilan yo‘qoladi, shuning uchun yorliq o‘rnini bosmaydi.
Izoh
Format yoki nima uchun kerakligi. 14 px, --eco-text-tertiary, maydonga aria-describedby bilan bog‘lanadi.
Xato matni
Izoh o‘rnida chiqadi: ikonka + --eco-text-error-primary. Maydonda aria-invalid="true" turadi, atrofida doimiy 1,5 px --eco-focus-ring-error halqa chiqadi.

O‘lchamlar: sm va md

Light .eco-input--sm 40 · .eco-btn 40
Dark .eco-input--sm 40 · .eco-btn 40
Light .eco-input 44 · .eco-btn--lg 44
Dark .eco-input 44 · .eco-btn--lg 44
O‘lchamBalandlikIchki oraliqMatnYonidagi tugmaQayerda
sm · .eco-input--sm40 px8 / 14 px16 / 24md · 40 pxFiltr paneli, jadval ustidagi qidiruv, zich admin ekranlar
md · standart44 px10 / 16 px16 / 24lg · 44 pxFormalar, mobil ekranlar, ro‘yxatdan o‘tish

Matn ikkala o‘lchamda 16 px — iOS fokusda sahifani kattalashtirmaydi. Maydon va tugma bir qatorda tursa, o‘lchamni juftlab oling: balandlik teng chiqadi.

Holatlar va maydon turlari

default
hover
focus
filled
read-only

O‘zgartirib bo‘lmaydi

error

Domen to‘liq emas: dilnoza@mail.uz kabi yozing

error · focus

Domen to‘liq emas: dilnoza@mail.uz kabi yozing

success

Promokod qo‘llandi: −15%

disabled

Avval kursni tanlang

Odatda chegara yo‘q — halqa faqat fokusda va xatoda chiqadi: fokus — maydon atrofida 1,5 px --eco-brand-button, xato — doimiy 1,5 px --eco-focus-ring-error (xato va xato + fokus bir xil ko‘rinadi). Hover — to‘ldirilgan maydonda fon bir pog‘ona to‘qroq; bo‘sh maydon (placeholder) o‘zgarmaydi. Disabled — butun maydon 50 % xira, halqasiz (tugma bilan bir qoida).

Light

Kuzgi qabul: 6 ta yo‘nalish

Natija yozish davomida yangilanadi

Kamida 8 ta belgi: harf va raqam

300 belgigacha

Dark

Kuzgi qabul: 6 ta yo‘nalish

Natija yozish davomida yangilanadi

Kamida 8 ta belgi: harf va raqam

300 belgigacha

Select — native <select>: chevron .eco-input-wrap ichidagi oxirgi ikonka, qidiruv ikonkasi — birinchi. Ikonka bosishni to‘smaydi. Parol maydonida oxirgi element — ko‘rsatish tugmasi .eco-input-reveal (aria-pressed, belgi eye ↔ eye-off); maydon disabled bo‘lsa, tugma ham disabled.

Ikonka 20 px, --eco-fg-quaternary, chetdan 16 px; ikonkali maydonda matn 44 px dan boshlanadi. Textarea kamida 128 px, radiusi 20 px (pill emas), pastga cho‘ziladi.

Input guruhi: prefiks va suffiks

Light
prefix · select

SMS kod shu raqamga keladi

suffix · select

Bir oylik to‘lov

prefix + suffix

Lotin harflari, raqam va chiziqcha

suffix · plain

3 dan 12 oygacha

suffix · tugma
prefix · ikonka, suffix · tugma
Dark
prefix · select

SMS kod shu raqamga keladi

suffix · select

Bir oylik to‘lov

prefix + suffix

Lotin harflari, raqam va chiziqcha

suffix · plain

3 dan 12 oygacha

suffix · tugma
prefix · ikonka, suffix · tugma
Light kulrang yuzada — maydon oq, ichki pill kulrang
prefix · select
prefix · ikonka + suffix
error

100 dan oshmasin

suffix · tugma · focus
Dark kulrang yuzada — maydon oq, ichki pill kulrang
prefix · select
prefix · ikonka + suffix
error

100 dan oshmasin

suffix · tugma · focus

Prefiks/suffiks — maydon ichida pill; faqat vazifasi bor (tanlanadigan/bosiladigan) qism alohida fon oladi; ikonka — fonsiz; ajratuvchi chiziq yo‘q. Maydon — bitta yumaloq yuza: 44 px (.eco-input-group--sm — 40 px), radius --eco-field-radius-affix (pill); ichki pill chetdan 6 px, balandligi maydondan 12 px kam. Fon kontekstdan: oq yuzada maydon --eco-bg-secondary, ichki pill --eco-bg-primary_alt; kulrang yuzada (karta ichida avtomatik yoki .eco-input-group--on-grey) maydon --eco-bg-primary, pill --eco-bg-secondary. Tanlov — select.eco-input-group__select, tugma — .eco-input-group__btn (--icon — faqat ikonka; telefonda ikonkali tugma nomi yashirinadi). Statik ikonka (globus, qulf, xat) — .eco-input-group__addon--icon, --eco-fg-quaternary, qidiruv ikonkasi kabi. Statik matn («%», «.pdp.uz») — pill; fonsiz kerak bo‘lsa — .eco-input-group__addon--plain.

default
hover
focus
error

100 dan oshmasin

error · focus

100 dan oshmasin

disabled

Matnli qo‘shimcha — maydonning ikkinchi <label> i: bosilsa maydon fokus oladi, ekran o‘quvchi uni nom bilan birga o‘qiydi. Select bo‘lsa, guruhga role="group" va aria-labelledby, select’ga aria-label qo‘ying. Fokus — butun guruh atrofida 1,5 px --eco-brand-button (oddiy maydon bilan bir xil); klaviaturada ichki pill (select, tugma) ham shunday halqa oladi. Xato — guruh atrofida doimiy 1,5 px --eco-focus-ring-error halqa va pastda ikonkali xato matni.

Tanlov: checkbox, radio, switch, segment

Qiziqishlaringiz
CheckboxBir nechta mustaqil tanlov. Natija forma yuborilganda qo‘llanadi. Guruhning bir qismi tanlansa, umumiy checkbox chiziqcha ko‘rsatadi — indeterminate holati.
Dars vaqti
Radio2–5 variantdan bittasi, hammasi ko‘rinib turadi. 5 tadan ko‘p bo‘lsa — select.
Bildirishnomalar
SwitchDarhol kuchga kiradi — “Saqlash”ni kutmaydi. Native checkbox + role="switch".
Kurslar ko‘rinishi
Dars jadvali
Dars formati
O‘qish usuli
SegmentKo‘rinish yoki rejimni almashtiradi: 2–4 qisqa variant, natija shu zahoti ko‘rinadi. Forma qiymati uchun emas — u yerda radio.
Light sm 16 · md 20 · switch 36×20 / 44×24
sm · standart Checkbox
Radio
Switch
md · --md Checkbox
Radio
Switch
Dark sm 16 · md 20 · switch 36×20 / 44×24
sm · standart Checkbox
Radio
Switch
md · --md Checkbox
Radio
Switch

Input <label> ichida — matn ham bosiladi. Yorliq 14 px / 500, izoh — <small> ichida, --eco-text-tertiary; md o‘lchamda ikkalasi 16 px. Checkbox va radio ko‘rinishi, o‘lchamlari va holatlari — pastdagi «Checkbox va radio: anatomiya» blokida. Switch — Untitled UI o‘lchamlari, ko‘rinishi — dizayner taklifi (Rahimjon Gaziyev, 29.09.2026). Belgining o‘zi 16–20 px, shuning uchun mobilda qator balandligi kamida 40 px bo‘lsin.

Checkbox va radio: anatomiya

Light 3× · sm 16 · round 24
Checkbox · 16 · fon · burchak 13 %
bo‘shbelgilanganqismandisableddisabled ✓
Radio · 16 · fon · nuqta 6
bo‘shtanlangandisableddisabled ●
--round · 24 · telefon, rasm, avatar
bo‘shbelgilangan--media--media ✓
Dark 3× · sm 16 · round 24
Checkbox · 16 · fon · burchak 13 %
bo‘shbelgilanganqismandisableddisabled ✓
Radio · 16 · fon · nuqta 6
bo‘shtanlangandisableddisabled ●
--round · 24 · telefon, rasm, avatar
bo‘shbelgilangan--media--media ✓
Radio
16 / 20 px (--md). Chiziqsiz (r107): bo‘sh — neytral fon; tanlangan — to‘la brend tugma rangi (--eco-brand-button: Light #00B533, Dark limon) va markazda --eco-brand-on-button nuqta 6 / 8 px.
Checkbox
Kvadrat 16 / 20 px, burchak 13 % (2 / 2,6 px), bo‘sh — neytral fon (chiziqsiz). Belgilangan — to‘la --eco-brand-button, galochka --eco-brand-on-button: chiziq 10 % o‘lchamdan, uchlari yumaloq. Qisman — xuddi shu qalinlikdagi chiziqcha.
Yumaloq
.eco-check--round 24 px, --lg 28 px — telefonda ro‘yxat, rasm va avatar ustida bir nechtasini tanlash (Figma «Check Box» 24/28). Galochka chizig‘i 1,5/18. --media — rasm ustida: oq 45 % fon va yengil soya (och rasmda ham ko‘rinsin), halqasiz.
Bo‘sh holat
Chiziqsiz (art direktor, 07.10.2026): halqa o‘rniga yarim shaffof neytral fon — matn rangining 16 % (oq, kulrang va qora sathda ko‘rinadi), hover — 24 %. Kontekst o‘zgaruvchisi — --ctl-off-bg.
Holatlar
Fokus — DS halqasi: 2 px oraliq + 1,5 px --eco-focus-ring. Disabled — fon --eco-bg-disabled, belgilangani kulrang --eco-fg-disabled + fon rangidagi galochka, yorliq --eco-text-disabled. Xato — bo‘sh fon xato rangida (24 %).
Rangli yuza
Brend rangli yuzada (tanlangan radio-karta) — --ctl-on: var(--btn-p-fg): fon va nuqta tugma matni rangida. Ma’lumot rangi (kalendar) — --ctl-on, --ctl-off-bg, --ctl-mark.
Harakat
Galochka chapdan o‘ngga ochiladi (--eco-duration-base, --eco-ease-standard), radio nuqtasi 0 dan to‘liq o‘lchamgacha kattalashadi. prefers-reduced-motion — darhol.
Yorliq
Oraliq 12 px (sm) / 16 px (md); belgi matnning birinchi qatoriga tekislanadi. Bosiladigan maydon — butun <label>.
BoshqaruvQachonNamuna
CheckboxBir nechta mustaqil tanlov yoki bitta rozilik; natija forma yuborilganda qo‘llanadiQiziqishlar, shartlarga rozilik
Radio2–5 variantdan bittasi, hammasi ko‘rinib turadiDars vaqti
Radio-kartaVariantga izoh yoki narx kerak — butun karta bosiladi, ichida o‘sha radioO‘qish formati
Yumaloq checkboxTelefonda ro‘yxat, rasm yoki avatar ustida bir nechtasini belgilashFayllarni tanlash
SwitchDarhol kuchga kiradigan sozlama — «Saqlash»ni kutmaydiBildirishnomalar

Bitta radio va bitta checkbox: bo‘limlar o‘z belgisini chizmaydi, rangni --ctl-* o‘zgaruvchilari bilan beradi. Geometriya — Figma «Telegram Design System» (Telegram 7.8.1 asosidagi norasmiy to‘plam, «Selection Controls») nisbatlari, ranglar — PDP tokenlari; Telegram ko‘ki va ikonkalari olinmagan (art direktor, 07.10.2026).

SMS kod va fayl yuklash

OTP · 6 katak
SMS kod

Kod +998 90 *** ** 47 raqamiga yuborildi. Kiritilgach, avtomatik tekshiriladi.

Kod kelmadimi? · 00:42

fayl yuklash
Pasport nusxasi
  • pasport-dilnoza.pdf1,2 MB · yuklandi
  • diplom-ilova.jpg2,8 MB · 64%
  • diplom.heicXato: HEIC formati qabul qilinmaydi — PDF, JPG yoki PNG yuklang
.eco-otp · holatlar
default
SMS kod

Kod +998 90 *** ** 47 raqamiga yuborildi

Kod kelmadimi?

filled · focus
SMS kod

Kod +998 90 *** ** 47 raqamiga yuborildi

Kod kelmadimi?

error
SMS kod

Kod +998 90 *** ** 47 raqamiga yuborildi

Kod mos kelmadi. Qayta kiriting yoki yangi kod so‘rang

disabled
SMS kod

Kod +998 90 *** ** 47 raqamiga yuborildi

Kod kelmadimi?

Katak — .eco-input (42 × 44 px, raqam 18 px / 600): fon, fokus, xato va disabled holati maydon bilan bir xil. Oltita katak 3 + 3 guruhda, orada ajratgich — kodni o‘qish va aytish oson. Ajratgich ixtiyoriy: ixcham shaklda 6 katak ketma-ket, izohsiz.

Birinchi katakda autocomplete="one-time-code" — telefon SMS’dagi kodni o‘zi taklif qiladi; hammasida inputmode="numeric". Raqam yozilgach fokus keyingi katakka o‘tadi, Backspace — oldingisiga, ← → — kataklar bo‘ylab; to‘liq kod (nusxa yoki avto-to‘ldirish) birinchi katakdan tarqaladi. Taymer paytida tugma aria-disabled, qolgan vaqt — yonidagi matn. Xatoda har katakda aria-invalid="true", pastki qator xato matniga aylanadi.

Namuna: kursga yozilish

PDP EcoSystemPDP AcademyPDP SchoolPDP UniversityPDP OnlinePDP Junior

Kursga yozilish

Ma’lumotlaringizni qoldiring — menejer 1 ish kuni ichida qo‘ng‘iroq qiladi.

Shu raqamga qo‘ng‘iroq qilamiz

O‘qish formati
Bepul · 2 daqiqa
  • Sinab ko‘ring: telefonni chala yozib, keyingi maydonga o‘ting — xato shu zahoti chiqadi. Formani bo‘sh yuborsangiz, har bir maydon o‘z xatosini aytadi, fokus birinchi xatoga o‘tadi.
  • Telefon. +998 maydon ichida, foydalanuvchi 9 ta raqam yozadi. inputmode="numeric" raqamli klaviaturani ochadi, autocomplete saqlangan ism va raqamni beradi.
  • Kurs — select, format — radio. 6 ta yo‘nalish ro‘yxatga sig‘adi, 3 ta format esa bir qarashda ko‘rinishi kerak.
  • Tugma doim faol. Disabled tugma nima yetishmasligini aytmaydi. Mobilda hammasi bitta ustun, tugma maydon bilan bir balandlikda — 44 px — va to‘liq kenglikda.

Xato matni: aniq va ayblamasdan

VaziyatMatn
Majburiy maydon bo‘shIsm va familiyangizni kiriting
Telefon to‘liq emasRaqam to‘liq emas: 9 ta raqam kerak, masalan 90 123 45 67
Email xatoEmail’da “@” belgisi yo‘q: dilnoza@mail.uz kabi yozing
Fayl kattaFayl 8 MB — 5 MB gacha bo‘lishi kerak. Siqib, qayta yuklang
SMS kod mos emasKod mos kelmadi. Qayta kiriting yoki yangi kod so‘rang
Server javob bermadiUlanishda muammo. Ma’lumotlaringiz saqlandi — birozdan so‘ng qayta yuboring
Nima + qandayNima bo‘lganini va qanday tuzatishni bitta gapda ayting.
“Siz” emasAyblamang: “Siz xato qildingiz” o‘rniga — “Raqam to‘liq emas”.
Blur’daMaydondan chiqqanda tekshiring, yozish paytida emas. Tuzatilishi bilan xato yo‘qolsin.
Bitta fokusFaol (fokus) maydon — bitta: 1,5 px, brend tugma rangi; 2 px hech qayerda ishlatilmaydi.
Rang + matnQizil chegara yetmaydi: ikonka va matn ham bo‘lsin. Submit’dan keyin fokus — birinchi xatoga.

Slayder

Qiymat yoki oraliqni surib tanlash

Slayder taxminiy son yoki oraliq uchun: narx, chegirma, ovoz balandligi. Aniq son kerak bo‘lsa — maydon. Asosiy ko‘rinish — bitta tutqich, qadam nuqtalari va qiymat pufagi; ikki tutqichli diapazon va shkala — qo‘shimcha variant. Shakl — dizayner taklifi (Rahimjon Gaziyev, 29.09.2026), ranglar — brend tokenlaridan.

Bitta qiymat va diapazon

Light .eco-slider
bitta tutqich · asosiy
60%
diapazon · qo‘shimcha variant
Chegirma20% – 50%
Dark .eco-slider
bitta tutqich · asosiy
60%
diapazon · qo‘shimcha variant
Chegirma20% – 50%
QismO‘lchamToken
Sarlavha24 px: yorliq 14 / 500, qiymat 14 / 500 o‘ngda.eco-label, --eco-text-primary
Trek20 px, pill, halqasiz; sarlavhadan 4 px--eco-bg-tertiary; kulrang kartada --eco-bg-primary
To‘ldirishTutqichni 2 px bilan o‘raydi; brend rangi, ikkala rejimda bir xil--eco-slider-fill
Tutqich24 × 16 px, pill, oq, halqasiz; yengil soya, qorong‘ida soyasiz--eco-color-white
Qadam nuqtasi3 px, har qadamda, opacity 17 %; to‘ldirishda oq, och to‘ldirishda qora--eco-fg-quaternary, qorong‘ida --eco-fg-tertiary; to‘ldirishda --eco-slider-mark
Qiymat pufagi28 px, burchak 12, matn 12 / 20; tutqich ustida, strelka 10 px; halqasiz, faqat soya--eco-bg-primary, qorong‘ida --eco-bg-secondary; matn --eco-text-primary
Shkala12 / 20, trekdan 4 px pastda (ixtiyoriy)--eco-text-tertiary

To‘ldirish — dizayndagi brend rangi, Light va Dark’da bir xil (har brendning o‘z rangi: yashil, limon, sariq, teal, ko‘k yoki feruza). Trek, tutqich va pufak atrofida chiziq yo‘q — faqat soya. Qiymat doim matnda (sarlavha va pufak), shuning uchun och to‘ldirishning trekka nisbatan past kontrasti ma’noni yo‘qotmaydi. Kulrang karta ichida trek sahifa fonini oladi: yorug‘da oq, qorong‘ida qora.

Ikki o‘lcham: qalin va ingichka

Light .eco-slider · .eco-slider--thin · .eco-range--thin
qalin · media, ovoz, katta filtr
60%
ingichka · forma, sozlama, panel
40 px
ingichka · JS’siz · .eco-range--thin
Dark .eco-slider · .eco-slider--thin · .eco-range--thin
qalin · media, ovoz, katta filtr
60%
ingichka · forma, sozlama, panel
40 px
ingichka · JS’siz · .eco-range--thin
O‘lchamTrekTutqichQayerda
Qalin (asosiy)20 px24 × 16, oqmedia va ovoz, narx filtri, katta sozlamalar
Ingichka --thin6 px18 px doira, oqforma ichida, ilova paneli, shrift testeri, vazifa xossalari

Holatlar

focus
70%
error
Narx40% – 40%

Oraliq kamida 10% bo‘lsin

disabled
Narx20% – 50%

Avval kursni tanlang

JS’siz · .eco-range

Hover’da ko‘rinish o‘zgarmaydi — kursor «qo‘l» bo‘ladi. Fokus — tutqich atrofida 2 px --eco-focus-ring, oradan 2 px oraliq; xatoda trek halqasi --eco-border-error_subtle, fokus halqasi --eco-focus-ring-error, izoh o‘rnida xato matni. Disabled: to‘ldirish --eco-fg-disabled, matn --eco-text-disabled, soya yo‘q; guruh ildizida aria-disabled="true", bitta tutqichda .is-disabled. JS bo‘lmasa .eco-range ishlating — bitta tutqichli native slayder, to‘ldirishni brauzer chizadi.

Klaviatura va ekran o‘quvchi

Klaviatura tugmasiNatija
← ↓ / → ↑Bir qadam kamayadi / oshadi
PageDown / PageUpOraliqning 10% i qadar
Home / EndEng kichik / eng katta qiymat
TabKeyingi tutqichga o‘tadi

Har tutqich — <input type="range">: rol, aria-valuenow, min va max brauzerdan keladi, skript aria-valuetext ga birlikni qo‘shadi. Diapazonda guruh yorlig‘i aria-labelledby bilan, har tutqichda o‘z nomi (aria-label: «Eng kam», «Eng ko‘p»). Tutqichlar bir-birini kesib o‘tmaydi.

Kod
<div class="eco-slider eco-slider--steps" data-eco-slider style="--sl-hi: .6; --sl-steps: 10">
  <div class="eco-slider__head">
    <label class="eco-label" for="volume">Ovoz balandligi</label>
    <output class="eco-slider__value" for="volume" aria-live="off">60%</output>
  </div>
  <div class="eco-slider__control">
    <span class="eco-slider__track" aria-hidden="true"></span><span class="eco-slider__fill" aria-hidden="true"></span>
    <input class="eco-slider__input" type="range" id="volume" min="0" max="100" step="10" value="60" data-suffix="%">
    <span class="eco-slider__tip" aria-hidden="true">60%</span>
  </div>
</div>

Beyjlar va statuslar

Holatni bir so‘z bilan ayting, rang uni tasdiqlasin

Beyj obyektning holati yoki toifasini qisqa aytadi. Rang shoshilinchlikni bildiradi, ma’noni esa so‘z beradi — shuning uchun beyj hech qachon so‘zsiz bo‘lmaydi. Statuslar lug‘ati barcha PDP mahsulotlari uchun bitta — brend faqat ranglarni almashtiradi.

Yettita variant — yettita ma’no

Light .eco-badge · rang
YakunlanganQoralama
.eco-badge

Neytral. Tugagan yoki faqat ma’lumot uchun — e’tibor talab qilmaydi.

FaolTo‘langan
--success

Jarayon davom etmoqda yoki muvaffaqiyatli bajarildi — hammasi joyida.

JarayondaMuddati yaqin
--warning

Jarayon davom etmoqda yoki foydalanuvchidan harakat kerak.

Kutmoqda
--info

Navbat boshqa tomonda — foydalanuvchidan hech narsa kerak emas. Ko‘k — faqat holat beyji va nuqtasida (--eco-fg-info-primary); toifa va doska ranglarida ko‘k yo‘q.

Bekor qilindiMuddati o‘tgan
--error

Jarayon to‘xtadi yoki muammo bor. Sababini yoniga yozing.

Tavsiya
--brand

Och brend tusi — “Tavsiya” kabi belgilar uchun. Bu status emas, nuqta qo‘yilmaydi.

Yangi
--solid

PDP qo‘shimchasi: to‘liq fon va matn — --eco-badge-solid-bg / -fg komponent tokenlaridan (standart — brend fill va uning siyohi). Faqat “Yangi” uchun, kartada bittadan ko‘p emas.

Dark .eco-badge · rang
YakunlanganQoralama
.eco-badge

Neytral. Tugagan yoki faqat ma’lumot uchun — e’tibor talab qilmaydi.

FaolTo‘langan
--success

Jarayon davom etmoqda yoki muvaffaqiyatli bajarildi — hammasi joyida.

JarayondaMuddati yaqin
--warning

Jarayon davom etmoqda yoki foydalanuvchidan harakat kerak.

Kutmoqda
--info

Navbat boshqa tomonda — foydalanuvchidan hech narsa kerak emas. Ko‘k — faqat holat beyji va nuqtasida (--eco-fg-info-primary); toifa va doska ranglarida ko‘k yo‘q.

Bekor qilindiMuddati o‘tgan
--error

Jarayon to‘xtadi yoki muammo bor. Sababini yoniga yozing.

Tavsiya
--brand

Och brend tusi — “Tavsiya” kabi belgilar uchun. Bu status emas, nuqta qo‘yilmaydi.

Yangi
--solid

PDP qo‘shimchasi: to‘liq fon va matn — --eco-badge-solid-bg / -fg komponent tokenlaridan (standart — brend fill va uning siyohi). Faqat “Yangi” uchun, kartada bittadan ko‘p emas.

Ikki tur va uch o‘lcham

Light tur × rang · Untitled UI asosida
Tur--graystandart--brand--success--warning--error
Pill.eco-badgeNeytralBrendMuvaffaqiyatOgohlantirishXato
Badge--badgeNeytralBrendMuvaffaqiyatOgohlantirishXato
Dark tur × rang · Untitled UI asosida
Tur--graystandart--brand--success--warning--error
Pill.eco-badgeNeytralBrendMuvaffaqiyatOgohlantirishXato
Badge--badgeNeytralBrendMuvaffaqiyatOgohlantirishXato
o‘lcham · --sm · md · --lg
--sm · 22 pxFaolFaolZich jadval, avatar va teg yonida
md · 24 px · standartFaolFaolJadval, ro‘yxat, karta
--lg · 28 pxFaolFaolSahifa sarlavhasi yonida
  • Pill .eco-badge — standart tur, burchak to‘liq yumaloq. Holat va belgi: karta, ro‘yxat, sahifa sarlavhasi.
  • Badge --badge — burchak 6 px (--lg da 8 px). Jadval va zich ma’lumot ichida, 12 px burchakli tugma va maydonlar yonida. Bitta mahsulotda pill yoki badge — bittasini tanlang.
O‘lchamBalandlikMatnYon oraliq: pill · badgeBurchak: badge
--sm22 pxtext-xs 12/18 · 5008 · 6 px6 px
md · standart24 pxtext-sm 14/20 · 50010 · 8 px6 px
--lg28 pxtext-sm 14/20 · 500, tepa va past 4 px12 · 10 px8 px
Kod
<!-- Untitled UI → PDP
     type:  pill-color → .eco-badge · color → --badge
     size:  sm → --sm · md (standart) · lg → --lg
     color: gray (standart) · --brand · --success · --warning · --error; PDP: --solid -->
<span class="eco-badge eco-badge--success eco-badge--dot">Faol</span>
<span class="eco-badge eco-badge--badge eco-badge--sm eco-badge--error eco-badge--dot">Muddati o‘tgan</span>
<span class="eco-badge eco-badge--dot">Arxiv</span>
<span class="eco-badge eco-badge--solid">Yangi</span>

Nuqta — holat, nuqtasiz — toifa

toifa — nuqtasiz · holat — nuqtali
  • Frontend dasturlashOflayn · Chilonzor8 oy
    Faol
  • UI/UX dizaynOnlayn5 oy
    To‘lov kutilmoqdaTo‘lash · 25.09 gacha
  • Backend · Node.jsOflayn · Yunusobod10 oy
    Yakunlangan

Nuqta “bu vaqt o‘tishi bilan o‘zgaradi” degani: Faol → Yakunlangan. Toifa esa obyektning doimiy xususiyati: Oflayn, 8 oy. Toifa beyjiga nuqta qo‘ymang, statusdan nuqtani olib tashlamang. Holat qatorning o‘ng chetida, toifalar sarlavha ostida turadi; foydalanuvchidan harakat kerak bo‘lsa, havola va muddat holat ostida.

toifa, metrika — nuqtasiz
  • Demo taqdimotiPDP Hackathon · 4-jamoa8 kun
    Tekshiruvda
  • Mentorlik sessiyasiKuzgi mavsum240 ball
    Bajarildi
  • DemoKatta zal12 dars
    Nofaol

Nuqtasiz beyj — toifa yoki metrika. Metrika — son va o‘lchov birligi: “8 kun”, “12 dars”, ball soni. U o‘zgarib turadi, lekin holat emas: ma’lumot beradi, harakat so‘ramaydi — shuning uchun nuqta qo‘yilmaydi. Guruh, sinf yoki oqim nomi — toifa.

Toifa beyji: rang guruhni ajratadi

Status ranglari band: yashil — “hammasi joyida”, to‘q sariq — “jarayonda”, ko‘k — “kutmoqda”, qizil — “muammo”. Yo‘nalish, fan yoki formatni holat tokenlari bilan bo‘yab bo‘lmaydi, shuning uchun toifaning o‘z to‘plami bor — dizayner bergan avatar xilma-xillik ranglari (--eco-cat-*): qora, yashil, ko‘k, teal, qizilmatn rangi, yashil, to‘q yashil, kulrang, limon — EcoSystem’ning o‘z to‘plami, ko‘k va qizil yo‘q. Vazifasi bitta — bir-biriga o‘xshash narsalarni ro‘yxatda ajratish. Yashil va qizil holat ranglariga o‘xshaydi — bu ochiq savol, dizayner hal qiladi; shu paytgacha toifa beyjida nuqta bo‘lmaydi va yonida doim so‘z turadi.

.eco-badge--cat-* · beshta toifa tusi
Frontend Backend UI/UX dizayn Mobil dasturlash Data Science
katalog · toifa rangli, status semantik
FrontendOnlayn
React va TypeScriptQabul ochiq
UI/UX dizayn6 oy
Mahsulot dizayniMuddati yaqin
Data ScienceOflayn
Python bilan tahlilYakunlangan

Bitta kartada ikki xil beyj: chapda toifa (rangli, nuqtasiz), pastda status (semantik rang, nuqtali). Toifaning rangi ro‘yxatni tez o‘qishga yordam beradi, statusnikida esa ma’no bor. Rang kerak bo‘lmasa, toifa neytral .eco-badge bilan qoladi — “Onlayn”, “6 oy” kabi umumiy teglar shunday beriladi.

BeyjSinfYorug‘: fon · matnQorong‘i: fon · matn
Data Science--cat-blackblack 12 % · blackneutral-50 18 % · neutral-50
Mobil dasturlash--cat-green#00A603 12 % · qora 20 %#39AB37 18 % · oq 20 %
Frontend--cat-blue#0055FF 12 % · qora 10 %#5B92FF 18 % · oq 25 %
Backend--cat-teal#26A49D 12 % · qora 30 %#61C5BD 18 % · tusning o‘zi
UI/UX dizayn--cat-red#C80000 12 % · qora 10 %#FF604F 18 % · oq 25 %
Frontend--cat-bluegreen-950 12 % · qora 10 %green-400 18 % · oq 25 %
Backend--cat-tealneutral-500 12 % · qora 30 %neutral-300 18 % · tusning o‘zi
UI/UX dizayn--cat-redlime-800 12 % · qora 10 %lime 18 % · oq 25 %

Jadval — qat’iy xarita: yo‘nalish bilan rang shu yerda bog‘lanadi. Fon — tusning 12 % i (qorong‘ida 18 %), matn — o‘sha tus qoraga yoki oqqa aralashtirilgan (color-mix), foizi har tusda o‘ziniki: matn kontrasti yorug‘da 5,8–6,2 : 1 (qora 14,4 : 1), qorong‘ida 5,2 : 1 dan yuqori.matn kontrasti yorug‘da 4,8–9,7 : 1 (qora 14,4 : 1), qorong‘ida — uchala karta fonida ham 4,5 : 1 dan yuqori. Sinf nomi (--cat-blue, --cat-red) — slot: EcoSystem’da u to‘q yashil va limon.

  • Holat tokeni toifaga berilmaydi. Toifa faqat --eco-cat-* tusida; success, warning, error — faqat holat uchun. Toifaning yashil va qizili holatga o‘xshaydi: holat beyjlari bor ro‘yxatda avval qora, ko‘k va teal oling.qora, to‘q yashil (blue) va kulrang (teal) oling.
  • Rang barqaror bo‘ladi. Toifalar ro‘yxati ma’lum bo‘lsa — qat’iy xarita (id → tus). Ro‘yxat ochiq bo‘lsa (teg, ko‘nikma, ism) — nomdan hash. Har chizilganda tasodifiy rang bermang: foydalanuvchi rangni eslab qoladi.
  • Ma’noni so‘z beradi. Rang faqat ajratadi. Yozuvsiz rangli beyj bo‘lmaydi; rang ko‘rmaydigan odam uchun ham ro‘yxat o‘qilishi kerak.
  • Toifa beyjida nuqta yo‘q. Nuqta — vaqt bilan o‘zgaradigan holat belgisi; toifa esa doimiy xususiyat.
  • Bir ro‘yxatda ko‘pi bilan besh rang. Toifa ko‘p bo‘lsa, asosiylarini rangli qoldiring, qolganini neytral .eco-badge bilan bering.
  • Bir mahsulotda bitta xarita. Kartada “Frontend” ko‘k bo‘lsa, filtrda, jadvalda va grafikda ham ko‘k bo‘lsin.
Kod
<!-- toifa: rangli, nuqtasiz · status: semantik, nuqtali -->
<span class="eco-badge eco-badge--cat-blue">Frontend</span>
<span class="eco-badge eco-badge--badge eco-badge--sm eco-badge--cat-black">Data Science</span>
<span class="eco-badge eco-badge--success eco-badge--dot">Qabul ochiq</span>

// 1) ro‘yxat ma’lum — qat’iy xarita: yangi toifa qo‘shilsa, eskilari o‘z rangida qoladi
const CAT = {
  frontend: 'blue', backend: 'teal', uiux: 'red', mobile: 'green', data: 'black',
};

// 2) ro‘yxat ochiq (teg, ko‘nikma, ism) — nomdan barqaror hash, tasodif yo‘q
const TINTS = ['black', 'green', 'blue', 'teal', 'red'];
function tint(name) {
  let h = 0;
  for (const ch of name.trim().toLowerCase()) h = (h * 31 + ch.codePointAt(0)) >>> 0;
  return TINTS[h % TINTS.length];
}

// har ikkalasida ham natija — sinf nomi
el.className = 'eco-badge eco-badge--cat-' + (CAT[id] || tint(name));

Statuslar lug‘ati

BeyjSinfMa’nosiQayerda
Faol--success --dotJarayon davom etmoqda, hammasi joyida.Guruh, obuna, vakansiya
Qabul ochiq--success --dotYozilish mumkin. Qabul yopilishi bilan beyj olib tashlanadi.Kurslar va yo‘nalishlar
To‘langan--success --dotTo‘lov qabul qilindi. Summa va chek havolasi yonida turadi.To‘lov, buyurtma
Bajarildi--success --dotTopshiriq bajarildi va qabul qilindi. Baho yoki natija yonida turadi.Uy vazifasi, test, topshiriq
Kutilmoqda--info --dotNavbat bizda: ariza ko‘rib chiqilmoqda. Foydalanuvchidan hech narsa kerak emas.Qabul arizasi, ishga ariza
Tekshiruvda--warning --dotTopshirildi, navbat tekshiruvchida. Foydalanuvchidan hech narsa kerak emas; natija chiqqach — “Bajarildi” yoki qaytarish sababi.Topshirilgan vazifa, hujjat
To‘lov kutilmoqda--warning --dotNavbat foydalanuvchida. Yoniga doim harakat va muddat qo‘ying: “To‘lash · 25.09 gacha”.Kurs to‘lovi, buyurtma
Muddati yaqin--warning --dot3 kun yoki kamroq qoldi. Aniq sanani yoniga yozing.Uy vazifasi, to‘lov, ariza
Yakunlangan.eco-badge --dotMuvaffaqiyatli tugadi, endi e’tibor talab qilmaydi. Kulrang — faol narsalar ro‘yxatda ajralib tursin.Tugagan kurs, yopilgan tanlov
Qoralama.eco-badge --dotHali e’lon qilinmagan, faqat muallif ko‘radi.Vakansiya, dars
Nofaol.eco-badge --dotVaqtincha to‘xtatilgan, qayta yoqish mumkin. “Arxiv” dan farqi — ro‘yxatda qoladi.Akkaunt, guruh, obuna
Bekor qilindi--error --dotTo‘xtatildi. Kim va nima uchun bekor qilganini yoniga yozing.Buyurtma, dars, guruhga yozilish
Muddati o‘tgan--error --dotMuddat o‘tib ketdi. Endi nima qilish kerakligini yoniga yozing.To‘lov, uy vazifasi
Yangi--solidStatus emas, belgi. 14 kundan keyin avtomatik olib tashlansin.Katalogdagi yangi kurs, yangi loyiha
Tavsiya--brandStatus emas, belgi. Bir ro‘yxatda ko‘pi bilan bitta.Katalogdagi kurs, mahsulot
Arxiv.eco-badge --dotFaqat o‘qish uchun, ro‘yxatlardan yashirilgan. Eng past ahamiyat.Eski guruh, o‘chirilgan e’lon

So‘zni o‘zgartirmang: “Faol” hamma loyihada “Faol” — “Aktiv”, “Ishlayapti” yoki “Active” emas. Rang guruhi ham o‘zgarmaydi: yashil — faqat “hammasi joyida”. Yangi status kerak bo‘lsa, avval shu jadvalga qo‘shing.

Brend fon — faqat “Yangi” uchun

YangiOnlayn
Data ScienceQabul ochiq
“Yangi” — beyj tokenida (--eco-badge-solid-bg, standart — brend fill), matn — rejim siyohida. Status — o‘z semantik rangida.

--brand — och brend tusi, faqat “Tavsiya” uchun. Brend rangi yashil bo‘lsa, u --success ga juda yaqin — ularni nuqta va so‘z ajratadi: status doim nuqtali, belgi — nuqtasiz. Brend fondagi matn rangini brend tokeni beradi (--eco-text-primary_on-brand): oq yoki qorani qo‘lda tanlamang.

Chiplar: filtr va teg

button.eco-chip[aria-pressed]

Yo‘nalish

2 ta yo‘nalish tanlandi
teg · o‘chirish tugmasi bilan
React TypeScript Figma

Enter — qo‘shish. O‘quvchi profilidagi ko‘nikmalar.

  • Ko‘rinish — Untitled UI tegi asosida: burchak 6 px, chegarasiz — fon --eco-bg-secondary (kulrang kartada oq), matn sm 500, balandlik 32 px (xs tugma bilan bir xil).
  • Tanlangan chip — och brend fon, brend matn va ✓ belgisi. Holatni faqat rang bilan bermang: ✓ belgisi shart.
  • Filtr chipi — <button aria-pressed>. Bir guruhda bir nechtasini tanlash mumkin; tanlanganlar soni va “Tozalash” yonida turadi. Hech narsa tanlanmasa, “Tozalash” yashiriladi.
  • Bitta tanlov kerak bo‘lsa, chip emas, .eco-segment yoki tab ishlating.
  • Teg — foydalanuvchi qo‘shgan qiymat. O‘chirish tugmasining nomida teg nomi bo‘lsin: “React’ni olib tashlash”.
  • Faqat o‘qiladigan teg — chip emas, .eco-badge: u bosilmaydi va bosiladigandek ko‘rinmasligi kerak.
  • 32 px — zich UI o‘lchami. Chip 32 px, tegning “×” tugmasi 20 px, bosish maydoni esa 32 px, shuning uchun ular orasida kamida 8 px qoldiring. Beyj bosilmaydi — unga bosish maydoni talabi qo‘yilmaydi.

Avatar: o‘lcham, rasm va guruh

.eco-avatar · --xs … --2xl
  • --xs
    24 px
  • --sm
    32 px
  • md
    40 px · standart
  • --lg
    48 px
  • --xl
    56 px
  • --2xl
    64 px
3D avatar · rasm · ikonka · guruh
3D avatarOdam — kutubxonadagi 3D rasm (Avatarlar).
RasmLoyiha logotipi; foydalanuvchi surati ishlatilmaydi.
IkonkaGuruh, bot yoki tizim — brend tusida, kulrang emas.
.eco-avatar--3d · rasm id dan olinadi
  • Dilnoza M.avatar-04
  • Jasur S.avatar-14
  • Madina K.avatar-13
  • Sardor R.avatar-01
  • Nodira A.avatar-07

Rasm foydalanuvchi id sidan hisoblanadi (barqaror hash), shuning uchun Dilnoza hamma joyda — ro‘yxatda, guruhda, izoh ostida — bir xil ko‘rinadi. Avatar ma’no bermaydi: u na status, na rol — yoniga doim ism yozing.

O‘lchamSinfInitsialHolat nuqtasiQayerda
24 px--xstext-xs · 126 pxIzoh muallifi, zich ro‘yxat, guruh
32 px--smtext-sm · 148 pxJadval qatori, sarlavhadagi profil
40 pxstandarttext-md · 1610 pxRo‘yxat, xabar, loyiha almashtirgich
48 px--lgtext-lg · 1812 pxKarta sarlavhasi, mentorlar ro‘yxati
56 px--xltext-xl · 2014 pxProfil kartasi
64 px--2xldisplay-xs · 2416 pxProfil sahifasi, reyting
  • Faqat o‘lcham sinfi — --xs … --2xl; style="--s: …" bilan o‘z o‘lchamingizni yaratmang: shrift va holat nuqtasi shkaladan chiqib ketadi.
  • Initsial — faqat brend avatarida (--brand): ikki harf, semibold. Odamlar uchun initsialli zaxira yo‘q: rasm yuklanmasa — ikonka avatari. Brend avatarlari — Avatarlar (avatar istisnosi).
  • Rasm — kvadrat, markazda kesiladi. Yonida ism yozilgan bo‘lsa, alt=""; ism yo‘q bo‘lsa, ism alt ichida.
  • Guruh — avatarlar 8 px ustma-ust, har birining atrofida 2 px fon rangidagi halqa. 5 tadan ko‘p bo‘lsa, qolgani “+N”. Guruh nomi va soni aria-label da.

Hisoblagich, nuqta va avatar holati

Light hisoblagich · nuqta · avatar holati
  • Dilnoza, onlayn
  • Jasur, band
  • Madina, oflayn
  • Sardor, jonli darsda
Dark hisoblagich · nuqta · avatar holati
  • Dilnoza, onlayn
  • Jasur, band
  • Madina, oflayn
  • Sardor, jonli darsda
  • 0 bo‘lsa — hisoblagichni yashiring. “0” yozmang.
  • 99 dan ko‘p — “99+”. Aniq son kerak bo‘lsa, u sahifaning o‘zida.
  • Son muhim bo‘lmasa — faqat nuqta: “yangi narsa bor”.
  • Son tugma nomida aytiladi: aria-label="Bildirishnomalar: 3 ta yangi"
  • Avatar nuqtasi — .eco-avatar__status: avatarning 25 % i, o‘ng pastki burchakda, atrofida fon rangidagi 1,5 px halqa. Yashil — onlayn, sariq — band, ichi bo‘sh doira — oflayn. Fonga nisbatan kontrast kamida 3:1.
  • Halqa — hozir sodir bo‘layotgan holat (jonli dars). Holatni matn bilan ham yozing: rangning o‘zi yetmaydi.

Beyjlar va statuslar

Holatni bir so‘z bilan ayting, rang uni tasdiqlasin

Aksent chipi — bitta yutuq yoki hisob

.eco-chip--accent · profil sarlavhasida
Dilnoza Rahimova FaolPDP Hackathon · 4-jamoa3 loyihada faol
Bajarildi+120
Ekranda bitta chip: ikonka va son. Holat — o‘z beyjida, nuqta bilan.
  • Vazifasi — foydalanuvchining yutug‘i yoki hisobi: ball, XP, yulduz, sertifikat, faollik. Status ham, toifa ham emas.
  • Ekranda bitta — profil yoki dashbord sarlavhasida, ism yonida. Ro‘yxat qatoriga va jadvalga qo‘yilmaydi.
  • Ikonka majburiy — Phosphor, 16 px, chapda; nuqta emas. Ikonka va son uni status beyjidan ajratadi.
  • Ko‘rinish — pill, 32 px (chip bilan bir xil), matn sm 600, raqamlar teng kenglikda. Fon va matn — --eco-chip-accent-bg / -fg (standart — brend aksenti va uning siyohi), chegarasiz.
  • Aksent holat rangiga yaqin bo‘lsa — brend chip uchun boshqa brend rangini beradi: pushti aksent xatoga, yashil aksent muvaffaqiyatga o‘xshamasin.
  • Bosilmaydi — <span>. Tarixga olib borsa, u tugma yoki havola bo‘ladi va fokus halqasini oladi.

Avatarlar

Loyihaning o‘z avatari va boshqa foydalanuvchilar

Avatar — foydalanuvchining kichik belgisi. Odamlar — 3D avatar (fon rangi rasmning o‘zida); loyiha va agent (AI-mentor, bot, tizim, guruh) — brend tusidagi yaxlit doirada initsial yoki ikonka. Fon doim rangli: gradient (xira shar) va kulrang avatar yo‘q.

3D avatarlar

Light

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 24
  • 32
  • 40
  • 48
  • 64
  • onlayn
  • guruh

Dark

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 24
  • 32
  • 40
  • 48
  • 64
  • onlayn
  • guruh

Odam — 3D avatar: 16 ta rasm (turli yosh, soch, ko‘zoynak, teri rangi, ro‘mol). Fon rangi rasmning o‘zida — Light va Dark rejimda bir xil, tus tanlanmaydi; doira shaklini .eco-avatar--3d beradi. Joriy foydalanuvchi ham — 3D avatar.

Rasmlar — alohida fayl (/ds/assets/avatars/avatar-01…16.webp, 192 px, fon bilan, har biri ~2,5 KB), loading="lazy". Manba: Figma Community, muallif Arthur Belfort, CC BY 4.0 — atributsiya: /ds/assets/avatars/README.md.

Kod
<span class="eco-avatar eco-avatar--3d" aria-hidden="true">
  <img src="/ds/assets/avatars/avatar-04.webp" alt="" width="40" height="40" loading="lazy" decoding="async">
</span>

// rasm — foydalanuvchi profilda tanlaydi; tanlamagan bo‘lsa — id dan barqaror hash (pick — pastdagi namunada)
const PICS = Array.from({ length: 16 }, (_, i) => String(i + 1).padStart(2, '0'));
img.src = '/ds/assets/avatars/avatar-' + (user.avatar || pick(PICS, user.id)) + '.webp';
el.className = 'eco-avatar eco-avatar--3d';

Loyiha va agent avatari

Light

  • --tint
  • --tint
  • --tint
  • --tint
  • --accent
  • --inverse

Dark

  • --tint
  • --tint
  • --tint
  • --tint

Loyiha belgisi (initsial) va odam emas agentlar — AI-mentor (#i-sparkles), bot (#i-bot), tizim, guruh (#i-users) — --tint: brend tusidagi yaxlit doira (--eco-avatar-tint-bg, shaffof emas), initsial va ikonka brend rangida (--eco-avatar-tint-ink). Bitta sinf oltita brendda ishlaydi. Gradient yo‘q.

EcoSystem: tus — malachite 15 %, Light’da yashil #00B533 belgi, Dark’da limon. Loyiha belgisi uchun yana limon doira (--accent, limon 50 %) yashil initsial bilan va qora doira (--inverse, #1F1F1F) limon initsial bilan.

Academy: tus — yashil 15 %, belgi yashil #00B533; Dark rejimda yorqinroq yashil.

Online: Academy bilan bitta — tus yashil 15 %, belgi yashil #00B533; Dark rejimda yorqinroq yashil.

School: tus va belgi — ko‘k #0055FF (Dark rejimda belgi school-blue-300).

University: tus va belgi — teal #26A49D, ikkala rejimda.

Junior: tus va belgi — moviy #00CDDA.

Xilma-xillik: boshqa foydalanuvchilar

Figma

Light

Dark

Har bir odam — joriy foydalanuvchi ham — 3D avatar (16 rasm); guruh, bot va tizim — brend tusidagi ikonka avatari (--tint + #i-users, #i-bot). Initsialli va kulrang zaxira yo‘q. Rasm foydalanuvchi id sidan hisoblanadi (barqaror hash), tasodifiy emas: bir odam hamma joyda bir xil ko‘rinadi.

Tokenlar va o‘lcham

TokenVazifaLightDark
--eco-avatar-tint-bg · -tint-inkAgent va loyiha avatari: brend tusidagi fon va brend rangidagi belgi
--eco-avatar-accent-* · -inverse-*Faqat EcoSystem: limon va qora doira

O‘lcham — .eco-avatar shkalasi (--xs 24 … --2xl 64, Beyjlar va statuslar); kadrdagi o‘lcham — --36: 36 px, initsial 12/20, Inter 500, ikonka 16 px.

  • Avatar istisnosi. Avatar initsiali rangi kadrdagicha qoladi — tusda 4,5 : 1 dan past bo‘lsa ham to‘qlashtirilmaydi (foydalanuvchi qarori, 30.09.2026). Shuning uchun avatar bezak: aria-hidden="true", ism doim yonida matn bilan.
  • Chiziq yo‘q. Avatar atrofida halqa yoki chegara chizilmaydi — fon bilan ajraladi, 3D avatar ham. Guruhdagi «kesik» halqa va holat nuqtasi — alohida qoida.
  • Odam — 3D avatar. Haqiqiy surat ishlatilmaydi: odamga, joriy foydalanuvchiga ham, kutubxonadagi 3D avatar (--3d). AI-mentor, bot, tizim va guruh — brend tusidagi ikonka avatari (--tint).
  • Fon doim rangli. Avatar foni — 3D rasmning pastel rangi, brend tusi yoki EcoSystem limon / qora doirasi. Gradient (xira shar) avatar va kulrang fonli ikonka yoki initsial yo‘q (art direktor qarori, 04.10.2026).
  • Harakat yo‘q. Avatar jonlantirilmaydi; prefers-reduced-motion ga bog‘liq narsa ham yo‘q.
Kod
<!-- odam (joriy foydalanuvchi ham): 3D avatar -->
<span class="eco-avatar eco-avatar--36 eco-avatar--3d" aria-hidden="true"><img src="/ds/assets/avatars/avatar-07.webp" alt="" width="36" height="36" loading="lazy" decoding="async"></span>

<!-- agent: AI-mentor · bot · guruh; loyiha belgisi — initsial (brend tusi) -->
<span class="eco-avatar eco-avatar--36 eco-avatar--tint" aria-hidden="true"><svg class="eco-icon"><use href="#i-sparkles"/></svg></span>
<span class="eco-avatar eco-avatar--36 eco-avatar--tint" aria-hidden="true"><svg class="eco-icon"><use href="#i-bot"/></svg></span>
<span class="eco-avatar eco-avatar--36 eco-avatar--tint" aria-hidden="true"><svg class="eco-icon"><use href="#i-users"/></svg></span>
<span class="eco-avatar eco-avatar--36 eco-avatar--tint" aria-hidden="true">AG</span>

// tanlov — foydalanuvchi id sidan barqaror hash (har chizilganda tasodifiy emas)
function pick(list, id) {
  let h = 0;
  for (const ch of String(id)) h = (h * 31 + ch.codePointAt(0)) >>> 0;
  return list[h % list.length];
}

Kartalar

Bitta karta — bitta obyekt va bitta asosiy harakat

Karta bitta obyekt — loyiha, kurs, ko‘rsatkich yoki e’lon — haqidagi ma’lumotni bir joyga yig‘adi. Burchak 24 px, chiziq va soya yo‘q — dizayner taklifi (Rahimjon Gaziyev, 28.09.2026); tuzilma Untitled UI asosida; qoidalar — barcha PDP mahsulotlari uchun taklif.

Anatomiya

.eco-card · 24 / 24
Oflayn · Toshkent8 oy

Frontend dasturlash

Haftasiga 3 dars, 19:00 dan · 16 kishilik guruh

1 200 000 so‘moyiga

Yozilish
QismToken / sinfQiymat
Burchak--eco-radius-4xl24 px
Ichki oraliq--eco-spacing-3xl24 px
Fon--eco-bg-secondarySoya va chiziq yo‘q; chegara 1 px transparent
Yuqori qator.eco-badgeToifa va holat, 2–3 ta
Sarlavha.eco-card__title20/30, ko‘pi bilan 2 qator
Meta.eco-card__meta14/20, --eco-text-tertiary
Qismlar orasi--eco-spacing-lg12 px
Amal.eco-btn (md)40 px, pastki qatorda, bitta asosiy

Ichki oraliq, qatorlar tartibi, sarlavha va harakat qoidalari — taklif, Untitled UI asosida; burchak 24 px va chiziqsiz ko‘rinish — dizayner taklifi (Rahimjon Gaziyev, 28.09.2026). Kartadagi tugma — md (40 px), telefonda ham: kartalar ro‘yxati zich interfeys emas. xs (32 px) va sm (36 px) faqat zich jadval va panellarda, tugmalar orasi kamida 8 px bo‘lsa.

Uch daraja: base, interactive, raised

Light --eco-bg-primary ustida
.eco-card

Bugungi darslar

Ma’lumotni guruhlaydi. O‘zi bosilmaydi, ichida alohida tugma yoki havola bo‘lishi mumkin.

--interactive

Kurslar katalogi

Butun karta — bitta havola. Hover’da 2 px ko‘tariladi, focus’da halqa chiqadi.

Ochish
Dark --eco-bg-primary ustida
.eco-card

Bugungi darslar

Ma’lumotni guruhlaydi. O‘zi bosilmaydi, ichida alohida tugma yoki havola bo‘lishi mumkin.

--interactive

Kurslar katalogi

Butun karta — bitta havola. Hover’da 2 px ko‘tariladi, focus’da halqa chiqadi.

Ochish
Light --eco-bg-secondary ustida
--raised

Savat: 2 ta mahsulot

Sahifa ustida suzadigan qatlam: yopishqoq xulosa, ochiladigan panel. Fon --eco-bg-primary_alt, chiziqsiz, soya --eco-shadow-lg. Oddiy ro‘yxatda ishlatmang — soya faqat haqiqatan ustida turgan qatlamga.

Dark --eco-bg-secondary ustida
--raised

Savat: 2 ta mahsulot

Sahifa ustida suzadigan qatlam: yopishqoq xulosa, ochiladigan panel. Fon --eco-bg-primary_alt, chiziqsiz, soya --eco-shadow-lg. Oddiy ro‘yxatda ishlatmang — soya faqat haqiqatan ustida turgan qatlamga.

Loyiha va kurs kartalari

kurs kartasi · uch holat
Oflayn · Toshkent5 oy

UI/UX dizayn

Figma, prototiplash va foydalanuvchi tadqiqoti. Haftasiga 3 dars.

990 000 so‘moyiga

Yozilish
Faol

Frontend dasturlash

Mentor: Jasur Saidov · 3-guruh

Darslar: 18 / 4838%
23.09, 19:00Davom etish
To‘lov kutilmoqda

Backend · Node.js

Joyingiz 25.09.2026 gacha band qilingan. To‘lov o‘tmasa, joy navbatdagi o‘quvchiga beriladi.

1 190 000 so‘m1-oy uchun

To‘lash

Kurs kartalari matni har xil uzunlikda, lekin narx va tugma bir chiziqda — karta flex-ustun, pastki qator margin-top: auto. Narx har doim “so‘m” va davr bilan: “oyiga”, “1-oy uchun”.

Ko‘rsatkich, e’lon va bo‘sh karta

KPI · raqam va delta

Faol o‘quvchilar

15 080

+8,4%avgustga nisbatan

Yangi arizalar · sentabr

1 836

+12%avgustga nisbatan

Qarzdor o‘quvchilar

3,2%

+0,6 f.p.avgustga nisbatan

Delta rangi yo‘nalishni emas, ma’noni ko‘rsatadi: qarzdorlar ulushi 0,6 foiz punktga (f.p.) o‘ssa — qizil. Bo‘sh karta — kulrang fon, ikonka, bir qator izoh va bitta harakat; batafsil qoidalar “Holatlar” bo‘limida.

Grid va mobil

1440 px
4 ustun
768 px
2 ustun
390 px
1 ustun
Kod
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: var(--eco-spacing-3xl);   /* 24 px — grid gutter */
}
/* md (768 px) dan tor ekranda — 16 px */
@media (max-width: 767px) { .card-grid { gap: var(--eco-spacing-xl); } }
.card-grid > .eco-card { display: flex; flex-direction: column; }
.card-grid .card-actions { margin-top: auto; }   /* tugmalar bir chiziqda */
  • auto-fit — ustunlar soni kenglikka qarab o‘zi o‘zgaradi, media query shart emas.
  • 1–2 ta karta bo‘lsa auto-fill oling — yolg‘iz karta butun kenglikka cho‘zilmaydi.
  • Teng balandlik — grid qatori kartalarni cho‘zadi, harakatlar esa pastga yopishadi.
  • Mobilda bitta ustun, ichki oraliq 24 px, tugma 40 px dan kichraymaydi. Gorizontal karusel — faqat “Sizga tavsiya” kabi qo‘shimcha ro‘yxatlar uchun.

Qo‘llanish

To‘lovlar

  • Sentabr1 200 000 so‘m
  • Avgust1 200 000 so‘m
Karta ichini chiziq bilan emas — oraliq va fon bilan bo‘ling: kulrang kartada oq qatorlar.

Mobil dasturlash

Flutter · 7 oy · Onlayn

Bitta asosiy harakat, qolgani — tertiary yoki havola.

Yozgi lager 2026

Ro‘yxatdan o‘tish 30.05 gacha

Karta muqovasi — qora mini-banner (aksent nuqtali to‘r) yoki haqiqiy render: tepada, matnsiz; gradient muqova yo‘q.

Kartalar

Bitta karta — bitta obyekt va bitta asosiy harakat

Informatsion, tanlanadigan va rasmli karta

informatsion karta · rasmli karta
Ochiq dars04.10.2026

Yakuniy loyihalar taqdimoti

PDP Hackathon · 4-jamoa

Frontend · 3-guruh

9-A · Matematika

Dasturiy injiniring · 2-kurs

Python asoslari · 12-oqim

Robototexnika · 2-guruh

tanlanadigan karta · radio
To‘lov tarifi
  • Informatsion karta — sahifada doim turadigan maslahat yoki qoida: fon --eco-bg-brand-primary, chegara va soya yo‘q, ikonka i-info. Ogohlantirish va xato uchun emas — ular uchun alert (“Holatlar”).
  • Tanlanadigan karta — butun karta radio yoki checkbox (<label> ichida haqiqiy <input>). Tanlangani — och brend fon --eco-bg-brand-primary va “Tanlangan” beyji: rang yolg‘iz qolmaydi.
  • Harakat — ro‘yxat ostida bitta. Tanlanadigan kartaning ichida tugma bo‘lmaydi; narx har doim so‘m va davr bilan.
  • Rasmli karta — media 16 : 9 tepada, ichki oraliqsiz; burchak kartadan meros (overflow: hidden). Rasm ustiga ramka va matn qo‘ymang; odam va stok foto o‘rniga — mahsulotning o‘z tasviri.
Kod
/* Taklif: umumiy CSS’da hali yo‘q — shu ko‘rinishda qo‘shiladi; ranglar faol brenddan */
.eco-card--info { background: var(--eco-bg-brand-primary); border-color: transparent; }
.eco-card--selectable:has(input:checked) {
  background: var(--eco-bg-brand-primary);
}
.eco-card--selectable:has(input:focus-visible) { outline: 1.5px solid transparent; box-shadow: 0 0 0 2px var(--eco-bg-primary), 0 0 0 3.5px var(--eco-focus-ring); }
.eco-card--media { padding: 0; overflow: hidden; }
.eco-card__media { aspect-ratio: 16 / 9; object-fit: cover; }

Eslatma bloklari

Asosiy matndan ajralib turadigan qisqa izoh

Callout — matn oqimidagi tinch to‘la yuza: kichik ikonka plitkasi, sarlavha, matn va kerak bo‘lsa bitta havola yoki tugma. Chiziq va soya yo‘q. Ohang faqat ma’no bilan tanlanadi — neytral, brend, info, ogohlantirish, xato, muvaffaqiyat; bezak uchun rang yo‘q. Brend ohangi faol brendga ergashadi, qolganlari oltita brendda bir xil.

Olti ohang, Light va Dark

Light

Eslatma

Dars yozuvi 24 soat ichida shaxsiy kabinetda paydo bo‘ladi.

Foydali maslahat

Uy vazifasini dars kuni topshiring — mentor javobi tezroq keladi.

Ma’lumot

Jadval har dushanba yangilanadi.

Ogohlantirish

To‘lov muddati o‘tsa, kursga kirish vaqtincha yopiladi.

Xato

Fayl 20 MB dan katta — yuklab bo‘lmaydi.

Tayyor

Barcha topshiriqlar tekshirildi.

Dark

Eslatma

Dars yozuvi 24 soat ichida shaxsiy kabinetda paydo bo‘ladi.

Foydali maslahat

Uy vazifasini dars kuni topshiring — mentor javobi tezroq keladi.

Ma’lumot

Jadval har dushanba yangilanadi.

Ogohlantirish

To‘lov muddati o‘tsa, kursga kirish vaqtincha yopiladi.

Xato

Fayl 20 MB dan katta — yuklab bo‘lmaydi.

Tayyor

Barcha topshiriqlar tekshirildi.

Fon — semantik tint tokeni, ikonka — shu ohangning ikonka rangi, plitka — yuza ustidagi oq qatlam (Dark’da ko‘tarilgan kulrang). Sarlavha doim asosiy matn rangida, matn — o‘sha rangning 76 % i: rangli fonda kulrang hex ishlatilmaydi. Brendni almashtirib ko‘ring — faqat brend ohangi o‘zgaradi.

Anatomiya

.eco-callout--brand · havola va yopish bilan

Yangi modul ochildi

«Ma’lumotlar tahlili» moduli endi kurs dasturida. Birinchi dars — keyingi hafta.

  1. Yuza — to‘la tint, burchak 16 px, ichki oraliq 16 · 20 px. Chiziq, chap chiziq va soya yo‘q.
  2. Ikonka plitkasi — 32 px, burchak 8 px, ichida 20 px to‘la ikonka ohang rangida.
  3. Sarlavha — Inter 600 · 16/24, asosiy matn rangida. Qisqa: 2–5 so‘z.
  4. Matn — Inter 400 · 14/20, matn rangining 76 % i; ro‘yxat va havola bo‘lishi mumkin.
  5. Havola yoki tugma — ixtiyoriy: bitta havola (600, tagiga chizilgan) yoki kichik tugma.
  6. Yopish — ixtiyoriy: 32 px tugma o‘ng yuqorida, fon faqat hover’da.
QismQiymatToken
Yuzaburchak 16 px, ichki oraliq 16 · 20 px (ixcham — 12 px, 12 · 16 px)--eco-radius-2xl
Plitka32 px, burchak 8 px, matndan 12 px--eco-radius-md
Ikonka20 px, to‘la (fill) Phosphor--eco-icon-md
Sarlavha600 · 16/24 px--eco-text-primary
Matn400 · 14/20 px, sarlavhadan 4 px, matn rangining 76 % i--eco-font-body
Harakatlarmatndan 12 px, oraliq 16 px--eco-spacing-lg

Uch ko‘rinish

ixcham · sarlavhali blok · yopiladigan

Eslatma.

Ariza 2 ish kunida ko‘rib chiqiladi.

--compact

Yozilishdan oldin

  • pasport yoki ID karta;
  • telefon raqamingiz.
__title · __body · __actions

Profil to‘ldirildi

Endi mentorlar sizga yozishi mumkin.

.eco-callout__close
  • Ixcham — bitta qisqa jumla: plitkasiz 20 px ikonka, sarlavha matn bilan bir qatorda. Forma ostida, jadval tepasida, kartada.
  • Sarlavhali blok — odatiy ko‘rinish: sarlavha, matn (ro‘yxat ham bo‘ladi) va ixtiyoriy bitta harakat.
  • Yopiladigan — foydalanuvchi bir marta o‘qib, yopishi mumkin bo‘lgan izoh. Yopilgani eslab qolinadi; fokus keyingi elementga o‘tadi.
  • Havola yoki tugma — havola .eco-callout__action yoki .eco-btn--sm. Bitta blokda bitta harakat.

Qaysi ohang qachon

OhangKlassQachonFon · ikonka
Neytral.eco-calloutQo‘shimcha izoh, havola, kontekst — ma’no yuki yo‘q.--eco-bg-secondary
Brend--brandMaslahat, yangilik, tavsiya: «shunday qilsangiz yaxshiroq».--eco-bg-brand-primary
Info--infoQoida, muddat, jarayon haqida faktlar.--eco-fg-info-primary
Ogohlantirish--warningOqibati bor shart: muddat, cheklov, qaytarib bo‘lmaydigan qadam.--eco-bg-warning-primary
Xato--errorDavom etib bo‘lmaydi: talab bajarilmagan, kirish yopiq.--eco-bg-error-primary
Muvaffaqiyat--successNatija tasdig‘i: bosqich tugadi, hammasi tayyor.--eco-bg-success-primary

Eski nomlar ishlab turadi: --note → neytral, --tip → --brand, --important → --info; eski belgilash (sarlavha ichidagi doira ikonka) ham to‘g‘ri chiziladi. Yangi sahifalarda yangi nomlarni yozing.

Qoidalar

  • Ohangni ma’no bo‘yicha tanlang — rang turini ko‘rsatadi, sarlavha uni so‘z bilan aytadi. Rang yolg‘iz signal emas.
  • Bitta fikr — bitta blok. Ekranda ko‘pi bilan ikkita callout; ketma-ket bloklar matnni bo‘lib tashlaydi.
  • Sarlavha qisqa (2–5 so‘z), matn — bir-ikki jumla. Batafsil ma’lumot — havola orqali.
  • Callout — statik izoh. Tizim javobi va holat xabari — Alert va toast; harakat talab qiladigan qaror — modal.
  • Kulrang yuzada (kulrang karta, .demo--surface) neytral callout avtomatik oq bo‘ladi; rangli ohanglar o‘z tintida qoladi.
  • Ekran o‘qigich: blokka role="note", plitkaga aria-hidden="true", yopish tugmasiga aria-label. Shoshilinch xato bo‘lsa — role="alert".

HTML — callout

Kod
<!-- ohang: (yo‘q) neytral · --brand · --info · --warning · --error · --success; ko‘rinish: --compact; yopish — .eco-callout__close
     ikonkalar: notepad-text · sparkles · info · triangle-alert · circle-x · circle-check (-fill) -->
<div class="eco-callout eco-callout--brand" role="note">
  <span class="eco-callout__icon" aria-hidden="true"><svg><use href="#i-sparkles-fill"/></svg></span>
  <div class="eco-callout__content">
    <p class="eco-callout__title">Yangi modul ochildi</p>
    <div class="eco-callout__body"><p>Birinchi dars — keyingi hafta.</p></div>
    <div class="eco-callout__actions">
      <a class="eco-callout__action" href="/kurs">Dasturni ko‘rish<svg aria-hidden="true"><use href="#i-arrow-right"/></svg></a>
    </div>
  </div>
  <button type="button" class="eco-callout__close" aria-label="Yopish"><svg aria-hidden="true"><use href="#i-x"/></svg></button>
</div>

Ilova komponentlari

Kabinet va panel ekranlari uchun yetti komponent

Tablar, progress, jadval, sahifalash, modal, bo‘sh holat va fayl yuklash — Untitled UI’ning ilova komponentlari, PDP tokenlarida. Tuzilma, o‘lcham va holatlar Untitled UI’dan olingan; rang, fokus va kontrast — PDP Design System qoidalari bo‘yicha. Har bir komponent ikki rejimda va 390 px kenglikda ishlaydi. Kanban doska va boshqa ilova bloklari — «Ilova» sahifasida.

Tablar

Figma

Tab bitta sahifa ichidagi ko‘rinishlarni almashtiradi: kontent o‘zgaradi, URL va sahifa — yo‘q. Ikki shakl: underline — sahifa va karta bo‘limlari uchun, pill — kulrang trek ichida, ixcham panel va filtrlar uchun. Pill rangsiz (standart) yoki brend rangida bo‘ladi. Son (yangi vazifalar, xabarlar) tab ichidagi beyjda turadi.

Light .eco-tabs · underline · sm · beyj bilan
8 oylik kurs: HTML va CSS’dan React’gacha. Haftasiga 3 dars, 19:00 dan.
12 ta dars ochiq. Keyingisi — 4.3 · Fetch va API.
3 ta vazifa tekshirilmoqda. Eng yaqin muddat — 25.09, 23:59.
O‘rtacha baho — 86. Jurnal mentor tekshirgach yangilanadi.
Dark .eco-tabs · underline · sm · beyj bilan
8 oylik kurs: HTML va CSS’dan React’gacha. Haftasiga 3 dars, 19:00 dan.
12 ta dars ochiq. Keyingisi — 4.3 · Fetch va API.
3 ta vazifa tekshirilmoqda. Eng yaqin muddat — 25.09, 23:59.
O‘rtacha baho — 86. Jurnal mentor tekshirgach yangilanadi.
Light Pill · rangsiz va rangli
--pill
--pill --inverse
--pill --brand
--pill --accent
.eco-segment --brand
Dark Pill · rangsiz va rangli
--pill
--pill --inverse
--pill --brand
--pill --accent
.eco-segment --brand
O‘lchamlar · --sm · standart · --md · --lg · --fill
--sm
standart
--md
--lg
--pill --fill
underline · --md
underline --fill
TurSinfKo‘rinish
Underline.eco-tabsPastda 1 px --eco-border-tertiary; tanlanmagani — --eco-tab-label (qora 70 %, qorong‘ida oq 70 %); tanlangani — --eco-tab-label-strong (sof qora, qorong‘ida oq) va 2 px chiziq: yorug‘da --eco-fg-brand-primary, qorong‘ida --eco-fg-brand-secondary. Chekka 4/12, oraliq 0; hover — faqat matn.
Rangsiz pill--pill · .eco-segmentTrek --eco-bg-secondary: chekka 4/8, oraliq 2, to‘liq pill. Tanlangani — oq pill (--eco-tab-pill-bg, soya --eco-tab-pill-shadow), matn sof qora — ikkala rejimda. Pill tabdan 4 px chiqib turadi. Chegara va halqa yo‘q.
Teskari--inverseTanlangani — qora pill (--eco-tab-inverse-bg), matn oq.
Brend--brandTanlangani — brend pill’i: --eco-tab-brand-bg va --eco-tab-brand-fg (jadval pastda).
Aksent--accentIkkinchi rang: --eco-tab-accent-bg va --eco-tab-accent-fg. EcoSystem — limon, Academy va Online — sariq; boshqa brendlarda --brand bilan bir xil.
O‘lcham--sm · --md · --lgPill band: 28 · 36 (standart) · 44 · 56 px; matn Inter 500 14/20 · 14/24 · 16/24 · 18/28. Underline: 34 px (standart) va 44 px (--md).
Teng kenglik--fillTablar konteyner enini teng bo‘lib to‘ldiradi (standart — matn eni); sig‘masa qator siljiydi. Segmentda — .eco-segment--fill, ikonka tepada — .eco-segment--stacked.
Ikonka bilan.eco-icon16 px, yorliqdan oldin, oraliq 6; rangi — yorliq rangi.
Son.eco-badgexs 12/18; tanlangan tabda — brend rangida.
Fokus:focus-visible2 px --eco-focus-ring, ichkariga — siljiydigan qatorda kesilmaydi.
Eski nomlar--button-border · --button-gray · --button-brandIshlaydi: --pill, --pill, --pill --brand. Yangi kodda yangi nomlar.

Rangli pill — shu brend juftliklari. Tanlangan tab matni doim sof qora yoki oq, dizayndagidek; 4,5 : 1 dan past juftliklar — foydalanuvchi qarori (30.09.2026), build ro‘yxatdan tashqarisini to‘xtatadi.

TurFonMatnKontrast
--brand#00B533#FFFFFF2,74 : 1 · Istisno dizayndagidek, qaror 30.09.2026
--accent#BDFF00#00000017,47 : 1 · AA

Klaviatura: ← → — qo‘shni tab, Home / End — birinchi va oxirgi, Tab — panelga o‘tish. Tab tartibida faqat tanlangan tab turadi (tabindex="0", qolganlari -1). Belgilash: role="tablist" va aria-label; har tabda role="tab", aria-selected, aria-controls; panelda role="tabpanel", aria-labelledby, tabindex="0". Filtr yoki parametr tanlovi (panel almashmaydi) — tab emas, .eco-segment. Telefonda tablar sig‘masa, qator siljiydi; 5 tadan ko‘p bo‘lsa — select.

Tab nomi — 1–2 so‘z; son — beyjda.
Kod
<div class="eco-tabs" role="tablist" aria-label="Kurs bo‘limlari">
  <button type="button" class="eco-tab" role="tab" id="t-1" aria-controls="p-1" aria-selected="true">Umumiy</button>
  <button type="button" class="eco-tab" role="tab" id="t-2" aria-controls="p-2" aria-selected="false" tabindex="-1">
    Darslar <span class="eco-badge">12</span>
  </button>
</div>
<div class="eco-tabpanel" role="tabpanel" id="p-1" aria-labelledby="t-1" tabindex="0">…</div>
<div class="eco-tabpanel" role="tabpanel" id="p-2" aria-labelledby="t-2" tabindex="0" hidden>…</div>
<!-- pill: .eco-tabs--pill (+ --inverse | --brand | --accent) · o‘lcham: --sm | --md | --lg · kenglik: --fill -->

Progress: chiziq va doira

Chiziq — ro‘yxat, karta, jadval va fayl qatorida. Doira — dashboard’dagi bitta asosiy ko‘rsatkich uchun. Qiymat doim raqam bilan ham yoziladi.

.eco-progress-field · holatlar
.eco-progress-field
Yuklanmoqda 50%

27 MB / 60 MB

.eco-progress-field + .eco-progress-row
Yuklanmoqda
40%
.is-complete
Yuklash tugadi 100%Yuklash tugadi

60 MB / 60 MB

.is-error
Yuklanmadi 100%
Light .eco-progress · yorliq joyi
.eco-progress-row
40%
.eco-progress-float
.eco-progress-float--bottom
Dark .eco-progress · yorliq joyi
.eco-progress-row
40%
.eco-progress-float
.eco-progress-float--bottom
Light .eco-progress-circle · xxs · xs · sm · md
38%
xxs · 64
58%Kurs
xs · 160
72%Davomat
sm · 200
86%Vazifalar
md · 240
Dark .eco-progress-circle · xxs · xs · sm · md
38%
xxs · 64
58%Kurs
xs · 160
72%Davomat
sm · 200
86%Vazifalar
md · 240
QismToken / sinfQiymat
Trek--eco-bg-secondary8 px, radius full; kulrang yuzada (karta, fayl qatori) — --eco-bg-tertiary. Chiziqsiz.
To‘ldirish--eco-brand-buttonBrend maydoni rangi — tugma bilan bir xil, har brendda o‘zi. Kengligi — --v (masalan, 64%)
Sarlavha qatori__headChapda yorliq __label va ixtiyoriy info belgisi 16 px (--eco-fg-quaternary, oraliq 8); o‘ngda foiz __value va holat belgisi __status 20 px. Chiziqdan 12.
Matn.eco-progress-fieldInter 500 14/20: yorliq va foiz — --eco-text-secondary; izoh __hint — --eco-text-tertiary, chiziqdan 8
Holatlar.is-complete · .is-errorYuklanmoqda — yuklanish belgisi .eco-loader--sm (Yuklanish); tugadi — belgi --eco-fg-brand-primary; xato — chiziq va belgi --eco-fg-error-primary, izoh o‘rnida xato xabari --eco-text-error-primary
Foiz o‘ngda.eco-progress-row > bsm 500, --eco-text-secondary; chiziqdan 12. Jadval va fayl qatorida — yorliqsiz.
Suzuvchi yorliq.eco-progress-float > bsm 500, --eco-bg-primary_alt, radius md, --eco-shadow-lg, chiziqsiz; to‘ldirish uchida, chetdan chiqmaydi. Pastda — --bottom
Doira.eco-progress-circlexxs 64 · xs 160 (standart) · sm 200 · md 240; halqa qalinligi — 6,4 · 12,8 · 14 · 15,6 px; trek va to‘ldirish — chiziq bilan bir xil tokenlar; qiymat — --p (son)
Doira raqami__vxxs — Inter 500 14/20; xs, sm, md — display-xs, -sm, -md; izoh Inter 500 xs (md’da sm), --eco-text-tertiary

Belgilash: role="progressbar", aria-valuenow, aria-valuemin, aria-valuemax va nom — aria-labelledby (yorliqqa) yoki aria-label; izoh — aria-describedby. Holat belgisi role="status" ichida: yuklash tugaganda ekran o‘qigich yashirin matnni («Yuklash tugadi») o‘qiydi; xato xabari — role="alert". Ikkalasi sahifada oldindan turadi, JS faqat matnini almashtiradi. Aylanuvchi belgi prefers-reduced-motion da to‘xtaydi. Info belgisi — bezak; izoh kerak bo‘lsa, tugma va .eco-tooltip. Suzuvchi yorliq ekran o‘qigichdan yashiriladi — qiymat progressbar’ning o‘zida. Davomiyligi noma’lum jarayonga progress emas, skeleton yoki tugmadagi spinner — Holatlar.

Kod
<div class="eco-progress-field">  <!-- holat: .is-complete | .is-error -->
  <div class="eco-progress-field__head">
    <span class="eco-progress-field__label" id="pf-1">Yuklanmoqda
      <svg class="eco-progress-field__info" aria-hidden="true"><use href="#i-info"/></svg></span>
    <span class="eco-progress-field__value">50%
      <span class="eco-progress-field__status" role="status">
        <span class="eco-loader eco-loader--sm" aria-hidden="true">…</span></span></span>
  </div>
  <div class="eco-progress" role="progressbar" aria-labelledby="pf-1" aria-describedby="pf-1-h"
       aria-valuenow="50" aria-valuemin="0" aria-valuemax="100" style="--v:50%"><span></span></div>
  <p class="eco-progress-field__hint" id="pf-1-h">27 MB / 60 MB</p>
</div>

<div class="eco-progress-circle eco-progress-circle--sm" role="progressbar" aria-label="Davomat"
     aria-valuenow="72" aria-valuemin="0" aria-valuemax="100" style="--p:72">
  <svg viewBox="0 0 100 100" aria-hidden="true">
    <circle cx="50" cy="50" r="45" pathLength="100"/><circle cx="50" cy="50" r="45" pathLength="100"/>
  </svg>
  <span class="eco-progress-circle__v">72%<small>Davomat</small></span>
</div>

Jadval kartasi

Ko‘p obyektni solishtirish va ular ustida amal bajarish uchun: o‘quvchilar, to‘lovlar, arizalar. Sarlavha, saralanadigan ustunlar, belgilash, qator amallari va sahifalash — bitta kartada.

.eco-table-card

O‘quvchilar 248 nafar

Frontend dasturlash · sentabr oqimi

Holat Oxirgi dars Amallar
Bekzod Qodirovbekzod.q@pdp.uz
Faol
74%
21.09.2026
Dilnoza Karimovadilnoza.k@pdp.uz
Faol
82%
21.09.2026
Jasur Tursunovjasur.t@pdp.uz
Qarzdor
55%
19.09.2026
Malika Yusupovamalika.y@pdp.uz
Ta’tilda
38%
02.09.2026
Shahzoda Rahimovashahzoda.r@pdp.uz
Faol
91%
20.09.2026
QismSinfQiymat
Karta.eco-table-card--eco-bg-primary, chiziqsiz va soyasiz, radius xl 12; kulrang yuzada — fon ajratadi
Sarlavha qatori__headNom lg 600 va soni — beyj sm; izoh sm, --eco-text-tertiary; o‘ngda sm tugmalar, oraliq 12. Padding 20/24, telefonda 16.
Ustun sarlavhasith44 px: xs 500, --eco-text-tertiary, fon --eco-bg-secondary
Saralashth[aria-sort] > .eco-table__sortStrelka 16 px --eco-fg-quaternary: o‘sish — tepaga, kamayish — pastga; saralanmagan ustunda — ikki tomonlama belgi
QatortdPadding 16/24, sm --eco-text-tertiary; avatar (40) bilan 72 px. Asosiy katak — .eco-table__person: nom 500 --eco-text-primary, email ostida.
Hover va tanlovtrHover — --eco-bg-primary_hover; belgilangan qator — --eco-bg-secondary
Belgilash.eco-table__checkCheckbox md 20; bosish maydoni 40 × 40 (.eco-table__hit)
Amallar.eco-table__actionsTertiary ikonka tugma 40, oraliq 4; aria-label ichida obyekt nomi
Futer__footSahifalash; padding 12/24/16
Siljish__bodyJadval sig‘masa, faqat karta tanasi gorizontal siljiydi — sahifa emas

Ustun sarlavhasi Untitled UI’da --eco-text-quaternary, bizda — --eco-text-tertiary: yorug‘ rejimda quaternary --eco-bg-secondary ustida 3,98 : 1 beradi, AA emas. Holat — beyj: nuqta va matn, faqat rang emas (Beyjlar). Telefonda (768 px dan tor) ko‘p ustunli jadval qatorlari kartaga aylanadi — Sahifa anatomiyasi; karta ichidagi siljish — planshet va ustuni kam jadvallar uchun. Baholar jurnali — O‘quv komponentlari.

Kod
<div class="eco-table-card">
  <div class="eco-table-card__head">
    <div class="eco-table-card__heading">
      <h2 class="eco-table-card__title" id="st-t">
        O‘quvchilar <span class="eco-badge eco-badge--sm eco-badge--brand">248 nafar</span>
      </h2>
      <p class="eco-table-card__desc">Frontend dasturlash · sentabr oqimi</p>
    </div>
    <div class="eco-table-card__actions">…</div>   <!-- sm tugmalar -->
  </div>
  <div class="eco-table-card__body" tabindex="0" role="region" aria-labelledby="st-t">
    <table class="eco-table" aria-labelledby="st-t">
      <thead><tr>
        <th scope="col" class="eco-table__check">
          <label class="eco-table__hit">
            <input type="checkbox" class="eco-check eco-check--md" aria-label="Barchasini tanlash">
          </label></th>
        <th scope="col" aria-sort="ascending">
          <button type="button" class="eco-table__sort">O‘quvchi
            <svg aria-hidden="true"><use href="#i-arrow-right"/></svg></button></th>
        <th scope="col">Holat</th>
        <th scope="col"><span class="sr-only">Amallar</span></th>
      </tr></thead>
      <tbody><tr>
        <td class="eco-table__check">…</td>
        <td><div class="eco-table__person">
          <span class="eco-avatar" aria-hidden="true">DK</span>
          <div><b>Dilnoza Karimova</b><span>dilnoza.k@pdp.uz</span></div>
        </div></td>
        <td><span class="eco-badge eco-badge--sm eco-badge--success eco-badge--dot">Faol</span></td>
        <td><div class="eco-table__actions">…</div></td>   <!-- tertiary ikonka tugmalar -->
      </tr></tbody>
    </table>
  </div>
  <div class="eco-table-card__foot">…</div>   <!-- .eco-pagination -->
</div>

Sahifalash

Jadval va ro‘yxatni sahifalarga bo‘ladi. Har sahifa — haqiqiy havola (?page=5): brauzerning “Orqaga” tugmasi ishlaydi, havolani ulashsa bo‘ladi.

.eco-pagination · page
tor konteyner · 360 px
.eco-pagination--minimal · karta futeri
  • Sentabr to‘lovi1 200 000 so‘m
  • Avgust to‘lovi1 200 000 so‘m
QismSinf / atributQiymat
Raqam.eco-pagination__page40 × 40, radius md 8, sm 500 --eco-text-quaternary; oraliq 2
Hover:hover--eco-bg-primary_hover, --eco-text-secondary
Joriy sahifaaria-current="page"Fon --eco-bg-tertiary, halqasiz
Oldingi / Keyingi.eco-btn--secondary.eco-btn--smStrelka va matn; birinchi sahifada “Oldingi” — aria-disabled="true"
Uzilish.eco-pagination__gap“…”, --eco-text-tertiary, aria-hidden
Tor konteyner@container (max-width: 600px)Raqamlar o‘rnida “Sahifa 5 / 10”; tugmalar faqat ikonka, 40 × 40 — matn ekran o‘qigich uchun qoladi
Minimal--minimalChapda “Sahifa 1 / 10”, o‘ngda ikki tugma, oraliq 12

Ko‘rsatiladigan raqamlar: birinchi, oxirgi, joriy va uning ikki qo‘shnisi — ko‘pi bilan 7 joy, qolgani “…”. <nav aria-label> nomi sahifadagi har bir sahifalash uchun har xil bo‘lsin. Jadvalda 10 qatordan keyin sahifalash (Sahifa anatomiyasi); yangiliklar lentasi va katalogda — “Yana ko‘rsatish” tugmasi.

Kod
<nav class="eco-pagination" aria-label="Arizalar sahifalari">
  <a class="eco-btn eco-btn--secondary eco-btn--sm eco-pagination__prev" href="?page=4">
    <svg aria-hidden="true"><use href="#i-arrow-left"/></svg><span>Oldingi</span></a>
  <ol class="eco-pagination__pages">
    <li><a class="eco-pagination__page" href="?page=1">1</a></li>
    <li><span class="eco-pagination__gap" aria-hidden="true">…</span></li>
    <li><a class="eco-pagination__page" href="?page=5" aria-current="page">5</a></li>
    …
  </ol>
  <p class="eco-pagination__info">Sahifa 5 / 10</p>   <!-- faqat tor konteynerda ko‘rinadi -->
  <a class="eco-btn eco-btn--secondary eco-btn--sm eco-pagination__next" href="?page=6">
    <span>Keyingi</span><svg aria-hidden="true"><use href="#i-arrow-right"/></svg></a>
</nav>

Modal

Modal ishni to‘xtatib, bitta qaror so‘raydi: tasdiqlash, o‘chirish, qisqa forma. Faqat xabar berish uchun modal ochmang — alert yoki toast yetadi (Holatlar).

.eco-modal · ≤ 480 · overlay ustida

Darsni ko‘chirasizmi?

6-dars 24.09, 19:00 ga ko‘chiriladi. Guruhdagi 18 o‘quvchiga SMS yuboriladi.

Guruhni o‘chirasizmi?

3-guruh va 24 o‘quvchi ro‘yxati o‘chiriladi, baholar arxivda qoladi. Bu amalni qaytarib bo‘lmaydi.

Haqiqiy <dialog>, 640 px: Esc yoki “Bekor qilish” yopadi, fokus ochgan tugmaga qaytadi; xira fonli namuna — 320 px.

Guruh nomini o‘zgartirish

Yangi nom o‘quvchilar kabinetida, jadvalda va SMS xabarlarda ko‘rinadi.

Guruhni o‘chirasizmi?

24 o‘quvchi ro‘yxati o‘chiriladi.

QismSinfQiymat
Overlay.eco-modal-overlay, ::backdrop--eco-bg-overlay, blur yo‘q; --blur — xira fon, 6 px
Panel.eco-modal--eco-bg-primary_alt, radius 4xl 24, --eco-shadow-xl, padding 24; chiziqsiz (ikkala rejimda)
Kenglik--xs, --md, --lg, --cover, --full320 · 480 (standart) · 640 · 800; cover — chetdan 40, balandlik kontentga qarab; full — butun ekran; cover va full — faqat dialog’da; 640 px dan tor ekranda — 100% − 32
Ikonka.eco-featured-icon40, ikonka 16, halqasiz; o‘chirishda — --error
Sarlavha__titlemd 500 · 16/28, ikonkadan 12 pastda
Matn__textsm · 14/24, --eco-text-tertiary, sarlavhadan 8 pastda
Harakatlar__actions20 pastda, oraliq 8, o‘ngda; tugma sm 36 · 14/20, bosish maydoni 40; 640 px dan tor ekranda ustma-ust, to‘liq kenglikda, primary tepada
Yopish__closeTertiary doira 24, xira ikonka 16, bosish maydoni 40; tepadan 16, o‘ngdan 10
Paydo bo‘lisheco-modal-in8 px ko‘tariladi, 200 ms, --eco-ease-emphasized; “Harakatni kamaytirish” yoqilganda yo‘q
  • Mahsulotda — <dialog> va showModal(). Brauzer fonni inert qiladi (fokus modal ichida qoladi), Esc yopadi, yopilgach fokus ochgan tugmaga qaytadi.
  • Nom va izoh: aria-labelledby — sarlavhaga, aria-describedby — matnga.
  • Boshlang‘ich fokus: formada — birinchi maydon, o‘chirishda — “Bekor qilish” (autofocus).
  • div bilan qurilsa hammasi qo‘lda: role="dialog", aria-modal="true", fokusni ichkarida ushlash, Esc, fonga inert va yopilgach fokusni qaytarish.
  • Overlay’ni bosish modalni yopadi — kiritilgan ma’lumot yo‘qolmasa.
  • Modal ustiga modal ochmang. Ikkinchi qadam kerak bo‘lsa, shu modal ichida almashtiring.

Guruhni o‘chirasizmi?

24 o‘quvchi ro‘yxati o‘chiriladi.

Tugma amalni nomlaydi: “O‘chirish”, “Ko‘chirish”.
Kod
<button type="button" class="eco-btn eco-btn--secondary"
        commandfor="del-dlg" command="show-modal">Guruhni o‘chirish</button>

<dialog class="eco-modal" id="del-dlg" aria-labelledby="del-t" aria-describedby="del-d">
  <form method="dialog">
    <span class="eco-featured-icon eco-featured-icon--error">
      <svg aria-hidden="true"><use href="#i-trash-2"/></svg></span>
    <h2 class="eco-modal__title" id="del-t">Guruhni o‘chirasizmi?</h2>
    <p class="eco-modal__text" id="del-d">3-guruh va 24 o‘quvchi ro‘yxati o‘chiriladi.</p>
    <div class="eco-modal__actions">
      <button class="eco-btn eco-btn--tertiary" value="cancel" autofocus>Bekor qilish</button>
      <button class="eco-btn eco-btn--primary-destructive" value="delete">O‘chirish</button>
    </div>
    <button class="eco-btn eco-btn--tertiary eco-btn--icon eco-modal__close" value="cancel" aria-label="Yopish">
      <svg aria-hidden="true"><use href="#i-x"/></svg></button>
  </form>
</dialog>
<!-- JS bilan: dialog.showModal() · dialog.close() · dialog.returnValue — qaysi tugma bosilgani -->

Bo‘sh holat

Ro‘yxat yoki jadvalda ko‘rsatadigan narsa yo‘qligini aytadi va keyingi qadamni beradi. Qaysi holatda qanday matn va qaysi tugma — Holatlar bo‘limida; bu yerda komponentning o‘zi.

.eco-empty · sm · jadval ichida

Topshiriqlar

“Kotlin” bo‘yicha topshiriq topilmadi

So‘zni qisqartiring yoki filtrlarni olib tashlang.

.eco-empty--md · sahifa

Hali hujjat yuklanmagan

Shartnoma va pasport nusxasini yuklang — menejer 1 ish kuni ichida tekshiradi.

QismSinfsm · md
Fon naqshi.eco-empty__artBezaksiz: halqa, halo va gradient yo‘q — faqat ikonka plitkasi
Ikonka.eco-featured-icon--modern40 · 48: --ic-tile — oq yuzada --eco-bg-secondary, kulrang yuzada oq; chiziq va soya yo‘q
Sarlavha__titlemd 600 · lg 600, --eco-text-primary
Izoh__textsm · md, --eco-text-tertiary; blok kengligi 352 · 512
Harakatlar__actionsSecondary va primary, oraliq 12; izohdan 24 · 32 pastda

sm — jadval, karta va panel ichida; md — butun sahifa bo‘sh bo‘lganda. Asosiy harakat bitta; ikkinchisi faqat muqobil yo‘l bo‘lsa: “Filtrlarni tozalash” va “Topshiriq qo‘shish”. Sarlavhada so‘rovni takrorlang, izohda keyingi qadamni ayting.

Kod
<div class="eco-empty">   <!-- butun sahifa uchun: eco-empty eco-empty--md -->
  <div class="eco-empty__art">
    <span class="eco-featured-icon eco-featured-icon--modern eco-featured-icon--md">
      <svg aria-hidden="true"><use href="#i-search"/></svg></span>
  </div>
  <h3 class="eco-empty__title">“Kotlin” bo‘yicha topshiriq topilmadi</h3>
  <p class="eco-empty__text">So‘zni qisqartiring yoki filtrlarni olib tashlang.</p>
  <div class="eco-empty__actions">
    <button type="button" class="eco-btn eco-btn--tertiary">Filtrlarni tozalash</button>
    <button type="button" class="eco-btn eco-btn--primary">Topshiriq qo‘shish</button>
  </div>
</div>

Fayl yuklash

Drop zona va fayllar ro‘yxati. Zona ichida haqiqiy <input type="file"> butun maydonni qoplaydi: bosish, sudrab tashlash va klaviatura (Tab, keyin Enter yoki Space) JavaScript’siz ishlaydi. Formadagi ixcham variant — Formalar.

.eco-dropzone · .eco-file
Loyiha fayllari
  • maket-bosh-sahifa.png

    2,4 MB / 3,8 MBYuklanmoqda

    64%
  • texnik-topshiriq.pdf

    1,2 MBYuklandi

    100%
  • loyiha-arxivi.pdf

    8,6 MBAloqa uzildi, fayl yuklanmadi

holatlar
.is-dragover — fayl zona ustida
disabled — limit to‘lgan
QismSinf / holatQiymat
Zona.eco-dropzone--eco-bg-secondary, chiziqsiz, radius xl 12, padding 16/24, oraliq 12
Ikonka.eco-featured-icon--modern --md40, #i-upload
Matn__text, __hintsm --eco-text-tertiary, “Yuklash uchun bosing” — 600 --eco-text-brand-secondary; izoh xs: format va hajm chegarasi
Hover:hoverFon --eco-bg-secondary_hover
Sudrash.is-dragover2 px --eco-border-brand, fon --eco-bg-brand-primary; JS dragenter / dragleave’da qo‘yadi
Fokusinput:focus-visibleButun zona atrofida 2 px --eco-focus-ring, offset 2
O‘chirilganinput[disabled]--eco-bg-disabled, --eco-border-disabled, --eco-text-disabled; sababi izohda
Fayl qatori.eco-fileRadius xl, padding 16, oraliq 12, fon --eco-bg-secondary, chiziqsiz; xato — oq fon va 2 px --eco-border-error
Nom va holat__name, __metaNom sm 500 --eco-text-secondary; hajm sm tertiary; holat — ikonka va matn (success / error rangida)
Progress.eco-progress-row8 px, foiz o‘ngda
O‘chirish__delTertiary ikonka tugma 40, tepa-o‘ng burchakdan 8

Format va hajmni fayl tanlanishi bilan tekshiring va nima qilishni ayting: “Fayl 14 MB — 10 MB gacha siqing”. Holat faqat rangda emas: ikonka va matn bor. Yuklash tugagani va xatoni ekran o‘qigichga ayting — ro‘yxat yonida role="status" qatori; har bir foizni aytmang.

Kod
<span class="eco-label" id="up-l">Loyiha fayllari</span>
<label class="eco-dropzone">
  <input type="file" class="eco-dropzone__input" multiple accept=".svg,.png,.jpg,.jpeg,.pdf"
         aria-labelledby="up-l" aria-describedby="up-h" title="">
  <span class="eco-featured-icon eco-featured-icon--modern eco-featured-icon--md">
    <svg aria-hidden="true"><use href="#i-upload"/></svg></span>
  <span>
    <span class="eco-dropzone__text"><b>Yuklash uchun bosing</b> yoki sudrab olib keling</span>
    <span class="eco-dropzone__hint" id="up-h">SVG, PNG, JPG yoki PDF (maks. 10 MB)</span>
  </span>
</label>

<ul class="eco-files">
  <li class="eco-file">   <!-- xato: eco-file is-error -->
    <span class="eco-featured-icon eco-featured-icon--modern eco-featured-icon--md">
      <svg aria-hidden="true"><use href="#i-file-text"/></svg></span>
    <div class="eco-file__body">
      <p class="eco-file__name">texnik-topshiriq.pdf</p>
      <p class="eco-file__meta"><span>1,2 MB</span>
        <span class="eco-file__status eco-file__status--ok">…Yuklandi</span></p>
      <div class="eco-progress-row">…</div>
    </div>
    <button type="button" class="eco-btn eco-btn--tertiary eco-btn--icon eco-file__del"
            aria-label="texnik-topshiriq.pdf faylini o‘chirish">…</button>
  </li>
</ul>

Grafiklar

Bitta grafik — bitta fikr

Grafiklarning o‘z tokenlari bor: oltita toifa rangi va ikkita besh pog‘onali shkala. Birinchi seriya har doim brend rangi, qolgan beshtasi — shu brendning o‘z ranglari, qora va kulranglar; rejimni tokenning o‘zi almashtiradi. Har bir grafik bitta savolga javob beradi: bitta seriya ajratiladi, qiymat to‘g‘ridan-to‘g‘ri yoziladi, to‘r deyarli ko‘rinmaydi.

Palitra: olti seriya va ikkita shkala

Tartib qat’iy: seriyalar --eco-chart-1 dan boshlab ketma-ket olinadi va qayta aylanmaydi. 1-seriya — faol brendning rangi (--eco-bg-brand-solid oilasi), 2–6 — shu brendning o‘z ranglari, qora va kulranglar (EcoSystem: yashil, qora, limon, kulrang). Ko‘rsatilgan brend: PDP EcoSystemPDP SchoolPDP UniversityPDP OnlinePDP Junior.

Qorong‘i rejim fon #141414

  1. 1 · Brend#BDFF00lime · brend15,3 : 1
  2. 2 · Oq#F0F0F0neutral-10016,2 : 1
  3. 3 · Yashil#00C508malachite7,9 : 1
  4. 4 · Kulrang#767676neutral-5004,1 : 1
  5. 5 · Kulrang#C7C7C7neutral-30010,9 : 1
  6. 6 · Kulrang#424242neutral-7001,8 : 1
Ketma-ket
--eco-chart-seq-1…5 · kam → ko‘p
Qarama-qarshi
--eco-chart-div-1…5 · pasayish ↔ o‘sish
Farq

+12,4%−3,2%

Yorug‘ rejim fon #FFFFFF

  1. 1 · Brend#00B533malachite-button · brend2,7 : 1
  2. 2 · Qora#222222neutral-90015,9 : 1
  3. 3 · Limon#B5F500lime-light1,3 : 1
  4. 4 · Kulrang#767676neutral-5004,5 : 1
  5. 5 · Kulrang#C7C7C7neutral-3001,7 : 1
  6. 6 · Yashil#E9FED8brand-tint1,1 : 1
Ketma-ket
--eco-chart-seq-1…5 · kam → ko‘p
Qarama-qarshi
--eco-chart-div-1…5 · pasayish ↔ o‘sish
Farq

+12,4%−3,2%

6seriya — ko‘pi bilan. Ortig‘i: naqsh, yorliq yoki ikkinchi grafik
0,13eng yaqin ikki seriya oralig‘i (OKLab ΔE, ikkala rejimda). Talab ≥ 0,10
1,8 / 1,1Fonga nisbatan eng past kontrast (qorong‘i / yorug‘). Talab ≥ 3 : 1
2 × 5Shkala pog‘onalari: ketma-ket va qarama-qarshi

Faqat o‘z ranglari. Seriyalar — brendning o‘z ranglari, qora (Dark’da oq) va kulranglar; boshqa brend rangi (EcoSystem’da ko‘k, sariq, teal, moviy) ishlatilmaydi. Qora — asosiy rang: kulrangni faqat «boshqa» va fon uchun qoldiring. Bir-biriga yaqin ikki yashil yonma-yon turmaydi. Toifali seriya doim shu palitradan olinadi; ketma-ket shkala (yashil zina) — faqat tartiblangan kattalik uchun: issiqlik xaritasi, faollik kalendari, zichlik. Yig‘ish har bir brend va rejimda oltita seriyaning har bir juftligini tekshiradi (OKLab ΔE ≥ 0,10). Yorug‘ rejimda oq fonda limon, och kulrang va brend tusi 3 : 1 ga yetmaydi, shuning uchun rang yolg‘iz belgi emas: har bir seriya yorliq yoki to‘g‘ridan-to‘g‘ri izoh bilan chiqadi.

Chiziqli grafik: vaqt bo‘yicha o‘zgarish

Oylik faol foydalanuvchilar: platformalar

2026-yil, yanvar–avgust · ming kishi

  • Mobil ilova
  • Veb-kabinet
  • Telegram-bot
YanFevMarAprMayIyunIyulAvg
Jadval ko‘rinishi
OyMobil ilovaVeb-kabinetTelegram-bot
Yanvar312186124
Fevral298204138
Mart344231152
Aprel356262171
May372248164
Iyun318276158
Iyul402309196
Avgust468334241

Seriyalar tartib bilan olindi: 1 — mobil ilova, 2 — veb-kabinet, 3 — Telegram-bot. Nom va oxirgi qiymat chiziq uchida, legenda — faqat kalit. Kursorni yuriting yoki grafikni tanlab ← → (Home, End) bosing: chiziq eng yaqin oyni topadi, tooltip avval qiymatni, keyin nomni ko‘rsatadi (sichqoncha va klaviaturada bir xil). Tooltip — qo‘shimcha: har bir qiymat jadvalda ham bor.

Ustun va donut: taqqoslash va ulush

Arizalar manba bo‘yicha

2026-yil, yanvar–sentabr · ajratilgan: Telegram, bir yilda +18%

To‘lov usullari ulushi

Sentabr 2026 · oltita usul, jami 4 820 to‘lov

Payme: 1 590 to‘lov, 33% Click: 1 060 to‘lov, 22% Uzum: 720 to‘lov, 15% Naqd: 530 to‘lov, 11% Bank o‘tkazmasi: 480 to‘lov, 10% Muddatli to‘lov: 440 to‘lov, 9%

Manbalar — nominal toifa, ular seriya emas: barcha ustunlar bitta neytral rangda (--eco-fg-quaternary) fonga yumshatilgan, ostida 100% trek; hikoyadagi bittasi brend tugmasi rangida va o‘sish belgisi bilan. Nom chap ustunda, qiymat o‘ng ustunda, shuning uchun o‘q kerak emas. Donut — faqat ulush uchun va ko‘pi bilan 6 bo‘lak, har biriga to‘g‘ridan-to‘g‘ri yorliq; halqa 12px, bo‘laklar uchi yumaloq, orasida fon oralig‘i. Yettinchi usul paydo bo‘lsa — “Boshqa”ga yig‘iladi va neytral rangda chiqadi. Yaqin qiymatlarni solishtirish kerak bo‘lsa, ustun tanlang.

Shkalalar: ketma-ket va qarama-qarshi

Shaxsiy kabinetdagi faollik

1–21 sentabr · hafta kuni × soat · 100% — eng faol soat

Arizalar o‘zgarishi: manbalar

Sentabr, avgustga nisbatan · foiz · o‘q o‘rtada, 0 = o‘zgarishsiz

Telegram+18% Sayt+9% Instagram+1% YouTube−4% Qo‘ng‘iroq markazi−8% Ko‘rgazmalar−16%

Ikkala shkala ham 5 pog‘ona. Ketma-ket (--eco-chart-seq-1…5) — bitta o‘lchov: issiqlik xaritasi, xarita, zichlik; 1 — eng kam, 5 — eng ko‘p. Yorug‘ rejimda qiymat ortgani sayin to‘qlashadi, qorong‘ida esa yorishadi: ikkala holatda ham eng kam qiymat fonga yaqin turadi. Qarama-qarshi (--eco-chart-div-1…5) — ikki yo‘nalish: pasayish qizilda, o‘sish yashilda, 3-pog‘ona esa nol atrofi va fonga yaqin turadi. Kamalak, qizil–yashil ketma-ket shkala va 5 tadan ortiq pog‘ona ishlatmang. Rang yolg‘iz qolmaydi: har bir qatorda ishora bilan qiymat, katakchalar uchun — kalit va jadval. Aniq son kerak bo‘lsa, jadval bering.

KPI plitka: raqam, farq va trend

Yangi yozilishlar · sentabr

1 284

+12,4% (yaxshi)avgustga nisbatan

Kursni tark etish

6,1%

−0,8 f.p. (yaxshi)avgustga nisbatan

O‘rtacha oylik to‘lov

1,24 mln so‘m

−3,2% (yomon)avgustga nisbatan

Katta raqam oddiy (proportional) shaklda, tabular-nums — faqat o‘q, jadval va ustunlarda. Sparkline — 12 oy, neytral chiziq (seriya emas), joriy oy nuqtasi 1-seriya rangida. Status rangi faqat farqda: rang = yo‘nalish × yaxshimi (tark etish kamaysa — yashil, to‘lov kamaysa — qizil). Muvaffaqiyat, ogohlantirish va xato ranglari holat uchun, seriya uchun emas; ular doim strelka hamda +/− bilan chiqadi.

Qoidalar va o‘lchamlar

1 urg‘uHikoyadagi seriya 1-rangda, qolgani tartib bilan yoki neytralda.
YorliqLegendadan oldin: nom va qiymat chiziq uchida, ustun uchida, bo‘lak yonida.
1px to‘rFaqat gorizontal, --eco-border-tertiary, uzluksiz. Vertikal to‘r va punktir yo‘q.
Tekis3D, soya va gradient yo‘q. Doiraviy grafik — ko‘pi bilan 6 bo‘lak.
960780640400260
Bitta ustunni ajrating, qolganini neytral qiling, qiymatni uchiga yozing.
Seriya va shkala qoidalari
QoidaNima qilinadiToken
Tartib qat’iy1-seriya — har doim faol brendning rangi, qorong‘i va yorug‘ rejimda o‘z pog‘onasi bilan. Keyingilari 2, 3, … tartibida olinadi; boshqa joydan boshlanmaydi va qayta aylanmaydi--eco-chart-1…6
Faqat o‘z ranglari2–6 — shu brendning o‘z ranglari, qora (qop-qora emas, biroz ochroq) va kulranglar. Boshqa brend rangi (masalan, EcoSystem’da ko‘k) ishlatilmaydi; bir-biriga yaqin tuslar yonma-yon turmaydi--eco-chart-2…6
Ko‘pi bilan 6Yettinchi seriya bo‘lmaydi: naqsh yoki to‘g‘ridan-to‘g‘ri yorliq bering, “Boshqa”ga yig‘ing yoki ikkinchi grafikka bo‘ling--eco-chart-6
Neytral — seriya emasFon ustunlar, “Boshqa” va sparkline chizig‘i neytral rangda. Ular legendaga kirmaydi va seriya hisoblanmaydi--eco-fg-quaternary
Ma’no faqat rangda emasHar bir seriyada yorliq yoki to‘g‘ridan-to‘g‘ri izoh; katakchali grafikda kalit va jadval. Faqat rang bilan farqlanadigan grafik chiqmaydi—
Status rangi — holat uchunMuvaffaqiyat, ogohlantirish va xato ranglari faqat holatni (farq, ogohlantirish, xato) bildiradi. Seriya rangi sifatida ishlatilmaydi--eco-text-success-primary, --eco-text-error-primary
Ketma-ket shkalaBitta o‘lchov, 5 pog‘ona: issiqlik xaritasi, xarita, zichlik. Kamalak yo‘q--eco-chart-seq-1…5
Qarama-qarshi shkalaIkki yo‘nalish, o‘rtasi neytral: pasayish ↔ o‘sish. Nol nuqtasi aniq ko‘rsatiladi--eco-chart-div-1…5
Element va o‘lchamlar
ElementQoidaToken
Chiziq va nuqtaChiziq 2px, uchlari yumaloq. Nuqta r = 4px va 2px fon halqasi, faqat oxirgi va tanlangan nuqtada. To‘ldirish — faqat bitta seriyali grafikda, 10%--eco-chart-1…6, --eco-bg-primary
UstunQalinligi 10–16px, uchlari yumaloq; to‘plangan qismlar orasida 2–3px fon oralig‘i, chiziq (stroke) yo‘q; ostida 100% trek--eco-chart-1, --eco-fg-quaternary
KatakchaIssiqlik xaritasida 4px yumaloq, orasida 2px fon oralig‘i; 5 pog‘ona, har biri 20%--eco-chart-seq-1…5
To‘r va asos1px, faqat gorizontal, uzluksiz--eco-border-tertiary, --eco-border-secondary
MatnO‘q yozuvi — IBM Plex Mono, 11px, oy nomlari katta harfda, tabular-nums; yorliq 13px, qiymat 15px/600. Matn hech qachon seriya rangida emas--eco-text-tertiary, --eco-text-primary
FonGrafik --eco-bg-primary ustida turadi. Yorug‘ rejimda limon, och kulrang va brend tusi oq fonda ham 3 : 1 dan past — ular yorliq bilan chiqadi--eco-bg-primary, --eco-bg-secondary
Raqam formati1 284 · 12,4% · 1,24 mln so‘m · 21.09.2026—

Grafiklar

Bitta grafik — bitta fikr

To‘plangan ustun: tarkib vaqt bo‘yicha

Baholar taqsimoti

PDP Hackathon · 4-jamoa · 100 ballik

Frontend · 3-guruh · 100 ballik

9-A · Matematika · 5 ballik

Dasturiy injiniring · 2-kurs · 100 ballik · GPA

Python asoslari · 12-oqim · 100 ballik

Robototexnika · 2-guruh · 3 yulduzli

Sentabr–yanvar · ulush, % · ajratilgan: a’lo

  • A’lo
  • Yaxshi
  • Qoniqarli
Jadval ko‘rinishi
OyA’loYaxshiQoniqarli
Sentabr38%44%18%
Oktabr41%43%16%
Noyabr45%41%14%
Dekabr43%42%15%
Yanvar49%39%12%

To‘plangan ustun — bir butunning qismlari vaqt yoki guruh bo‘yicha qanday o‘zgarayotganini ko‘rsatadi. Har qator 100%; ulush va mutlaq sonni bitta grafikda aralashtirmang. Qismlar ko‘pi bilan 4 ta, tartibi hamma qatorda bir xil; hikoyadagi qism asosda (chapda), uning qiymati qator oxirida yoziladi, qolgani — jadvalda. Qismlar — toifa palitrasidan, tartib bilan: 1 — brend rangi, 2 — qora (Dark’da oq), 3 — limon (Dark’da malaxit). Ketma-ket shkala (yashil zina) qismlar uchun ishlatilmaydi: yonma-yon yaqin yashillar ajralmaydi. Ustun 14px, qismlar orasida 3px fon oralig‘i, tashqi uchlari yumaloq.

Yillik statistika: oylar va KPI juftligi

Yillik statistika (2025)

Yanvar–dekabr · mln so‘m · ustun balandligi — tushum

  • Foyda
  • Xarajat

2025+13,6% (yaxshi)

479 mln so‘m

Yillik tushum, 2024-yilga nisbatan

2025+2,1 f.p. (yaxshi)

59%

Foyda ulushi — tushumdan

Jadval ko‘rinishi
OyTushumFoydaXarajat
Yanvar342014
Fevral281513
Mart452916
Aprel301713
May341915
Iyun301713
Iyul382216
Avgust412417
Sentabr523220
Oktabr472819
Noyabr442618
Dekabr563521

Grafik anatomiyasi

Qaysi savolga qaysi grafik

Chiziq va maydon: trend, kesishma va tooltip

Bitta seriyali maydon — 10% to‘ldirish; to‘plangan maydonda qatlamlar orasida 2px fon oralig‘i. Kursor yoki ← → bilan har nuqta o‘qiladi.

Ustunlar: vertikal, guruhlangan, to‘plangan va 100%

Ustun uchi 6px yumaloq, asosi to‘g‘ri; qo‘shni ustunlar va qismlar orasida 2–3px fon oralig‘i. Hikoyadagi bitta ustun — brend rangida, qolgani neytral.

Ulush: donut, doira, halqa va o‘lchagich

Donut markazida jami; bo‘lak ustiga borilsa — o‘sha bo‘lak qiymati. Doira — 2–3 bo‘lak uchun, ko‘pi bilan 5. Halqa va o‘lchagich — maqsadga nisbatan bitta qiymat.

KPI plitkalar: sparkline, mini ustun va maqsad

Raqam ekranga kirganda noldan sanaladi; animatsiya o‘chirilgan bo‘lsa — darhol yakuniy qiymat.

Faollik kalendari: kun bo‘yicha zichlik

GitHub uslubidagi to‘r: ustun — hafta, qator — kun; 4 pog‘ona ketma-ket shkaladan, bo‘sh kun — fon tusi. Kichik ekranda to‘r gorizontal aylanadi va oxirgi haftadan boshlanadi.

Voronka: qabul va sotuv

Bosqichlar bitta rangda; o‘tishdagi foiz — oldingi bosqichga nisbatan. Eng katta yo‘qotish — hikoya: sarlavha yoki izohda ayting.

Nuqtali, pufakli va radar

Pufak maydoni — uchinchi o‘lchov (radius emas, maydon proporsional). Radar — 3–8 o‘q va ko‘pi bilan 2–3 seriya; aniq taqqoslash uchun ustun yaxshiroq.

Treemap va sharshara

Treemap — ierarxik ulush, katak maydoni qiymatga teng; tus kuchi tartibni ko‘rsatadi. Sharshara — boshlang‘ich va yakuniy jami orasidagi har bir o‘zgarish: o‘sish brend rangida, kamayish qarama-qarshi shkalaning qizilida.

Kombinatsiya: ustun va chiziq, ikki o‘q

Ikkinchi o‘q — faqat birliklar har xil bo‘lganda (dona va %). O‘ng o‘q 0 dan boshlanmaydi — buni ostidagi izohda ayting; har bir o‘q sarlavhada o‘z seriyasi bilan nomlanadi.

Progress va bullet

Progress — bitta raqam va maqsad; vertikal chiziq — vaqt bo‘yicha qayerda bo‘lishimiz kerak edi. Bullet — o‘lchagich o‘rniga: ixcham, qatorma-qator taqqoslanadi.

Oqim: Sankey diagrammasi

Tasma qalinligi — oqim hajmi. Barcha tasmalar neytral, hikoyadagi bitta yo‘l — brend rangida; tugun nomi va qiymati yonida.

Vaqt jadvali: mini Gantt

Bosqich — trek, bajarilgan qismi brend rangida; muhim sana — romb. «Bugun» chizig‘i — yagona vertikal chiziq.

Reyting: tartiblangan ro‘yxat va ustun

Reyting — ustunli grafikning ro‘yxat shakli: o‘rin raqami, nom, ustun va qiymat bir qatorda. Yetakchi — brend rangida.

Katta raqam: grafik — illyustratsiya sifatida

Taqdimot va bannerlar uchun: bitta raqam — PDP Display 500, harf oralig‘i −4%; grafik raqamni bezamaydi, uni isbotlaydi (100 katakli to‘r, trend, ikki ustun).

Holatlar: bo‘sh, yuklanmoqda, xato

Karta o‘lchami uch holatda ham bir xil — sahifa sakramaydi. Yuklanish skeleti grafik shaklini takrorlaydi; xato — sabab va bitta harakat.

Chip turlari

Bitta shakl — to‘rt vazifa

Chip — kichik, ixcham boshqaruv elementi. Ko‘rinishi bir xil (neytral fon, pill yoki 8 px burchak, chiziqsiz), lekin vazifasi to‘rt xil: amalni taklif qiladi, ro‘yxatni filtrlaydi, kiritilgan qiymatni ko‘rsatadi yoki tayyor javobni beradi. Vazifani aralashtirmang — bitta qatorda bitta tur. Asos — .eco-chip (Beyjlar va statuslar); holatni bildiruvchi yorliq — beyj, chip emas. G‘oya — Material Design 3 «Chips» va Apple HIG «Token fields».

Rich tooltip va submenyu

Izoh kengroq bo‘lsa — rich tooltip, menyu chuqurroq bo‘lsa — submenyu

Oddiy tooltip bir qator nom beradi (Tugmalar). Atama, cheklov yoki hisob-kitob tushuntirilishi kerak bo‘lsa — rich tooltip: sarlavha, ikki-uch qator matn va ixtiyoriy havola. Menyuda bir guruh amal juda ko‘payib ketsa — ichma-ich submenyu, faqat bir daraja. G‘oya — Material Design 3 «Rich tooltips», «Cascading menus» va Apple HIG «Popovers».

Buyruqlar va qidiruv

Klaviaturadan bir harakatda: ⌘K, combobox va Kbd

Ko‘p bo‘limli CRM’da sichqoncha bilan menyu izlash sekin. Buyruqlar paneli (⌘K) sahifa, o‘quvchi va amalni bitta qidiruvda topadi; combobox — uzun ro‘yxatdan qidirib tanlash; Kbd — tezkor tugma yorlig‘i. G‘oya — shadcn/ui (Command, Combobox, Kbd), shakl va ranglar — PDP tokenlari.

Sana tanlash

Kalendar, sana va davr: dars, muddat va hisobot uchun

Dars kuni, topshiriq muddati va hisobot davri — CRM’ning eng ko‘p ishlatiladigan maydonlari. Bitta kalendar uch ko‘rinishda: ochiq kalendar, maydon ostida ochiladigan sana tanlash va tayyor davrli oraliq tanlash. G‘oya — shadcn/ui (Calendar, Date Picker), ranglar — PDP tokenlari: tanlangan kun — brend maydoni va oq raqam, oraliq — brend tusi.

Panellar va qatlamlar

Sahifani tark etmasdan: panel, kartochka, menyu va bildirishnoma

Ro‘yxatdan chiqmasdan yozuvni ko‘rish (Sheet), ism ustida qisqa ma’lumot (Hover card), o‘ng tugma menyusi (Context menu) va bir nechta fon jarayonining natijasi (Toast to‘plami). G‘oya — shadcn/ui (Sheet, Drawer, Hover Card, Context Menu, Sonner), yuzalar — .eco-menu va .eco-modal bilan bir xil: oq qatlam, soya, chiziqsiz.

Ma’lumotlar jadvali

Ro‘yxat bilan ishlash: qidirish, filtrlash, tanlash va bir martada amal

CRM’ning asosiy ekrani — o‘quvchi, to‘lov va guruhlar ro‘yxati. Jadval kartasiga (Ilova komponentlari) asboblar qatori qo‘shiladi: qidiruv, faset filtrlar (har qiymat yonida soni), ko‘rinadigan ustunlar, tartiblash, qatorlarni tanlash va ommaviy amallar paneli. G‘oya — shadcn/ui Data Table.

Jadval sozlamalari

Jadval sozlamalari: zichlik, ochiladigan qator va qotirilgan ustun

CRM xodimi kun bo‘yi jadval bilan ishlaydi: kimga ko‘p qator bir ekranda kerak, kimga — keng va o‘qishga oson. Uch zichlik, qator ichida qo‘shimcha ma’lumot (sahifani tark etmasdan) va gorizontal aylantirishda joyida qoladigan birinchi ustun. Qidiruv, filtr, ustunlar tanlovi va ommaviy amallar — Ma’lumotlar jadvali. G‘oya — IBM Carbon (Data table), Gravity UI (TableColumnSetup).

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Tuzilma komponentlari

Ko‘p ma’lumotni tartibda ko‘rsatish: yig‘ma, daraxt, qadam, karusel va panel

Kurs dasturi, papka tuzilmasi, ro‘yxatdan o‘tish bosqichlari, e’lonlar tasmasi va ikki-uch ustunli ish joyi — beshta komponent. G‘oya — shadcn/ui (Accordion, Carousel, Resizable) va Magic UI (File Tree); hammasi klaviatura bilan boshqariladi, «Harakatni kamaytirish»da darhol o‘zgaradi.

Maydon naqshlari

Maydon ichidagi amal, hisoblagich, guruh va xatolar

Maydon anatomiyasi va holatlari — Formalarda (yorliq, izoh, xato matni, prefiks va suffiks). Bu yerda — ulardan yig‘iladigan naqshlar: maydon ichidagi tugma va holat, belgi hisoblagichi, maydonlar guruhi va yo‘nalishi, joyida va umumiy xatolar, tekshiruv vaqti. G‘oya — shadcn/ui (Input Group, Field) va Apple HIG «Entering data».

Teg maydoni

Teg maydoni: bir nechta qiymat bitta maydonda

Kurs teglari, filtrdagi yo‘nalishlar, CRM’dagi mijoz belgilari — bir nechta qiymat, har biri maydon ichida teg bo‘lib turadi. Yozganda ro‘yxat qisqaradi, yo‘q qiymatni yaratish mumkin, Backspace oxirgi tegni olib tashlaydi. Bitta qiymat — combobox. G‘oya — IBM Carbon (Multiselect), Gravity UI (Select multiple), Atlassian (Select).

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Asboblar paneli

Toggle guruh, split tugma, asboblar paneli va menyu paneli

Matn muharriri, jadval va fayl ko‘rinishida bir xil turdagi amallar bir qatorga yig‘iladi. Toggle guruh — bir nechta mustaqil yoqib-o‘chirgich, split tugma — asosiy amal va uning variantlari, asboblar paneli — ≤ 3 guruh, menyu paneli — faqat hujjat muharrirlarida. Bitta tanlov (ko‘rinish, davr) — segment, birlashgan tugmalar — Tutash tugmalar guruhi. G‘oya — shadcn/ui (Toggle Group, Menubar), M3 (Split button, Toolbars), Apple HIG (Toolbars).

Joyida tahrirlash

Joyida tahrirlash va saqlash paneli

CRM’da ko‘p ish — bitta qiymatni tuzatish: guruh nomi, telefon, izoh, holat. Buning uchun alohida forma ochilmaydi: qiymat shu joyda tahrirlanadi va Enter bilan saqlanadi. Bir nechta maydonli sozlamalar sahifasida esa o‘zgarish boshlanishi bilan yuqorida saqlash paneli chiqadi — «Saqlash» va «Bekor qilish» doim bir joyda. Qaror qoidasi — Sozlamalar («darhol yoki Saqlash»), chiqishda so‘rash — Modallik. G‘oya — Atlassian Design System (Inline edit) va Shopify Polaris (Contextual save bar).

Holat ko‘rsatkichlari

Holat ko‘rsatkichlari: shakl, rang va matn birga

Holat faqat rang bilan aytilsa, rangni ajratmaydigan odam (har 12 erkakdan biri) va qora-oq chop etilgan hisobot uni ko‘rmaydi. Shuning uchun holat — uch belgi birga: shakl (ikonka yoki geometrik belgi), rang va so‘z. Beyjlar va statuslar lug‘ati — Beyjlar va statuslar, bildirishnomalar — Bildirishnomalar markazi. G‘oya — IBM Carbon (Status indicators) va Atlassian (Lozenge).

Saqlangan ko‘rinishlar

Saqlangan ko‘rinishlar va faol filtrlar

CRM ro‘yxatini har kuni bir xil filtr bilan ochishadi: «Qarzdorlar», «Bugungi arizalar», «Mening guruhlarim». Saqlangan ko‘rinish — ro‘yxat ustidagi tab: filtr, saralash va qidiruv bitta nom ostida. Filtr o‘zgarsa, «Ko‘rinishni saqlash» chiqadi. Jadval asboblari va ommaviy amallar — Ma’lumotlar jadvali, qidiruv — Qidiruv. G‘oya — Shopify Polaris (Index filters).

Raqam maydoni

Raqam maydoni: kichik sonni bir bosishda o‘zgartirish

Chiptalar soni, guruhdagi o‘rinlar, dars soati, chegirma foizi — chegarasi ma’lum kichik son. Odam raqamni yozishi ham, −/+ bilan bittadan o‘zgartirishi ham mumkin. Katta yoki aniq son (narx, telefon, karta) — oddiy maydon. G‘oya — IBM Carbon (Number input) va Gravity UI (NumberInput).

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Baho va fikr

Baho va fikr: yulduz, shkala va «Foydali bo‘ldimi?»

Kurs va dars sahifasi, tadbirdan keyingi so‘rov, o‘qituvchi kabineti — hamma joyda bir xil savol: «qanday bo‘ldi?». Yulduz bahosi kiritish va ko‘rsatish uchun, baholar taqsimoti, tavsiya shkalasi (NPS, 0–10) va bir bosishli «Foydali bo‘ldimi?». Katta so‘rovnoma — Ilova Forms. G‘oya — Ant Design va MUI (Rating), shadcn/ui (Questionnaire), Vercel Geist (Feedback).

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Teskari sanoq va muddat

Teskari sanoq va muddat: qancha qoldi va qachongacha

Qabul yopilishi, ochiq eshiklar kuni, topshiriq muddati — odam ikki narsani bilishi kerak: qancha vaqt qoldi va aniq qaysi kun, soat nechagacha. Katta sanoq — landing va qabul sahifasi uchun, kichik muddat yorlig‘i — ro‘yxat, karta va kabinet uchun. Sana formati — Yozish qoidalari, tadbir sahifasi — Tadbir sahifasi.

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Video dars pleyeri

Video dars pleyeri: bo‘limlar, tezlik va keyingi dars

Kurs sahifasidagi dars videosi: tabiiy <video> ustida o‘z boshqaruvi — bo‘limli vaqt chizig‘i, tezlik, subtitr, sifat, to‘liq ekran, bo‘limlar ro‘yxati va dars matni, oxirida «Keyingi dars» kartasi. Klaviaturada YouTube’dagi kabi tugmalar. G‘oya — kurs platformalari va Apple HIG (Playing video).

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Kirish sahifalari

Kirish, ro‘yxatdan o‘tish va parolni tiklash

Kirish sahifasi — mahsulotning birinchi ekrani: bitta vazifa, bitta asosiy tugma, ortiqcha narsa yo‘q. Asosiy usul — telefon va SMS kod, e-pochta va parol — ikkinchi yo‘l. Ikki maket: kulrang fonda markaziy karta (ilova, CRM) va ikki ustun (brend paneli bilan — sayt, kabinet). G‘oya — shadcn/ui Blocks (login, signup), maydonlar — Formalar, matnlar — Yozish qoidalari.

Ariza: savol sahifalari

Ko‘p bosqichli ariza: savol, tekshirish va tasdiq

Kursga yozilish, qabul yoki grant arizasi — bir uzun forma emas, qisqa savol sahifalari: har sahifada bitta savol (yoki bir-biriga bog‘liq 2–3 maydon), oxirida «Javoblarni tekshiring» va tasdiq sahifasi. Odam bitta narsaga e’tibor beradi, xato kamayadi, mobilda o‘qish oson. G‘oya — GOV.UK Design System (Question pages, Check answers, Confirmation pages, Dates); maydonlar — Formalar, xatolar — Maydon naqshlari, ko‘p kunlik ariza — Vazifalar ro‘yxati.

Kurs sahifasi

Kurs sahifasi: hero, dastur, o‘qituvchilar, narx va ariza

To‘liq sahifa shabloni — faqat mavjud komponentlardan yig‘ilgan: majburiy bloklar (shapka, hero, raqamlar, CTA band, footer), akkordeon, 3D avatarlar, kartalar, tugmalar va fon naqshlari. Tartib — Sahifa anatomiyasi dagi «Landing» maketi. Namuna 1280 px kenglikda chiziladi va kichraytiriladi; «To‘liq ekranda ochish» — kontent kengligida jonli sahifa, «Telefon» — 390 px.

Qabul sahifasi

Qabul sahifasi: qadamlar, hujjatlar va muddatlar

Qabul yoki grant e’loni — odam bir qarashda bilishi kerak: nima qilish kerak, qaysi hujjat va qachongacha. Sahifa uch savolga javob beradi: qadamlar (Qadam-baqadam yo‘l), hujjatlar (Vazifalar ro‘yxati) va muddatlar (vaqt chizig‘i). Asosiy tugma — ariza oqimiga.

Tadbir sahifasi

Tadbir sahifasi: sana, dastur, ma’ruzachilar va ro‘yxat

Ochiq eshiklar kuni, master-klass yoki hakaton — bitta sahifa: qachon, qayerda, nima bo‘ladi va qanday yoziladi. Dastur — vaqt chizig‘i (Faollik qoidasi: uzuq, och, tugun markazidan), ro‘yxat — Formalar, xarita o‘rnida — token plitkasi (tashqi xarita va rasm yo‘q).

Yangiliklar va maqola

Yangiliklar ro‘yxati va maqola sahifasi

Ikki bog‘liq shablon: ro‘yxat (asosiy material, filtr chiplari, kartalar, doira sahifalash) va maqola (720 px o‘qish ustuni, iqtibos, muallif, ulashish, o‘xshash materiallar). Muqovalar — token maydonlari va fon naqshlari, tashqi rasm yo‘q; chiplar — Chip turlari, sahifalash — Ilova komponentlari.

Aloqa va filiallar

Aloqa sahifasi: kanallar, filiallar, ish vaqti va murojaat

Odam bu sahifaga bitta savol bilan keladi: «qayerga yozay yoki boray?». Avval tezkor kanallar (telefon, Telegram, e-pochta), keyin filiallar — shahar filtri, «hozir ochiq» holati, manzil va mo‘ljal, — oxirida murojaat formasi. Holat — Holat ko‘rsatkichlari, filtr — Chip turlari, forma — Formalar.

Xato sahifalari

Xato sahifalari: nima bo‘ldi va qayerga borish mumkin

Eski havola, server nosozligi, rejali texnik ishlar yoki ruxsat yo‘qligi — har biriga o‘z sahifasi. Hammasi bir xil tuzilishda: shapka va footer joyida, sarlavha nima bo‘lganini aytadi, bitta jumla — sabab va keyingi qadam, pastda — davom etish yo‘llari. Bezak, hazil va «Oops» yo‘q. Kontent ichidagi xato va bo‘sh holat — Holatlar. G‘oya — GOV.UK (Page not found, Service unavailable) va Vercel Geist (Error).

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Email asoslari

Email: bitta maket, har qanday pochta dasturida

Tranzaksion va axborot xatlari uchun yagona asos: 600 px ustun, jadval maketi, inline stillar va tizim shriftlari zaxirasi. Ranglar — EcoSystem tokenlaridan, build vaqtida HEX ga aylanadi; qorong‘i rejim — Apple Mail, iOS va Outlook’da o‘z palitrasi bilan, Gmail inversiyasida logotip buzilmaydi. Tayyor shablonlar — Email shablonlari, imzo — Email imzosi, tekshiruv — Email: tekshiruv. G‘oya — Good Email Code (Parcel), Litmus, Can I Email, MJML va Maizzle chiqishi.

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Email shablonlari

Email shablonlari: 8 ta tayyor xat, uch tilda

Ro‘yxatdan o‘tish, parol, ariza, to‘lov, dars, sertifikat, tadbir va haftalik dayjest — talaba, ota-ona va hamkor eng ko‘p oladigan xatlar. Har biri — yuborishga tayyor HTML va qo‘lda yozilgan matn varianti, o‘zbek, rus va ingliz tilida. Matnlar — namuna: ism, raqam va havolalar o‘rniga mahsulot o‘z ma’lumotini qo‘yadi ({{name}} kabi o‘zgaruvchilar — jadvalda). Asos va qoidalar — Email asoslari.

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Email imzosi

Email imzosi: bitta ko‘rinish hamma xodim uchun

Ism, lavozim, aloqa va logotip — boshqa hech narsa: banner, iqtibos, ijtimoiy tarmoq ikonkalari va emoji yo‘q (brendbuk 7.10). Maydonlarni to‘ldiring, «Imzoni nusxalash»ni bosing va pochta dasturining imzo oynasiga qo‘ying. Har imzoning matn varianti ham bor — oddiy matnli xat va telefon uchun.

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Email: tekshiruv

Email: yuborishdan oldin nimani tekshirish kerak

Xat brauzerda emas, o‘nlab pochta dasturida ochiladi — har birining o‘z cheklovi bor. Quyidagi ro‘yxat har yangi shablon va katta o‘zgarishdan oldin bajariladi; matritsa — qaysi dasturda nimaga qarash kerakligi. DS’dagi 56 fayl build’da avtomatik tekshiriladi: hajm, role="presentation", til, mavzu uzunligi.

Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

Karta turlari

Bitta geometriya, o‘n ikki rol

Karta shaklini emas, mazmuni va fonini o‘zgartiradi. Burchak 24 px va ichki oraliq 24 px har bir rolda bir xil; oddiy karta — --eco-bg-secondary, aksent karta — qora yoki brend aksenti rangida, u ekranda bittadan oshmaydi.

O‘n ikki rol

.eco-card · 24 / 24 · o‘n ikki rol
OflaynOnlayn6 oy

Grafik dizayn

PDP Academy · haftasiga 3 dars

IELTS tayyorlov

PDP School · 9–11-sinf, haftasiga 3 dars

Data Science: kirish

PDP University · qisqa kurs, haftasiga 3 dars

Grafik dizayn

PDP Online · 48 video dars va mentor

Robototexnika

PDP Junior · 8–12 yosh, haftasiga 2 dars

890 000 so‘m oyiga

Yozilish
Kurs · bg-secondary
BugunOnlaynOflayn

Node.js: REST API

Algebra: kvadrat tenglamalar

Ma’lumotlar tuzilmalari

Arduino: svetofor yig‘amiz

  • 19:00 – 20:30
  • 08:30 – 09:15
  • Madina Karimova
  • PDP Online · 3-guruh
  • PDP School · 8-B sinf
  • PDP University · 204-xona
  • PDP Junior · 3-guruh
Dars · bg-secondary

PDP Academy

Oflayn IT kurslar: dasturlash va dizayn

Kurslar
Loyiha · bg-secondary, havola
+1,8 f.p.

92,4%

O‘rtacha davomat · sentabr

Hisobot
KPI · bg-secondary
PDP EcoSystem · 21.09.2026

G‘oliblar aniqlandi

Demo Day’da 18 jamoa chiqish qildi, uchta startap investitsiya oldi.

PDP School · 21.09.2026

Olimpiada g‘oliblari

Shahar matematika olimpiadasida 7 o‘quvchimiz sovrinli o‘rin oldi.

PDP University · 21.09.2026

Qabul natijalari e’lon qilindi

Kunduzgi bakalavriatga 640 talaba qabul qilindi — ro‘yxat shaxsiy kabinetda.

PDP Online · 21.09.2026

Yangi kurs: Python

48 video dars, mentor va amaliy loyihalar — birinchi modul bepul.

PDP Junior · 21.09.2026

Robotlar bellashuvi

18 jamoa o‘z robotini dasturladi, uchtasi respublika bosqichiga chiqdi.

O‘qish
E’lon · qora aksent

Dilnoza Aliyeva

UI/UX dizayn mentori · 6 yil tajriba

Matematika o‘qituvchisi · 6 yil tajriba

Kompyuter fanlari dotsenti · 6 yil tajriba

Robototexnika ustozi · 6 yil tajriba

PDP AcademyPDP Online
MatematikaOlimpiada
BakalavriatMagistratura
UI/UXFigma
RobototexnikaScratch
Mentor · bg-secondary
Sertifikat

Frontend dasturlash

Kurs 21.09.2026 da 94 ball bilan tugatildi.

Yutuq · brend aksenti

ishtirokchi

o‘quvchi

talaba

o‘quvchi

o‘quvchi

Anvar Rahimov

PDP Hackathon · 4-jamoa

9-A · Matematika

Dasturiy injiniring · 2-kurs

Python asoslari · 12-oqim

Robototexnika · 2-guruh

  • Davomat89%
  • Topshiriqlar18 / 20
  • To‘plangan240 ball
  • To‘plangan240 coin
  • To‘plangan240 ball
  • To‘plangan240 ball
  • To‘plangan240 yulduz
Profil · bg-secondary
Kuzgi mavsum
1-chorak
1-semestr
3-hafta
Kuzgi mavsum

O‘zlashtirish

PDP Hackathon · 4-jamoa

9-A · Matematika

Dasturiy injiniring · 2-kurs

Python asoslari · 12-oqim

Robototexnika · 2-guruh

62%

15 / 24 mavzu o‘tildi

Progress · bg-secondary
Muddat: bugun

Demo taqdimoti

Kimyo: elementlar o‘zgarishi

Laboratoriya ishi 3: indekslar

3-hafta testi

Robot yo‘l topadi

Topshirish muddati — bugun, 18:00

Shoshilinch · ogohlantirish foni

Bugungi jadval

3
  1. Ochilish09:00Hozir
  2. Mentorlik sessiyasi10:00
  3. Demo11:00
          Butun jadval
          Ro‘yxat · bg-secondary

          Bugun dars yo‘q

          Keyingi dars — 24.09, 19:00. Shu vaqtgacha uy vazifasini topshiring.

          Jadvalni ochish
          Bo‘sh holat · kulrang fon

          Burchak 24 px — dizayner taklifi (Rahimjon Gaziyev, 28.09.2026). Rollar, fonlar va harakatlar — taklif. Anatomiya, o‘lchamlar va uch daraja (base, interactive, raised) “Kartalar” bo‘limida, bu yerda takrorlanmaydi.

          Qaysi rol nimani ko‘rsatadi

          RolMazmunAsosiy harakatAksent
          KursFormat, muddat, nom, loyiha, narx — so‘m va davr bilan“Yozilish” — primary, pastki qatordaYo‘q; aksent rangi faqat tugmada
          DarsHolat, mavzu, vaqt, o‘qituvchi, xona yoki onlayn havola“Darsga qo‘shilish” — secondary; dars boshlanishiga 10 daqiqa qolganda primary“Bugun” yoki “Jonli” beyji
          LoyihaLoyiha avatari 52 px, nom, bir qator tavsifButun karta — bitta havolaYo‘q; rangni loyiha avatari beradi
          KPIIkonka, delta, katta raqam, izoh va davrYo‘q; kerak bo‘lsa — hisobotga havolaDelta beyji: rang ma’noni bildiradi, yo‘nalishni emas
          E’lonLoyiha, sana, sarlavha, 1–2 qator matnButun karta — maqolaga havolaQora brend maydoni va suv belgisi; ekranda bitta
          MentorAvatar 64 px, ism, yo‘nalish va tajriba, loyihalar“Xabar yozish” — secondaryYo‘q
          YutuqIkonka, turi, kurs nomi, sana va ball“Yuklab olish” — aksent siyohidagi tugmaBrend aksenti foni, bitta siyoh; ekranda bitta
          ProfilKimligi (o‘quvchi, talaba, tinglovchi), avatar 56 px, ism, guruh yoki sinf, 2–3 ko‘rsatkich qatorlarda“Profilni ochish” — secondaryYo‘q; ko‘rsatkichlar oraliq bilan ajraladi — chiziq va ichki karta yo‘q
          ProgressDavr, nom va guruh, katta foiz, progress chizig‘i, “15 / 24” hisobiYo‘q; kerak bo‘lsa — “Davom etish” havolasiChiziq brend rangida; foiz raqam bilan ham yoziladi
          ShoshilinchMuddat beyji, vazifa nomi, aniq muddat: “bugun, 18:00”“Topshirish” — primary, bittaOgohlantirish foni, brend rangi emas; muddati o‘tgan bo‘lsa — xato rangi. Ekranda bitta
          Ro‘yxatSarlavha va soni, 3–5 qator: nom va vaqt; joriy qator — oq fonButun ro‘yxatga havolaYo‘q
          Bo‘sh holatIkonka, nima yo‘qligi, keyingi qadamBitta secondary tugmaYo‘q; kulrang fon, chegarasiz

          Yangi rol kerak bo‘lsa, avval shu o‘n ikkitasidan birini moslang. Bo‘sh, yuklanish va xato holatlari qoidalari — “Holatlar” bo‘limida.

          Aksent kartalar: qora maydon va brend aksenti

          • Ekranda bitta. Ikkinchi aksent karta kerak bo‘lsa, ulardan birini oddiy kartaga qaytaring.
          • Qora maydon — e’lon ovozi: e’lon, tadbir, qabul. Ichiga data-theme="dark" qo‘ying — matn, havola va tugma o‘zi qorong‘i rejimga o‘tadi.
          • Brend aksenti — shaxsiy yutuq: sertifikat, mukofot, reyting. Matn, ikonka va tugma faqat aksent siyohida (--eco-brand-on-accent) — boshqa rang aksent ustida o‘qilmaydi.
          • Qorong‘i rejimda qora karta fon bilan qo‘shilib ketadi — u kulrang yuzaga o‘tadi, burchakdagi suv belgisi (faol brend belgisi) qoladi; chegara yo‘q.
          Kod
          <!-- E’lon: qora maydon, ichida qorong‘i rejim -->
          <a class="eco-card eco-card--interactive eco-card--brand" data-theme="dark" href="/yangiliklar/demo-day">…</a>
          <article class="eco-card eco-card--accent">…</article>
          
          /* Taklif: umumiy CSS’da hali yo‘q — shu ko‘rinishda qo‘shiladi; ranglar faol brenddan */
          .eco-card-list { --card-focus: var(--eco-focus-ring); }  /* fokus — tashqi rejimdan */
          .eco-card--brand { position: relative; overflow: hidden; background: var(--eco-color-black); }
          .eco-card--brand:focus-visible { --focus-c: var(--card-focus); }
          .eco-card--accent {
            --eco-text-primary: var(--eco-brand-on-accent);
            --eco-focus-ring: var(--eco-brand-on-accent);
            background: var(--eco-brand-accent); border-color: transparent;
          }

          Qo‘llanish

          Frontend dasturlash

          8 oy · 1 200 000 so‘m

          UI/UX dizayn

          5 oy · 990 000 so‘m

          Kuzgi qabul ochildi

          Ro‘yxatdan o‘tish 30.09 gacha

          Ekranda bitta aksent karta — ko‘z avval unga tushadi.

          92,4%

          O‘rtacha davomat

          Dilnoza Aliyeva

          Rol faqat mazmunni o‘zgartiradi: burchak 24 px va ichki oraliq 24 px hamma kartada bir xil.
          Sertifikat

          Frontend dasturlash

          Limon kartada matn va tugma — qora: kontrast 15,3 : 1.

          Karta turlari

          Bitta geometriya, o‘n ikki rol

          Raqamli sertifikat

          A4 yotiq · «Orbita»

          Sertifikat

          O‘quv dasturini tamomlagani uchun

          Rahimjon Gaziyev

          PDP Hackathon · 4-jamoa

          Frontend · 3-guruh

          9-A · Matematika

          Dasturiy injiniring · 2-kurs

          Python asoslari · 12-oqim

          Robototexnika · 2-guruh

          Dildora ErgashevaRahbar

          Jasur Toshpulatovmentor

          Jasur Toshpulatovmentor

          Jasur Toshpulatovo‘qituvchi

          Jasur Toshpulatovo‘qituvchi

          Jasur Toshpulatovmentor

          Jasur Toshpulatovustoz

          PDP-2026-4418

          • Gradient muqova yo‘q. Sertifikat — brend grafikasi bilan qog‘oz hujjat: orbita, belgi qurilishi, nuqtali to‘r yoki guilloche. Oltita variant, bosma va raqamli spetsifikatsiya — Sertifikat (Bosma).
          • Ism — eng yirik matn. Keyin dastur va daraja, bir gap natija; ko‘rsatkichlar ixtiyoriy.
          • Imzo o‘rni — ism va lavozim. Skanerlangan imzo va muhr rasmini ekranga qo‘ymang.
          • ID va QR — har sertifikatda; QR tekshirish sahifasiga olib boradi (pdp.uz/verify/{ID}).

          Brend usullari

          Bezak faqat belgidan olinadi

          Nuqtali to‘r, ulanish nurlari, gradient, suv belgisi va “bloom” — EcoSystem sahifasini birinchi qarashdayoq tanitadigan beshta usul. Har biri belgining bir qismidan olingan va o‘z chegarasiga ega: chegaradan chiqsa, bezak matnga xalaqit bera boshlaydi.

          Nuqtali to‘r — X moduli fonda

          to‘r · 12 %

          PDP EcoSystem

          Bitta PDP ID — sakkizta loyiha

          Academy, Online, University va boshqa loyihalarga bitta PDP ID bilan kiring.

          To‘r qadami belgiga bog‘langan: sahifadagi belgi 216 px bo‘lsa, X = 24 px, to‘r ham 24 px. X moduli — Figma’dagi logotip konstruksiyasidan.

          ParametrQiymat
          QadamX = belgi kengligi / 9. Belgisiz joyda 16 · 24 · 32 px
          Nuqta2 px; 32 px qadamda — 3 px
          Rang--eco-text-primary, opacity 8–16 %, asosiysi 12 %
          So‘nishRadial niqob (mask): to‘r bir burchakdan chiqib, chetga qarab yo‘qoladi
          QayerdaHero, bo‘sh holat, bo‘lim foni, muqova
          Qayerda emasJadval, forma, uzun matn, karta ichi
          Qabul ochiqFrontend dasturlash · 01.10.2026 dan
          To‘r jim turadi: 12 %, 16 px qadam, chetga qarab so‘nadi.

          Ulanish nurlari — yadrodan loyihalarga

          loyihalar xaritasi
          YadrodanNur faqat markazdan chiqadi. Loyihalar bir-biriga to‘g‘ridan-to‘g‘ri ulanmaydi.
          1–1,5 pxTo‘g‘ri chiziq, yumaloq uch, o‘qsiz. Rang: qorong‘i rejimda limon; yorug‘ rejimda nur ham, nuqta ham green-600.
          1 halqaBeshta loyiha — bitta halqada, teng oraliqda; markazda EcoSystem.
          ≤ 12Bitta xaritada 12 tagacha nuqta. Undan ko‘p bo‘lsa — ro‘yxat yoki jadval.
          Har bir loyiha yadroga bitta to‘g‘ri nur bilan ulanadi.

          Gradient — faqat katta yuzada

          Figma

          PDP EcoSystem · 2026/27

          Yangi o‘quv yili: sakkiz loyiha, bitta yo‘l

          Ranglar va to‘xtash nuqtalari — Figma: #F2FFC7 0 % · #BDFF00 22 % · #00C508 58 % · #013A04 100 %. Kodda faqat var(--eco-gradient). Qora sarlavha 0–58 % oralig‘ida ≥ 8 : 1; to‘q uchida 1,4 : 1 gacha tushadi. Tor ekranda sarlavha gradient ostiga tushadi.

          Ruxsat

          • Hero lentasi — sahifa boshida, bitta
          • Katta promo banner — qabul, tadbir, yangi loyiha
          • Merch, roll-up va katta bosma — sertifikat va karta muqovasi emas
          • Tadbir ekrani va sahna
          Qabul boshlandi
          Katta qora sarlavha — faqat gradientning och qismida.

          Suv belgisi — kesilgan belgi burchakda

          Light bir rangli · 8 %
          Qabul ochiq

          PDP University · 2026/27 o‘quv yili

          Hujjatlar 01.10.2026 gacha qabul qilinadi. Grant va kontrakt asosida.

          Dark bir rangli · 8 %
          Qabul ochiq

          PDP University · 2026/27 o‘quv yili

          Hujjatlar 01.10.2026 gacha qabul qilinadi. Grant va kontrakt asosida.

          Light qancha kesish mumkin
          20 % — yaxshi
          ⅓ — chegara
          45 % — yadro kesildi

          Rangli doira — yadro: u doim kadr ichida to‘liq qolishi kerak.

          Dark qancha kesish mumkin
          20 % — yaxshi
          ⅓ — chegara
          45 % — yadro kesildi

          Rangli doira — yadro: u doim kadr ichida to‘liq qolishi kerak.

          ≤ ⅓Har bir chetdan ko‘pi bilan uchdan biri kesiladi — yadro doim to‘liq kadrda.
          6–10 %Opacity; bir rangli, --eco-text-primary rangida. Rangli belgi suv belgisi bo‘lmaydi — u logotip.
          BurchakBir yoki ikki chetdan chiqib turadi. Markazda va matn ostida turmaydi.
          BittadanBir kartada yoki ekranda bitta suv belgisi. Aylantirilmaydi.
          PDP Academy1 248 bitiruvchi ishga joylashdi
          Bo‘sh burchakda, 8 %, uchdan biri kesilgan.

          Bloom — imzo harakati

          bir marta · ≈ 1,1 s

          Tizimda “harakatni kamaytirish” yoqilgan — belgi darhol yakuniy holatda ko‘rinadi.

          Yadro
          0–360 ms · slow · emphasized · masshtab 0,6 → 1
          Nurlar
          120 ms dan · har biri slow · 20 ms qadam · yadrodan o‘sadi
          Nuqtalar
          360 ms dan · har biri base · 24 ms qadam · paydo bo‘ladi

          Sahifada bir marta: yuklanishda yoki belgi birinchi ko‘ringanda. Jami 1,2 s dan oshmaydi. Davomiylik va egri chiziqlar — Harakat bo‘limidagi tokenlar.

          Yadro → nurlar → nuqtalar, bir marta, keyin belgi tinch turadi.

          Brend usullari

          Academy’ni tanitadigan usullar

          Brend usullari

          Kurs plitkasi, to‘lqin va «>» belgisi

          Junior brendbuki: 5.3 3D va illyustratsiya, 5.5 Naqsh

          Brend usullari

          Halqa yoyi, kursor izi va nuqtalar

          Online brendbuki: 5.4 Brend elementlari va naqsh

          Brend usullari

          Katak to‘ri, katta belgi va ko‘k parda

          School brendbuki: 5.4 Naqsh va imzo

          Brend usullari

          Yarim doira, nuqtali to‘r va «//»

          University brendbuki: 5.4 Naqsh, 5.5 Kompozitsiya

          Illyustratsiyalar

          Spot illyustratsiyalar: bo‘sh holat, xabar va birinchi qadam

          Bitta obyekt — bitta g‘oya: kitob, noutbuk, kalendar, qulf, bo‘sh quti. Shakllar brend geometriyasidan (doira, pill, halqa bo‘lagi, belgidagi nuqtalar va nurlar), chiziqsiz, ranglar — faqat tokenlar, shuning uchun Light va Dark’da o‘zi almashadi. Ular bo‘sh holat, xabar va onboarding ekranida matnni qo‘llab-quvvatlaydi — o‘rnini bosmaydi. Personaj va 3D qahramon yo‘q (brendbuk, «Foto va illyustratsiya»). Katta muqova va bannerlar uchun — 3D obyektlar. G‘oya — Atlassian, GitLab Pajamas, SAP Fiori, Wikimedia Codex, Carbon, Dropbox va Slack.

          Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

          3D obyektlar

          3D shisha obyektlar: kutubxona, fon va kompozitsiya

          O‘n bitta shisha shakl — halqa, prujina, shar, kub, kristall, yulduz. Ular banner, hero, video muqovasi, taqdimot, SMM va sertifikatga hajm va kayfiyat beradi; mahsulot ichidagi holatlar uchun — tekis illyustratsiyalar. Shakllar mavhum: personaj, maskot va real buyum (telefon, raketa) yo‘q. Manba — Figma Community «3D Elements Pack — 3D Shapes»; litsenziya tekshiruvi brend egasida — tashqi nashrdan oldin aniqlansin.

          Bu bo‘lim hozircha faqat EcoSystem uchun yozilgan. Ko‘rish uchun yuqoridagi brend almashtirgichda EcoSystem’ni tanlang — boshqa loyihalarga tasdiqdan keyin qo‘shiladi.

          Holatlar

          Nima bo‘ldi va endi nima qilish kerak

          Bo‘sh ro‘yxat, yuklanish, xato, muvaffaqiyat, oflayn va yopiq kontent — foydalanuvchi eng ko‘p adashadigan joylar. Har bir holat uchun komponent va matn qolipi bitta: nima bo‘lganini ayting va keyingi qadamni bering. Har bir ma’lumot ekranida uchtasi majburiy: skeleton, amalli bo‘sh holat va qayta urinishli xato.

          Bo‘sh holat: birinchi marta va natija yo‘q

          Light birinchi marta · primary

          Hali kursingiz yo‘q

          Kursga yozilganingizdan keyin dars jadvali va vazifalar shu yerda chiqadi.

          Dark birinchi marta · primary

          Hali kursingiz yo‘q

          Kursga yozilganingizdan keyin dars jadvali va vazifalar shu yerda chiqadi.

          Light natija yo‘q · secondary

          “Kotlin kechki” bo‘yicha kurs topilmadi

          So‘zni qisqartiring yoki filtrlarni olib tashlang. Mobil dasturlashda 4 ta kechki guruh bor.

          Dark natija yo‘q · secondary

          “Kotlin kechki” bo‘yicha kurs topilmadi

          So‘zni qisqartiring yoki filtrlarni olib tashlang. Mobil dasturlashda 4 ta kechki guruh bor.

          Birinchi marta — boshlashga undang: nima paydo bo‘lishini ayting va primary tugma bering. Natija yo‘q — yordam: so‘rovni takrorlang, qanday kengaytirishni ayting, secondary tugma bering. Ikkalasida ham bitta ikonka, bitta qator izoh, bitta harakat.

          Yuklanish: ro‘yxatga skeleton, sahifa va tugmaga — belgi

          Light .eco-skeleton · kurslar ro‘yxati

          Kurslar yuklanmoqda

          Dark .eco-skeleton · kurslar ro‘yxati

          Kurslar yuklanmoqda

          Light .eco-loader--sm · tugmada · kutish vaqti
          1. 0–300 msHech narsa — tez javobda miltillamasin
          2. 300 ms – 10 sSkeleton yoki tugmada yuklanish belgisi
          3. 10 s dan keyin“Odatdagidan uzoqroq davom etmoqda” + Bekor qilish
          Dark .eco-loader--sm · tugmada · kutish vaqti
          1. 0–300 msHech narsa — tez javobda miltillamasin
          2. 300 ms – 10 sSkeleton yoki tugmada yuklanish belgisi
          3. 10 s dan keyin“Odatdagidan uzoqroq davom etmoqda” + Bekor qilish

          Skeleton yakuniy maketni takrorlaydi: rasm, ikki qator matn, beyj. Ro‘yxat va kartalar ustiga spinner qo‘ymang — foydalanuvchi nima yuklanayotganini ko‘rmaydi; butun sahifa yoki harakat kutishi uchun — Yuklanish belgisi. Kutayotgan tugmaga aria-busy="true" va holatni aytadigan aria-label qo‘ying: “To‘lov yuborilmoqda”.

          Xato: maydonda, sahifada, butun ekranda

          Light maydon · .eco-field.is-error

          Raqam to‘liq emas: +998 dan keyin 9 ta raqam kiriting.

          Dark maydon · .eco-field.is-error

          Raqam to‘liq emas: +998 dan keyin 9 ta raqam kiriting.

          Light sahifa · .eco-alert--error
          Dark sahifa · .eco-alert--error
          butun ekran · qayta urinish

          Sahifani ochib bo‘lmadi

          Server hozir javob bermayapti. Kiritgan ma’lumotlaringiz saqlangan — bir daqiqadan keyin qayta urinib ko‘ring.

          Bosh sahifa
          Xato kodi 503 · 21.09.2026, 14:32

          Xatoni u sodir bo‘lgan joyga eng yaqin joyda ko‘rsating. Maydon xatosi — maydon ostida, aria-invalid va aria-describedby bilan. Sahifa xatosi — kontent tepasida, role="alert". Butun ekran — faqat sahifa umuman ochilmasa; xato kodi yordam xizmatiga murojaat uchun.

          Muvaffaqiyat: toast yoki joyida tasdiq

          Light .eco-toast · kichik, qaytariladigan amal
          Dars jadvalga qo‘shildi
          Havola nusxalandi

          Oddiy toast 4 soniya, “Bekor qilish” bo‘lsa 8 soniya turadi; hover va focus’da taymer to‘xtaydi. Ekran pastida, bir vaqtda bittadan. role="status" — ekran o‘quvchi ham eshitadi.

          Dark .eco-toast · kichik, qaytariladigan amal
          Dars jadvalga qo‘shildi
          Havola nusxalandi

          Oddiy toast 4 soniya, “Bekor qilish” bo‘lsa 8 soniya turadi; hover va focus’da taymer to‘xtaydi. Ekran pastida, bir vaqtda bittadan. role="status" — ekran o‘quvchi ham eshitadi.

          Light joyida tasdiq · muhim natija

          Arizangiz qabul qilindi

          Menejerimiz 2 ish kuni ichida +998 90 123 45 67 raqamiga qo‘ng‘iroq qiladi.

          Ariza raqami: TL-20417
          Dark joyida tasdiq · muhim natija

          Arizangiz qabul qilindi

          Menejerimiz 2 ish kuni ichida +998 90 123 45 67 raqamiga qo‘ng‘iroq qiladi.

          Ariza raqami: TL-20417

          Toast — orqaga qaytarsa bo‘ladigan kichik amallar uchun: saqlash, qo‘shish, o‘chirish. To‘lov, ariza, ro‘yxatdan o‘tish kabi muhim natija esa toast’da yo‘qolib ketmasin — shaklning o‘rnida qoladi va keyin nima bo‘lishini aytadi.

          Oflayn va yopiq kontent

          Light oflayn · sahifa tepasidagi banner

          Internet aloqasi yo‘q.

          Oxirgi saqlangan ma’lumot ko‘rsatilmoqda (14:32). Aloqa tiklansa, sahifa o‘zi yangilanadi.

          Javobingiz qurilmada saqlandi — internet qaytganda o‘zi yuboriladi.

          Dark oflayn · sahifa tepasidagi banner

          Internet aloqasi yo‘q.

          Oxirgi saqlangan ma’lumot ko‘rsatilmoqda (14:32). Aloqa tiklansa, sahifa o‘zi yangilanadi.

          Javobingiz qurilmada saqlandi — internet qaytganda o‘zi yuboriladi.

          Light qulf · dars hali ochilmagan
          1. 5-dars. FlexboxBajarildi · 18.09
          2. 6-dars. CSS GridBugun, 19:00
          3. 7-dars. Responsive dizayn6-darsdagi vazifani topshirgach ochiladi
          Dark qulf · dars hali ochilmagan
          1. 5-dars. FlexboxBajarildi · 18.09
          2. 6-dars. CSS GridBugun, 19:00
          3. 7-dars. Responsive dizayn6-darsdagi vazifani topshirgach ochiladi
          ruxsat yo‘q

          Guruh jurnali faqat mentorlar uchun

          Siz o‘quvchi sifatida kirgansiz. Mentor huquqi kerak bo‘lsa, filial administratoriga yozing.

          Yopiq elementni xira qilib yashirmang: matn kontrasti 4,5:1 dan past tushmasin. Qulf ikonkasi va “qachon ochiladi” matni yetarli.

          Holat → komponent → matn

          HolatKomponentMatn qolipiMisol
          Bo‘sh · birinchi martaIkonka + primaryBu yerda nima bo‘ladi + birinchi qadam“Hali kursingiz yo‘q” · Kurs tanlash
          Bo‘sh · natija yo‘qIkonka + secondarySo‘rov + qanday kengaytirish“… bo‘yicha kurs topilmadi” · Filtrlarni tozalash
          Yuklanish.eco-skeleton, .eco-loader--smMatn yo‘q; 10 s dan keyin izoh“Odatdagidan uzoqroq davom etmoqda”
          Maydon xatosi.eco-field.is-errorNima noto‘g‘ri + to‘g‘ri format“Raqam to‘liq emas: 9 ta raqam kiriting”
          Sahifa xatosi.eco-alert--errorNima bo‘lmadi. Nega. Endi nima qilish kerak.“To‘lov o‘tmadi. Kartada mablag‘ yetarli emas…”
          Butun ekran xatosiIkonka + Qayta urinish + kodNima bo‘lmadi + ma’lumot xavfsizmi“Kiritgan ma’lumotlaringiz saqlangan”
          Muvaffaqiyat · kichik.eco-toast + Bekor qilishNima bajarildi, o‘tgan zamonda“Dars jadvalga qo‘shildi”
          Muvaffaqiyat · muhimJoyida tasdiqNatija + keyin nima bo‘ladi, qachon“2 ish kuni ichida qo‘ng‘iroq qilamiz”
          Oflayn.eco-alert--warningAloqa yo‘q + nima saqlandi“Javobingiz qurilmada saqlandi”
          Qulf · ruxsat yo‘qQulf ikonkasi + sababNega yopiq + qanday ochiladi“Vazifani topshirgach ochiladi”
          Ma’lumot.eco-alert--brandNima o‘zgardi + nimaga ta’sir qiladi“Yangi davr boshlandi: baholar qaytadan hisoblanadi”
          Qaytarib bo‘lmaydigan amal.eco-modal + --primary-destructiveSavol + nima yo‘qoladi + “qaytarib bo‘lmaydi”“… o‘chiriladi. Bu amalni qaytarib bo‘lmaydi.”

          To‘lov o‘tmadi.

          Kartada mablag‘ yetarli emas. Boshqa karta tanlang.

          Nima bo‘ldi, nega va endi nima qilish kerak — uchalasi ham.
          Telefon raqami+998 90 12Raqam to‘liq emas: 9 ta raqam kiriting.
          Muammoni ayting, odamni emas.

          Holatlar

          Nima bo‘ldi va endi nima qilish kerak

          Uchta majburiy holat: har bir ma’lumot ekranida

          Ro‘yxat, jadval, grafik yoki karta ma’lumotni serverdan olsa, asosiy ko‘rinishdan tashqari uchta holat ham chiziladi va dasturlanadi: skeleton bilan yuklanish, amalli bo‘sh holat va qayta urinishli xato. Uchalasidan biri bo‘lmasa, ekran tayyor emas — maket ham, kod ham qabul qilinmaydi.

          Light 1 · yuklanish

          Vazifalar

          PDP Hackathon · 4-jamoa

          Frontend · 3-guruh

          9-A · Matematika

          Dasturiy injiniring · 2-kurs

          Python asoslari · 12-oqim

          Robototexnika · 2-guruh

          Vazifalar yuklanmoqda

          Dark 1 · yuklanish

          Vazifalar

          PDP Hackathon · 4-jamoa

          Frontend · 3-guruh

          9-A · Matematika

          Dasturiy injiniring · 2-kurs

          Python asoslari · 12-oqim

          Robototexnika · 2-guruh

          Vazifalar yuklanmoqda

          Light 2 · bo‘sh · harakat bilan

          Vazifalar

          PDP Hackathon · 4-jamoa

          Frontend · 3-guruh

          9-A · Matematika

          Dasturiy injiniring · 2-kurs

          Python asoslari · 12-oqim

          Robototexnika · 2-guruh

          Hozircha vazifa yo‘q

          Yangi vazifa berilganda shu yerda ko‘rinadi.

          Dark 2 · bo‘sh · harakat bilan

          Vazifalar

          PDP Hackathon · 4-jamoa

          Frontend · 3-guruh

          9-A · Matematika

          Dasturiy injiniring · 2-kurs

          Python asoslari · 12-oqim

          Robototexnika · 2-guruh

          Hozircha vazifa yo‘q

          Yangi vazifa berilganda shu yerda ko‘rinadi.

          Light 3 · xato · qayta urinish

          Vazifalar

          PDP Hackathon · 4-jamoa

          Frontend · 3-guruh

          9-A · Matematika

          Dasturiy injiniring · 2-kurs

          Python asoslari · 12-oqim

          Robototexnika · 2-guruh

          Dark 3 · xato · qayta urinish

          Vazifalar

          PDP Hackathon · 4-jamoa

          Frontend · 3-guruh

          9-A · Matematika

          Dasturiy injiniring · 2-kurs

          Python asoslari · 12-oqim

          Robototexnika · 2-guruh

          Hozircha vazifa yo‘q

          Yangi vazifa berilganda shu yerda ko‘rinadi.

          Nima yo‘qligini, qachon paydo bo‘lishini va keyingi qadamni ayting. Xato vidjet ichida qoladi — butun sahifa yiqilmaydi.

          Sahifa xabarlari: beshta ohang

          Light .eco-alert · neytral · brand · success · warning · error

          Dars jadvali o‘zgardi

          Payshanba kungi dars 19:00 ga ko‘chirildi.

          Kuzgi mavsum

          Yangi davr boshlandi: baholar va davomat shu davr uchun qaytadan hisoblanadi.

          Baholar saqlandi

          PDP Hackathon · 4-jamoa · 24 ishtirokchi

          To‘lov muddati yaqin

          3 kun qoldi · PDP ID — bepul

          Dark .eco-alert · neytral · brand · success · warning · error

          Dars jadvali o‘zgardi

          Payshanba kungi dars 19:00 ga ko‘chirildi.

          Kuzgi mavsum

          Yangi davr boshlandi: baholar va davomat shu davr uchun qaytadan hisoblanadi.

          Baholar saqlandi

          PDP Hackathon · 4-jamoa · 24 ishtirokchi

          To‘lov muddati yaqin

          3 kun qoldi · PDP ID — bepul

          Alert — yuza, ramkasiz va soyasiz, burchagi 24: ikonka, sarlavha, qisqa tavsif va ixtiyoriy CTA. Kulrang sahnada alert oq, oq sahnada — kulrang (yuza zinasi). Ohang fon bilan emas, ikonka, sarlavha va CTA rangi bilan beriladi. Ma’lumot (info) uchun alohida rang yo‘q: u faol brend rangi — .eco-alert--brand (sarlavha --eco-text-brand-secondary, ikonka --eco-fg-brand-primary). CTA: neytral alertda .eco-btn--tertiary, brend alertida .eco-btn--secondary — neytral fon va brend matni: ayrim brendlarda tugma rangi muvaffaqiyat yashiliga yaqin, bitta rang ikki ma’no bermasin; success, warning va error alertida .eco-btn--primary — rangini alert beradi. Rang faqat qo‘shimcha signal: ikonka shakli va sarlavha nima bo‘lganini o‘zi aytadi. Dizayner taklifi (Rahimjon Gaziyev, 29.09.2026). Xato — role="alert", qolganlari — role="status".

          Qaytarib bo‘lmaydigan amal: tasdiqlash

          Light .eco-modal · o‘chirish

          Ishtirokchini o‘chirasizmi?

          Anvar Rahimov va uning barcha baholari o‘chiriladi. Bu amalni qaytarib bo‘lmaydi.

          Dark .eco-modal · o‘chirish

          Ishtirokchini o‘chirasizmi?

          Anvar Rahimov va uning barcha baholari o‘chiriladi. Bu amalni qaytarib bo‘lmaydi.

          Light matn va xulq
          • Sarlavha — savol: nima o‘chishini aytadi.
          • Matn: kim yoki nima, u bilan birga nima yo‘qoladi va “qaytarib bo‘lmaydi”.
          • Tugma — fe’l: “O‘chirish” (--primary-destructive), “Ha” emas. Ochilganda fokus “Bekor qilish”da.
          • Qaytarsa bo‘ladigan amal uchun oyna ochilmaydi: darhol bajariladi va toast “Bekor qilish” bilan chiqadi.

          Komponent, o‘lchamlar va klaviatura — Ilova komponentlari → Modal.

          Dark matn va xulq
          • Sarlavha — savol: nima o‘chishini aytadi.
          • Matn: kim yoki nima, u bilan birga nima yo‘qoladi va “qaytarib bo‘lmaydi”.
          • Tugma — fe’l: “O‘chirish” (--primary-destructive), “Ha” emas. Ochilganda fokus “Bekor qilish”da.
          • Qaytarsa bo‘ladigan amal uchun oyna ochilmaydi: darhol bajariladi va toast “Bekor qilish” bilan chiqadi.

          Komponent, o‘lchamlar va klaviatura — Ilova komponentlari → Modal.

          Yuklanish (Loader)

          Yuklanish belgisi: nuqtalar nafas oladi

          Sahifa ochilayotganda yoki harakat bajarilayotganda ko‘rsatiladigan belgi. EcoSystem’da u logotip belgisidan yig‘ilgan: o‘zak, 11 katta va 11 kichik nuqta, ingichka nurlar — nuqtalar markazga yaqinlashib-uzoqlashadi, butun belgi sekin aylanadi. Boshqa brendlarda — o‘sha nafas, faqat brend rangidagi nuqtalar. Ro‘yxat va kartalar uchun — skeleton.

          Majburiy bloklar

          O‘nta blok har bir PDP mahsulotida bir xil

          Foydalanuvchi bir PDP loyihasidan boshqasiga o‘tganda ham o‘zini bitta uyda his qilishi kerak. Shapka, footer, hero, raqamlar, CTA, breadcrumb, qidiruv va filtr, jarayon qadamlari, savol-javob va fikr bloki har bir loyihada shu tuzilishda bo‘ladi — loyiha faqat mazmunni almashtiradi. Tablar va sahifalash — Ilova komponentlari bo‘limida. Namunalar jonli va o‘z kengligiga moslashadi; katta ekranda Mobil tugmasi ularni 390px da ko‘rsatadi.

          Shapka

          Majburiy

          • To‘liq logotip chapda: balandligi 32px, brendbukdagi eng kichik o‘lchamdan kam emas, atrofida himoya maydoni — loyiha bosh sahifasiga olib boradi.
          • Loyiha almashtirgich: joriy loyiha belgisi va nomi; panelda 6 ta loyiha, joriysi aria-current.
          • Asosiy menyu 3–6 punkt, joriy sahifa belgilangan.
          • UZ / RU tanlovi va bitta primary CTA.

          Ixtiyoriy

          • Qidiruv tugmasi (ikonka).
          • Kabinetga kirish: tertiary tugma yoki avatar.
          • Shapka ustida e’lon lentasi: “Qabul 05.10.2026 gacha”.

          Mobilda

          • Balandlik 56px, sticky qoladi.
          • Menyu, til va CTA burger ichiga o‘tadi; CTA panel pastida to‘liq kenglikda, 44px (--lg).
          • Almashtirgichda faqat belgi va strelka; panel ekran kengligida ochiladi.
          footer

          Majburiy

          • Ekotizim loyihalari ro‘yxati — har bir mahsulotda bir xil tartibda.
          • Aloqa: shahar, telefon (tel: havola), email.
          • Ijtimoiy tarmoqlar: ikonka tugmalar, aria-label bilan.
          • © yil va huquqiy havolalar.

          Ixtiyoriy

          • Ish vaqti, filiallar xaritasi.
          • Yangiliklarga obuna (email maydoni).
          • Ilovani yuklab olish tugmalari.

          Mobilda

          • Logotip va tarmoqlar tepada, havola guruhlari 2 ustunda.
          • Aloqa qatori to‘liq kenglikda; har bir havola balandligi ≥ 40px (desktopda 32px, oralig‘i 8px).
          • Pastki qator ustma-ust tushadi.

          Hero

          hero
          Qabul ochiq

          Frontend dasturlashni noldan o‘rganing

          8 oy, haftasiga 3 dars, mentor va real loyihalar. Kurs oxirida — portfolio va ishga tavsiya.

          • Toshkent · oflayn
          • Boshlanish: 05.10.2026
          Keyingi guruh FE-27 · 05.10.2026
          24 joydan 18 tasi band

          Majburiy

          • Sarlavha display shriftida: sahifadagi yagona h1, ≤ 2 qator.
          • 1–2 jumlali izoh: kim uchun va qancha vaqt.
          • Bitta primary + bitta secondary harakat, shu tartibda.

          Ixtiyoriy

          • Holat belgisi sarlavha ustida.
          • Meta qatori: joy, muddat, sana.
          • Media: rasm, video yoki ma’lumot kartasi; fon — qora mini-banner (aksent nuqtali to‘r).

          Mobilda

          • Sarlavha 36px (--eco-text-display-md), 3 qatorgacha.
          • Tugmalar to‘liq kenglikda, primary yuqorida.
          • Media matn ostiga tushadi, balandligi 200px gacha.

          Raqamlar

          stats
          o‘quv yo‘nalishi
          8
          bitiruvchi
          12 000+
          bitiruvchi ishga joylashgan
          87%
          hamkor kompaniya
          140+

          01.09.2026 holatiga · namuna raqamlar

          Majburiy

          • 3–4 raqam, har biri qisqa izoh bilan.
          • Belgi (+, %) raqamga yopishgan, brend rangida; so‘m bo‘sh joy bilan: “1 200 000 so‘m”.
          • Sana yoki manba: “01.09.2026 holatiga”.

          Ixtiyoriy

          • Kichik ikonka izoh yonida.
          • Hisobotga havola.

          Mobilda

          • 2 × 2 panjara, gorizontal scroll yo‘q.
          • Raqam 32px, izoh 2 qatorgacha.

          CTA band

          cta-band

          Birinchi dars — bepul

          Yo‘nalish tanlashda ikkilanyapsizmi? Sinov darsiga keling — mentor bilan birga qaror qilasiz.

          Sinov darsiga yozilish60 daqiqa · oflayn yoki onlayn

          Majburiy

          • Bitta harakat, natijasi aniq: “Sinov darsiga yozilish”, “Batafsil” emas.
          • Brend fon (--eco-bg-brand-solid), ustida faqat brend siyohi — matn va teskari tugma (--eco-text-primary_on-brand).
          • Sahifada bitta, footer’dan oldin.

          Ixtiyoriy

          • Qo‘shimcha kanal: telefon yoki Telegram.
          • Bezak — faol brendning brend usullaridan biri; usullari hali belgilanmagan brendda — bezaksiz. Logotipni aksent fonga qo‘ymang.

          Mobilda

          • Matn va tugma ustma-ust.
          • Tugma to‘liq kenglikda, 44px (--lg); ichki bo‘shliq 24px.

          Breadcrumb

          breadcrumb + sahifa sarlavhasi

          PDP Hackathon · 4-jamoa

          24 ishtirokchi · Katta zal · Kuzgi mavsum

          Majburiy

          • Ikkinchi va undan chuqur sahifalarda; landingda yo‘q.
          • nav aria-label="Sahifa yo‘li" ichida ol.
          • Oxirgi punkt havola emas, aria-current="page".

          Ixtiyoriy

          • Birinchi punkt uy ikonkasi bilan.
          • 5+ darajada o‘rtadagilar “…” ga yig‘iladi.

          Mobilda

          • Faqat ota sahifa: “← Dars jadvali”, bosish maydoni 40px.
          • Bir qator; uzun nom “…” bilan qisqaradi.

          Majburiy bloklar

          Tuzilish — ekotizimniki, mazmun — Academy’niki

          Qidiruv va filtr

          ro‘yxat yoki jadval ustida

          Natija: 24 ishtirokchi

          Majburiy

          • Qidiruv maydoni chapda va eng keng: ikonka, placeholder nimani qidirish mumkinligini aytadi.
          • 1–2 tez filtr (guruh, davr) ko‘rinib turadi; qolgani “Filtr · N” ichida, N — faol filtrlar soni.
          • Faol filtrlar chip bo‘lib ko‘rinadi va bittalab olib tashlanadi; “Tozalash” hammasini tozalaydi.
          • Natija soni role="status" bilan e’lon qilinadi; hech narsa topilmasa — “natija yo‘q” bo‘sh holati.

          Ixtiyoriy

          • Saralash tanlovi o‘ng chetda.
          • Saqlangan filtrlar: “Mening guruhlarim”.
          • Eksport — tertiary tugma.

          Mobilda

          • Qidiruv to‘liq kenglikda, ostida “Filtr · N” tugmasi.
          • Filtrlar pastdan ochiladigan panelda, pastida “Ko‘rsatish (28)” tugmasi.
          • Chiplar bir qatorda, gorizontal scroll bilan.

          Jarayon qadamlari

          qabul · yozilish · onboarding
          1. 1PDP IDBajarildi
          2. 2Loyiha tanlashBajarildi
          3. 3ArizaHozir · 3 ish kuni
          4. 4TasdiqNavbatda
          5. 5BoshlashNavbatda

                    Majburiy

                    • 3–6 qadam, tartib raqami va qisqa nomi bilan; raqam oddiy qalin shriftda.
                    • Joriy qadam brend och fonida va aria-current="step"; tugaganlari “Bajarildi”.
                    • Joriy qadamda muddat: “Hozir · 3 ish kuni”.

                    Ixtiyoriy

                    • Har qadam ostida bir jumla izoh.
                    • Tugagan qadamdan uning natijasiga havola.

                    Mobilda

                    • Qadamlar ustma-ust, raqam chapda.
                    • Qadamlar orasi 4 px oraliq, joriysi fon bilan ajraladi.

                    Savol-javob

                    details · summary · namuna matn
                    PDP ID nima va u qaysi loyihalarda ishlaydi?

                    PDP ID — ekotizimdagi yagona hisob. Bir marta ro‘yxatdan o‘tasiz va Academy, Online, University, School hamda Junior’ga shu hisob bilan kirasiz.

                    To‘lov qanday amalga oshiriladi?

                    Ilova yoki bank kartasi orqali, har oyning 5-sanasigacha. Kvitansiya shaxsiy kabinetda saqlanadi.

                    Dars jadvali qayerda ko‘rinadi?

                    Kabinetning bosh sahifasida. Jadval o‘zgarsa, Telegram va SMS orqali xabar keladi.

                    Hisobimga kira olmayapman. Nima qilay?

                    Telefon raqamingizni kiriting — tasdiqlash kodi SMS orqali keladi. Kod kelmasa, 2 daqiqadan keyin qayta so‘rang.

                    Majburiy

                    • 5–7 savol; eng ko‘p so‘raladigani birinchi va ochiq.
                    • details / summary yoki button[aria-expanded]; butun qator bosiladi, balandligi ≥ 48px.
                    • Javob 1–3 jumla; batafsil ma’lumot — alohida sahifada.

                    Ixtiyoriy

                    • Bir vaqtda bitta javob ochiq (details name).
                    • Oxirida: “Savolingiz qoldimi?” va aloqa havolasi.

                    Mobilda

                    • To‘liq kenglik, savol 3 qatorgacha.
                    • Strelka 180° buriladi; harakat kamaytirilganda burilish yo‘q.

                    Fikr

                    ixtiyoriy · namuna matn

                    Uch loyihaning talabalari bitta jamoada ishladi. Biz uchun eng kuchli nomzodlar shu yerdan chiqdi.

                    Sardor QodirovHamkor · Hackathon 2026
                    o‘rtacha baho, 5 dan
                    4,8
                    do‘stiga tavsiya qiladi
                    94%

                    Majburiy

                    • Haqiqiy fikr, egasining ruxsati bilan; 1–3 jumla, tahrir qilinmaydi.
                    • Ism va rol: kim va qaysi guruh yoki kursdan.
                    • Surat o‘rniga 3D avatar; stok surat ishlatilmaydi.

                    Ixtiyoriy

                    • 2 ta raqam: manba va sana bilan.
                    • 3 tagacha fikr — gorizontal ro‘yxat.

                    Mobilda

                    • Iqtibos 18px, raqamlar ostida 2 ustunda.
                    • Bir nechta fikr — chapga surib ko‘riladi.

                    Sahifa anatomiyasi

                    Sahifa zonalardan yig‘iladi, zonalar tartibi o‘zgarmaydi

                    Landing va’dadan harakatga olib boradi, kabinet “kimman → asosiy raqamlar → bugun nima → tafsilot” tartibida o‘qiladi, maqola esa o‘qish uchun quriladi. Sxemalar zonalar tartibi va nisbatini belgilaydi; rang va mazmun — loyihaniki.

                    Loyiha landing sahifasi

                    desktop 1440 · mobil 390
                    Shapka · 64pxLogotip, loyiha almashtirgich va menyu; sticky.
                    Hero · birinchi ekranVa’da va bitta primary harakat; CTA scroll qilmasdan, birinchi 720px ichida ko‘rinadi.
                    Raqamlar3–4 dalil, darhol hero ostida.
                    Loyihalar yoki kurslar3 ustun, ko‘pi bilan 6 karta va “Barchasi” havolasi.
                    Fikrlar va FAQBitiruvchi fikri va 5–7 savol accordion’da.
                    CTA bandHero’dagi harakat takrorlanadi.
                    FooterPDP loyihalari havolalari va aloqa.
                    Mobil · 390px

                    Zonalar orasi 96px (--eco-spacing-9xl), mobilda 64px (--eco-spacing-7xl). Mobilda tartib o‘zgarmaydi: ustunlar faqat bitta ustunga tushadi. Asosiy CTA mobilda 44–48px (.eco-btn--lg yoki --xl) va to‘liq kenglikda.

                    • Bitta hero, bitta primary harakat; ikkinchi harakat — faqat secondary.
                    • Raqamlar hero’dan darhol keyin: ular ishonch savoliga javob beradi.
                    • Fonlar ritmi: bo‘limlarda --eco-bg-primary va --eco-bg-secondary almashinadi — uchinchi fon qo‘shilmaydi.
                    • Brend yoki to‘q fondagi blok sahifada bitta — odatda CTA band; u hero’dagi harakatni takrorlaydi.

                    Kabinet va dashboard

                    kabinet · desktop va mobil
                    Desktop · sidebar 248px
                    Mobil · 390px
                    • Tartib: kimman → asosiy raqamlar → bugun nima → tafsilot. Zonalar joyini almashtirmang.
                    • Sarlavha qatori: sahifa nomi va o‘ngda bitta primary harakat, masalan “Yangi guruh”.
                    • KPI: 3–4 karta; har birida qiymat, o‘zgarish va davr (“sentabr”).
                    • Kontent: 8 + 4 grid ustuni — grafik va ro‘yxat yonma-yon.
                    • Ma’lumotlar jadvali eng pastda; filtrlar ustida, 10 qatordan keyin sahifalash.
                    • Mobilda sidebar pastki tab bar’ga (har punkt ≥ 48px), KPI gorizontal scroll’ga, jadval kartalarga aylanadi.

                    Maqola va yangilik

                    maqola · matn ustuni 65ch
                    Desktop · ustun markazda, mundarija ≥ 1024px
                    Mobil · 390px
                    • Matn ustuni max-width: 65ch — ekran qancha keng bo‘lmasin, qator 60–75 belgidan oshmaydi.
                    • Sarlavha va meta (muallif, 21.09.2026, o‘qish vaqti) ustun ichida.
                    • Muqova va keng rasm ustundan chiqishi mumkin (880px gacha), matn — hech qachon.
                    • Mundarija ≥ 1024px da o‘ngda sticky, undan torda sarlavha ostida yig‘iladi.
                    • Oxirida: ulashish tugmalari (≥ 40px), teglar va 3 ta o‘xshash maqola.
                    • Mobilda muqova chetdan-chetga, matn 16px, chekka 16px.
                    jonli namuna · 17px asosiy shrift

                    Yangiliklar · 21.09.2026 · 3 daqiqa

                    Kuzgi qabul boshlandi: 12 yo‘nalish, 05.10 gacha

                    Frontend dasturlash, Backend · Node.js va UI/UX dizayn yo‘nalishlari bo‘yicha yangi guruhlar 5-oktabrdan boshlanadi. Ariza qoldirganlar bepul sinov darsiga taklif qilinadi va mentor bilan birga o‘z darajasini aniqlaydi.

                    Qator 60–75 belgidan oshmasa, ko‘z keyingi qatorga adashmay o‘tadi. Shuning uchun ustun kengligi ekranga emas, belgilar soniga bog‘lanadi: max-width: 65ch.

                    Kenglik bo‘yicha moslashuv

                    KenglikNavigatsiyaGridSidebar (kabinet)Jadvallar
                    1440xl · ≥ 1280To‘liq menyu, loyiha almashtirgich, UZ/RU, CTA12 ustun · gutter 24 · konteyner 1280248px, doim ochiqBarcha ustunlar, qator 56px
                    1024lg · ≥ 1024Menyu 4 punktgacha, qolgani “Yana” ichida12 ustun · gutter 24 · chekka 3272px: faqat ikonkalar (tugma 40px) + tooltipIkkinchi darajali ustunlar yashiriladi
                    768md · ≥ 768Logotip, almashtirgich, burger; CTA shapkada qoladi8 ustun · gutter 24 · chekka 32Chapdan drawer, overlay bilanGorizontal scroll, birinchi ustun qotiriladi
                    390< 768Logotip, almashtirgich belgisi va burger; til va CTA menyu ichida; 56px4 ustun · gutter 16 · chekka 16Pastki tab bar: 4–5 punkt, har biri ≥ 48pxHar qator — karta: asosiy qiymat va holat

                    Breakpoint’lar — Untitled UI asosida: xs 600 · sm 640 · md 768 · lg 1024 · xl 1280 · 2xl 1536. xs va sm da ustun, gutter va chekka o‘zgarmaydi — ular komponent ichidagi moslashuv uchun. To‘liq jadval — Oraliq va shakl bo‘limida.

                    Sahifa anatomiyasi

                    Sahifa zonalardan yig‘iladi, zonalar tartibi o‘zgarmaydi

                    Kabinetning birinchi ekrani

                    jonli namuna · hero → raqamlar → bugun

                    Dushanba, 28-sentabr · Kuzgi mavsum

                    Xush kelibsiz, Rahimjon!

                    PDP Hackathon · 4-jamoaBugun 3 ta dars
                    Davomat · Kuzgi mavsum
                    89%+4,2%
                    O‘tgan davrga nisbatan
                    Vazifalar
                    4
                    2 tasi ertaga
                    Umumiy progress
                    62%
                    ball
                    1 240
                    Shu hafta +120

                    Bugungi darslar

                    • 09:00OchilishKatta zal
                    • 11:00Mentorlik sessiyasiKatta zal
                    • 14:00DemoKatta zal

                    Muddatlar

                    • ErtagaDemo taqdimoti23:59 gacha
                    • JumaTest · 3-mavzuBoshlanmagan

                    Xabarlar 2

                    • Ertangi darsga noutbuk olib keling.Mentor
                    • To‘lov qabul qilindi.Administrator
                    • Hero birinchi: ism, guruh, sana va davr, 1–2 tezkor harakat. Yuza — --eco-bg-secondary; brend maydoni yoki surat shart emas.
                    • Faqat bitta KPI kengroq (1,55 : 1 : 1 : 1) — shu ekranning asosiy metrikasi; qolganlari teng.
                    • “Bugun · muddatlar · xabarlar” — uchta teng ustun.
                    • O‘quv ma’lumoti — progress, baho, muddat — texnik ma’lumotdan (qurilma, sozlama, ID) oldin turadi.
                    • Kartalar orasi 16–24px shkaladan (--eco-spacing-xl … 3xl); zichroq qilmang.
                    • Mobilda hero ixcham, KPI 2 × 2 (asosiysi to‘liq kenglikda), ustunlar ustma-ust.

                    Interaktiv holatlar

                    Har bir bosiladigan element besh holatni bir xil ko‘rsatadi

                    Hover, fokus, bosilgan, tanlangan va o‘chirilgan — bu holatlar tugma, chip, ro‘yxat qatori va kartada bir xil qonun bilan ishlaydi. Material Design 3 bunga shaffof «holat qatlami» (8–16 %) beradi; PDP’da esa holat — tayyor tonal qadam: rangli maydon to‘qroq tusga, neytral maydon bir pog‘ona to‘qroqqa, fonsiz element neytral fonga o‘tadi. Yangi token yo‘q — hammasi mavjud --eco-bg-*_hover va tugma tokenlaridan.

                    Moslashuvchan maket

                    Qurilma emas — oyna kengligi qaror qiladi

                    Bir xil ekran telefonda, planshetda, noutbukda va keng monitorda ochiladi, yana brauzer oynasi istalgan kenglikka toraytiriladi. Shuning uchun maket qurilma turiga emas, to‘rtta oyna sinfiga qarab quriladi: har sinfda navigatsiya turi, panellar soni va ustunlar oldindan kelishilgan. Sinflar — mavjud breakpoint’lar (Oraliq va shakl) ustidagi qoidalar, yangi qiymat emas. G‘oya — Material Design 3 «window size classes» va Apple HIG «size classes».

                    Yozish qoidalari

                    Interfeys matni — mahsulotning ovozi

                    Tugma, sarlavha, xato va bo‘sh holat matni — foydalanuvchi eng ko‘p o‘qiydigan matn. U bir xil ovozda, sodda o‘zbek tilida va bir xil atamalar bilan yozilsa, odam ekranni o‘rganmaydi — tanib oladi. Qoidalar o‘zbekcha matn uchun; ruscha va inglizcha tarjima shu ma’noni saqlaydi. G‘oya — Apple HIG «Writing» va Material Design 3 «Content design».

                    Mikromatn kutubxonasi

                    Mikromatn: 310 ta tayyor matn uch tilda

                    Tugma, maydon, xato, bo‘sh holat, push, to‘lov va dars matnlari — o‘zbekcha (manba), ruscha va inglizcha bir qatorda, qayerda ishlatilishi, eng ko‘p uzunligi va ohangi bilan. Matnni nusxalang yoki butun kutubxonani JSON va CSV qilib oling. Ovoz va qoidalar — Yozish qoidalari, sana, son va pul — Sana, raqam va pul, imlo — Imlo va tinish belgilari. G‘oya — GOV.UK, Shopify Polaris, Atlassian va Microsoft Style Guide.

                    Onboarding va ruxsatlar

                    Birinchi daqiqada ishlata boshlasin — o‘qishni keyinga qoldiring

                    Yangi foydalanuvchi ilovani o‘rganish uchun emas, dars jadvalini ko‘rish yoki vazifa topshirish uchun ochadi. Shuning uchun onboarding — slaydlar to‘plami emas: standart qiymatlar bilan darhol ishlaydigan ekran, kerak joyda bitta maslahat va ixtiyoriy «boshlash ro‘yxati». Ruxsat (bildirishnoma, kamera, joylashuv) — faqat o‘sha funksiya ishlatilayotganda so‘raladi. G‘oya — Apple HIG «Onboarding» va «Privacy».

                    Ma’lumot kiritish

                    Yozdirmang — tanlating, to‘ldiring, eslab qoling

                    Har bir qo‘lda yoziladigan maydon — xato ehtimoli va telefon klaviaturasida bir necha soniya. Ma’lumot tizimda bo‘lsa — oldindan to‘ldiriladi, variantlar oz bo‘lsa — tanlovga aylanadi, uzun matn — o‘zi saqlanadi. Maydon anatomiyasi, holatlar va xato matni — Formalar bo‘limida; bu yerda — maydonlar orasidagi qarorlar va vaqt tanlagich. G‘oya — Apple HIG «Entering data» va Material Design 3 «Time pickers».

                    Modallik

                    Ishni to‘xtatish — faqat jiddiy sabab bilan

                    Modal oyna orqadagi ekranni to‘sadi va javob kutadi. Bu kuchli vosita: muhim qaror, qisqa alohida vazifa yoki ma’lumot yo‘qolishidan himoya uchun. Qolgan hamma narsa — joyida, toast’da yoki modalsiz yon varaqda. Bu bo‘lim qaysi qatlamni tanlash va uni qanday yopishni belgilaydi; komponentlarning o‘zi — Ilova komponentlari (modal) va UI-kit bloklari (varaq). G‘oya — Apple HIG «Modality» va Material Design 3 «Dialogs», «Sheets».

                    Sozlamalar

                    Kam sozlama, yaxshi standart qiymat

                    Har bir yangi sozlama — kimdir bir marta qaror qilmagan savol. Shuning uchun standart qiymat ko‘pchilikka mos tanlanadi, Sozlamalar sahifasida esa faqat kamdan-kam o‘zgaradigan narsalar qoladi: profil, bildirishnomalar, til va rejim, xavfsizlik, ruxsatlar. Ro‘yxatni saralash yoki ko‘rinishni almashtirish — o‘sha ekranning o‘zida. G‘oya — Apple HIG «Settings».

                    Ma’lumot vizualizatsiyasi

                    Grafik savolga javob beradi — bezak emas

                    Grafik turi ma’lumotdan emas, savoldan tanlanadi: «qancha?», «qanday o‘zgardi?», «kim ko‘proq?». Sarlavha xulosani aytadi, rang — faqat ajratish uchun, aniq qiymat kerak bo‘lsa — jadval. Palitra, grafik turlari va KPI plitka — Grafiklar bo‘limida; bu yerda — qaror va o‘qish qoidalari. G‘oya — Apple HIG (Charts, Charting data, Gauges) va Material Design 3.

                    Inklyuziv til

                    Har kim o‘zini shu yerda ko‘radi

                    PDP o‘quvchilari — 7 yoshli boladan katta yoshdagi mutaxassisgacha, Toshkentdan Nukusgacha, o‘zbek va rus tilida, turli imkoniyat va daromad bilan. Matn, misol va rasm hech kimni chetda qoldirmasin: to‘g‘ridan-to‘g‘ri murojaat, oddiy til, faqat kerakli shaxsiy savol. Ovoz, imlo va lug‘at — Yozish qoidalari, texnik talablar — Foydalanish qulayligi. G‘oya — Apple HIG «Inclusion».

                    Vazifalar ro‘yxati

                    Vazifalar ro‘yxati: bir necha kunda to‘ldiriladigan ariza

                    Qabul arizasi, grant yoki o‘qishni ko‘chirish — bir o‘tirishda tugamaydi: hujjat skaneri, to‘lov, shartnoma. Vazifalar ro‘yxati qaysi qism tayyor, qaysi biri qolganini ko‘rsatadi; odam istalgan tartibda to‘ldiradi va keyin qaytadi. Bitta o‘tirishda tugaydigan oqim uchun — Ariza: savol sahifalari, birinchi kun qadamlari — Onboarding. G‘oya — GOV.UK Design System (Task list).

                    Qadam-baqadam yo‘l

                    Qadam-baqadam yo‘l: bir necha sahifadan iborat jarayon

                    «Qanday o‘qishga kiraman?», «Sertifikatni qanday olaman?» — javob bir sahifada emas: katalog, ariza, shartnoma, to‘lov, kabinet. Qadam-baqadam yo‘l bularni tartib bilan bitta ro‘yxatga yig‘adi — alohida sahifa sifatida va har bir bog‘liq sahifaning yon panelida («Bu yo‘lning bir qismi»). Bitta forma ichidagi qadamlar — Stepper, ko‘p kunlik ariza — Vazifalar ro‘yxati. G‘oya — GOV.UK Design System (Step by step navigation).

                    PDP Design System v0.7 · brend: PDP EcoSystembrend: PDP Academybrend: PDP Schoolbrend: PDP Universitybrend: PDP Onlinebrend: PDP Junior Barcha loyihalar · PDP School DS v1.0 · © 2026 PDP Dizayner — Rahim Sadiy · RedFox