GH GambleHub

Mobile-safe дизайн

1) Mobile-safe принциптері

1. Thumb-first: әрекет ету аймағы - бас саусақтың шегінде (төменгі навигация, FAB/primary төменнен оң жақта).
2. Touch-friendly: 40-48 px ≥ мақсаттар; қашықтық ≥ 8-12 px.
3. Safe-area by design: 'env (safe-area-inset-') 'қиықтарын/ымдау аймақтарын ескереміз.
4. Жылдамдық «сұлулықтан» маңызды: LCP ≤ 2. 5 c. INP ≤ 200 мс. CLS ≤ 0. 1 (p75).
5. Ұстамдылық: минималды модалкалар, минималды пішіндер, максималды автотолтырулар.
6. Желілер мен батарея: үнемді трафик, офлайн режимі, сауатты ретрайлер.


2) Тор, брейк пункттері және safe-area

Брейкпоинттер: ≤ 480 (мобайл), 481-768 (тік планшет), 769-1024 (көлденең планшет).
Max-width бар контейнерлер, икемді карточкалар 1-2 бағандар.
Төменгі панельдер ≥ 56 px, қадамдық навигация үшін қор.

CSS:
css
:root { --inset-b: env(safe-area-inset-bottom); --inset-t: env(safe-area-inset-top); }
.app { padding-bottom: calc(16px + var(--inset-b)); padding-top: calc(8px + var(--inset-t)); }

3) Мәтін, батырмалар және интеракциялар

Мәтін: 16-18 px негізгі, жоларалық 1. 4–1. 6, жолдың ұзындығы 40-70 таңбадан тұрады.
Түймешіктер: биіктігі 44-52 px, айқын фокус/актив/disabled; белгі + мәтін, тек белгі емес.
Әрдайым қимылға балама болады (түймешік/мәзір/ыстық нүкте).
Анимациялар - 'transform/opacity' және 'prefers-reduced-motion' -ды құрметтейді.


4) Пішіндер, пернетақта және автотолтыру

Өрістерді барынша азайтыңыз, inputmode/type және autocomplete пайдаланыңыз:
html
<input type="email" inputmode="email" autocomplete="email">
<input type="tel" inputmode="tel" autocomplete="tel">
<input type="number" inputmode="numeric" pattern="[0-9]">
<input type="text" autocomplete="one-time-code" />

Маскалар жұмсақ (пішімін көрсетеміз, бірақ енгізуді бұзбаймыз).

Автокапс/мағынасы бойынша автокоррекция (' autocapitalize =" sentencesoff"`).
Кеңестер/қателер өрістің жанында және скринридер үшін қол жетімді ('aria-describedby').

5) Навигация және экрандар архитектурасы

Төменгі навигация (5 тармаққа дейін) + «артқа» белгісі.
Мақсатты қолдануға дейін 3-5 тапқа дейін.
Сындарлы бөлімдер үшін «гамбургерден» аулақ болыңыз; tab/segmented пайдаланыңыз.
UI жай-күйі: 'loading/empty/error/success' - анық, әрекеттері мен түсініктемелері бар.


6) Өнімділік және үнемдеу

Code-split және жалқау виджеттер; кестелерді/карталарды «талап ету бойынша» тиейміз.
Критикалық ресурстар - 'preload', қалғаны - 'defer '/' lazy'.
AVIF/WebP + 'srcset/sizes', 'loading =' lazy 'суреттері.
Қаріптер: 1 variable WOFF2, 'font-display: swap', preload тек негізгі.
Service Worker (PWA), 'stale-while-revalidate' арқылы кэштеу және офлайн.


7) Желілер, офлайн және ретра

3G/жоғары кідіріске достық: сұрау лимиті, батчинг, jittered backoff.
Қатер шегіндегі деректер кэшімен және үндестіру кезегімен офлайн-экран.
Деректерді үнемдеуді құрметтеу: Client Hints/Save-Data → жеңіл бейнелер, автоматты бейне жоқ.

JS (деректер/желі детекторы):
js const saveData = navigator.connection?.saveData;
const slow = ['slow-2g','2g'].includes(navigator.connection?.effectiveType);
if (saveData          slow) enableLiteMode(); // менее тяжелые ресурсы

8) Мобильдегі қолжетімділік (A11y)

Пернетақта/ауыстырып қосқыштармен толық басқарылуы және оқылатын фокус.
Контраст ≥ WCAG AA, баламалар мәтіні ('alt', 'aria-label').
Үлкен таргеттер және анимация үзілісі; қимылдар түймешіктермен қайталанады.
Диаграммалар үшін - қысқаша мәтіндік түйіндеме және деректер кестесі.


9) Қараңғы тақырып, жарықтылық және haptics

Қараңғы тақырып - жай ғана инверсия емес; қарама-қайшылықтар мен түсті екпіндерді тексеріңіз.
Жүйелік тақырыпты құрметтеңіз ('prefers-color-scheme').
Haptics - дозаланған (жетістік/қате), ажырату мүмкіндігі.


10) Құпиялылық, рұқсаттар және қауіпсіздік

Тек құндылық сәтіндегі рұқсаттар (камера → құжат сканері).
«Не үшін» және рұқсатсыз fallback түсініктемесі.
WebAuthn/парольдің орнына биометрия; құпия сөз менеджерлеріне қолдау көрсетіледі.
Бұрау кезінде сезімтал өрістерді жасырыңыз; ескерту уақыты.


11) Пуш-хабарламалар және фондық міндеттер

Анық құнды сценарийлер, бөлуге болмайды; тыныш сағат.
One-tap unsubscribe және артықшылықтар орталығы.
Фонды синкалар - шағын порциялармен, батарея/желі бойынша шектеулермен.


12) Бейнелер, медиа және бейімделу

Берілген өлшемді Placeholder → нөлдік CLS.
Әдепкі бейне автоплейсіз, субтитрлері мен бақылаулары бар; бейімделетін битрейттер.
Иконалар - вектор (SVG) немесе спрайт; 1 МБ жинақтарды тиемеңіз.


13) Сниппеттер және баптаулар

meta viewport және акценттер:
html
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="theme-color" content="#11131A">
Орналасуды тұрақтандыру және экраннан тыс жасыру:
css
.card { content-visibility: auto; contain-intrinsic-size: 600px 400px; }
Төмендетілген қозғалыс режимі:
css
@media (prefers-reduced-motion: reduce) { { animation: none!important; transition: none!important; } }

14) Тест-жоспар (минимум)

Құрылғылар: 1 iOS + 1 Android (шағын/орта/үлкен экран), портрет/ландшафт.
Желілер: офлайн, 3G, 4G (throttle); Save-Data бағдарламасын қосу.
Қол жетімділік: VoiceOver/TalkBack сценарийлері, пернетақта жолы, қарама-қарсылық.
Перфоманс: Web-Vitals (RUM), кескіндеуші; үлкен тізімдер, енгізу/скролл/қимылдар.
Тұрақтылық: ротация, бұрылу/қайту, процесті өлтіру → қалпына келтіру.
Қауіпсіздік: рұқсаттар, сессияның таймауты, жеке деректерді жасыру, биометрия.


15) Mobile-safe өлшемдері

LCP/INP/CLS (p75, тек мобайл).
Time-to-Action (бастапқы мақсатты басуға дейін).
Tap Accuracy (жақын элементтердің жалған таптарының үлесі).
Crash-free sessions/ANR rate (бағдарламалар/вебвью).
Data per session және Battery impact (өң/алдыңғы жоспар).
Opt-in/opt-out мамықтары және engagement.


16) Қарсы үлгілер

28-32 px батырмалар, тығыз тізімдер, өрісі жоқ «карталар» - қателіктер.
Мәтін 12-14 px ашық сұр фонда.
Модальдардың үстінен модальдар; тек қимылмен жабу.
3G/Save-Data бейне/анимацияларды автоойнату.
«Тек қимылмен», түймешіксіз/мәзірсіз.
Ескерілмеген safe-area → мазмұнды «шелек» немесе свайп панелімен жабу.


17) Экранның чек-парағы

  • Таргеттер ≥ 48 px, шегіністер ≥ 8-12 px
  • Safe-area учтен (`viewport-fit=cover`, `env(safe-area-inset-)`)
  • Мәтін ≥ 16 px, контраст AA, фокус/актив көрінетін
  • Пішіндер: 'type/inputmode/autocomplete' дұрыс, автотолтыру жұмыс істейді
  • LCP ≤ 2. 5 c. INP ≤ 200 мс. CLS ≤ 0. 1 (мобайл)
  • Ауыр блоктарды жүктеу, downsampling тізімдері
  • Офлайн экран, backoff ретрайлері, Save-Data режимі
  • Мылтықтар мен рұқсаттар - талап бойынша, түсініктемемен және бас тартумен
  • Қараңғы тақырып және reduced-motion қолдау тапты
  • Тесттер: iOS/Android, портрет/ландшафт, 3G/офлайн, SR-өту

18) Енгізу жоспары (3 итерация)

1-итерация - Негіздері (1-2 апта):
  • Тор және safe-area, 48 px таргеттер, пернетақта түрлері/автотолтыру, негізгі Web-Vitals, lazy кескіндер, қараңғы тақырып.
Итерация 2 - Өнімділік және тұрақтылық (3-4 апта):
  • Code-split, content-visibility, офлайн + SW, Save-Data режимі, ретра/кезектер, жағдайды қалпына келтіру, A11y-аудит.
3-итерация - Оңтайландыру және масштаб (үздіксіз):
  • RUM-дашбордтар, трафикті/батареяны талдау, haptics, рұқсат сценарийлері, тізімдерді жақсарту (виртуалдандыру), ұялы желілердің тұрақты game-days.

19) Шағын FAQ

Жеке «мобайл-мәзір» қажет пе?
Иә, бірақ басымдық - 3-5 тармақты төменгі навигация; гамбургер - екінші дәрежелі үшін.

Батырмалар бойынша қателерді қалай азайтуға болады?
Мақсаттарды 48 px-ке дейін ұлғайтыңыз, айналадағы өрістерді қосыңыз, тігінен бөліңіз, haptic-ті «табысқа/қатеге» пайдаланыңыз.

Офлайн міндетті бе?
Сыни сценарийлер үшін - иә: кэш, әрекет кезегі және пайдаланушыға адал кеңестер.


Жиынтық

Mobile-safe дизайн - бұл сенсорлық эргономика, safe-area есебі, өнімділік, қолжетімділік және желілерге/батареяға төзімділік үйлесімі. Чек парақтарын орындаңыз, Web-Vitals-ді нақты пайдаланушылардан өлшеңіз, құпиялылықты және жүйелік параметрлерді құрметтеңіз - және сіздің интерфейсіңіз кез келген мобильді құрылғыда ыңғайлы және сенімді болады.

Contact

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

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

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

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

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

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