GH GambleHub

Бағыттау әсерлері және интерактивтілік

1) UX бағыттау рөлі

Hover/press/focus - кері байланыс тілі. Пайдаланушы дереу түсінуі тиіс:
  • «Бұл интерактивті ме?» (бағыттау/меңзер/жарықтандыру),
  • «Мен қайда?» (фокус-стиль),
  • «Нұқу арқылы не болады?» (жай-күйі және affordance),
  • «Әрекет болды ма?» (active/pressed және келесі feedback).

Принцип: әсерлер мағынаны күшейтеді, оны алмастырмайды. Негізгі ақпарат және әрекетке қолжетімділік тек бағыттау үшін жасырылмауы тиіс.

2) Жай-күй моделі және семантика

Негізгі жиынтық: 'default' → 'hover' → 'focus' → 'active/pressed' → 'disabled' → 'loading' (қосымша).
Сілтемелер үшін 'visited', ауыстырып қосқыштар үшін 'checked' қосыңыз.

Айырмашылыққа қойылатын талаптар:
  • Жай-күйлердің арасында - тек түсімен емес, пішінімен/қалыңдығымен/белгісімен көзбен шолу айырмасы.
  • Мәтіннің/белгішенің фонға қарама-қайшылығы: ≥ 4. 5:1 (кәдімгі мәтін), ≥ 3:1 (ірі/майлы).
  • Фокус бағыттаусыз көрінеді (пернетақта/скринридер).

3) Құрылғылар және медиа-сұраулар

Бәрі бірдей hover емес. Әртүрлі енгізу түрлеріне арналған интерактивтілікті жоспарлаңыз:
css
/ There is an exact pointer and hover (mouse/trackpad )/
@ media (hover: hover) and (pointer: fine) {/hover effects/}

/ No hover or rough pointer (touch/remote control )/
@ media (hover: none), (pointer: coarse) {/alternatives to hover/}

/ Any type of pointer (hybrid devices )/
@ media (any-hover: hover) {/minimal improvements/}
Ережелер:
  • Тач құрылғыларында бағыттау әсері маңызды емес - айқын affordances пайдаланыңыз: түсі/белгі/жақтау/кеңес.
  • Навигацияны/бақылауларды тек «hover» астында жасырмаңыз.

4) Ұзақтықтар мен қисықтар

Қысқаша және болжамды:
  • Hover: 120-180 мс
  • Focus: 120-180 мс
  • Active/Pressed: 80–120 мс
  • Ripple/ink (егер пайдаланылса): ≤ 240 мс, 1 цикл

Әдепкі қисық: 'cubic-bezier (0. 2, 0, 0. 2, 1)`

Active - жылдам ('cubic-bezier (0. 4, 0, 1, 1) '), шығу - жұмсақ (' cubic-bezier (0, 0, 0). 2, 1)`).

5) Дизайн-жүйе токендері (мысал)

json
{
"interactive": {
"duration": { "hover": 160, "focus": 160, "active": 90 },
"easing": { "std": "cubic-bezier(0. 2,0,0. 2,1)", "acc": "cubic-bezier(0. 4,0,1,1)" },
"shadow": { "hover": "var(--elev-2)", "focus": "0 0 0 3px var(--focus-ring)" },
"opacity": { "disabled": 0. 38, "muted": 0. 64 }
}
}

6) Кнопкалар: эталондық паттерн

Default: оқылатын мәтін ≥ 4. 5:1 құюға.
Hover: − Δ L аясы 0. 02–0. 04, жеңіл көлеңке, 'pointer' курсоры.
Active: тағы − Δ L 0. 02–0. 04, қысқартылған көлеңке/қысу (scale 0. 98), созылады. 80-100 мс.
Focus: blur жоқ 2-3 px контрасты сақина.
Disabled: курсор `not-allowed`/`default`, opacity ≤ 0. 38, hover-эффекттері жоқ.

css
.button {
transition: background-color. 16s var(--ease), transform. 09s var(--ease-acc), box-shadow. 16s var(--ease);
}
@media (hover:hover) and (pointer:fine) {
.button:hover  { background: var(--btn-bg-hover); box-shadow: var(--shadow-hover); }
}
.button:active  { transform: scale(.98); }
.button:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--focus-ring); }
.button[disabled] { opacity:.38; pointer-events: none; }

7) Сілтемелер және мәтіндік әрекеттер

Тек түсімен ерекшеленбейді: әдепкі астын сызу немесе hover/focus.
Бағыттау үшін: астын сызуды күшейту (қалыңдығы/offset), реңді жеңіл өзгерту.
'Visited' - сол палитраның басқа реңкі, қарама-қарсылық сақталған.

css a { text-decoration: underline; text-underline-offset:.12em; }
@media (hover:hover) and (pointer:fine) {
a:hover { text-underline-offset:.2em; }
}
a:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--focus-ring); }

8) Карточкалар, тізімдер, кестелер

Карточкалар:
  • Hover: жұмсақ көлеңке/жақтауды бояу, 'pointer' меңзері тек бүкіл карточка басылатын болса.
  • Active: қысқа қысу, тақырыпты жарықтандыру.
  • Focus: тек ішінде ғана емес, карточканың айналасында көрінетін сақина.
Кестенің жолдары:
  • Hover-фон Δ L 0. 02–0. 04; белсенді жол - нақты жақтау.
  • Жол бойынша басуға тек анық affordance («→» белгішесі, кеңес беру) кезінде ғана рұқсат етіледі.
Тізімдер:
  • Каскадты кідірістерден «теспені» мұқият шектеңіз - ең көбі 6-8 элемент (stagger 20-30 мс).

9) Енгізу нысандары мен өрістері

Hover: жіңішке жақтау (Δ L ~ 0. 05), блок өлшемін өзгертпей.
Focus: қарама-қарсы сақина + жақтау түсін өзгерту; placeholder ерекшеленеді (3:1 ≥).
Қате: түсі + белгішесі/мәтіні; қысқа «shake» 6 px, ≤ 140 мс, бір рет ≤ рұқсат етіледі.

10) Иконалар және шағын мақсаттар

Белгішенің өзі 20 × 24 px болса да, басу аймағын 32-32 (desktop )/40 × 40 (mobile) дейін ұлғайтыңыз.
Hover: 1-2 сипаттан аспайтын мөлдірлікті/бояуды/қалыңдықты ауыстыру.
Active: scale 0 бойынша қысқаша «snap». 98.
Focus: басу аймағының контейнері бойынша сақина.

11) Қол жетімділік (A11y) және пернетақта

Қолдау ': focus-visible' (тышқан үшін фокус стилін көрсетпейміз, пернетақта үшін - көрсетеміз).
Hover кеңестерін жасайтын элементтер фокус бойынша баламалы болуы тиіс (сол мазмұн Tab/Enter пернесі бойынша пайда болады).
Aria-төлсипаттары: интерактивтерде жағдай бойынша 'role', 'aria-pressed '/' aria-expanded '/' aria-current' бар.
Prefers-reduced-motion: масштабты/ығысуды минимумға (opacity/fill) ауыстырамыз, пульсацияны ажыратамыз.

css
@media (prefers-reduced-motion: reduce) {
{ transition-duration:.01ms! important; animation: none! important; }
}

12) Өнімділік

Тек 'opacity' және 'transform' анимациялансын; 'width/height/left/top', бірнеше элементтегі ауыр blur/көлеңкелерден аулақ болыңыз.
'will-change' дегенді орташа қолданыңыз; өту аяқталғаннан кейін жинаңыз.
Тізімдерде/кестелерде - «жаһандық» repaint-сіз ең аз әсерлер.

13) Hover-intent және «жабысқақтық»

Үстел үстінде жалған hover-триггерлерді азайтыңыз:
  • Кешіктіру шегі 80-120 мс күрделі tooltip/мәзірді көрсету алдында.
  • Меңзердің «жабысқақтығы»: егер пайдаланушы тармақтан мәзірге бұрышпен қозғалса, «дәліз» (Fitts үшбұрышы) 200-300 мс береді.
  • Тач - hover-ті press немесе «тағы да» түймешігімен ауыстырамыз.

14) Tooltip/мәзір/дропдауналар

Ашу: hover-intent (десктоп )/press (тач), жабу - күтім бойынша/blur/ESC.
Позиция - көзге, көрсеткі тураланған; max-width және тасымалдар қосылған.
Қол жетімділік: 'role =' tooltip ', байланыстырамыз' aria-describedby '; мәзір үшін - 'role = «menu»' + көрсеткілерді басқару.

15) iGaming ерекшелігі

Коэффициенттер/лидбордтар: hover жол/ұяшықты жарықтандырады, бірақ позициялау метрикасын өзгертпейді («секірулерсіз»).
Турнир/бонус карточкалары: hover рамканы/белгішені «жандандыра» алады, бірақ мәтіндік CTA және шарттар оқылатын болып қалады (4- ≥. 5:1).
Жауапты хабарламалар (18 +, лимиттер): оқшаулау әсерінсіз; бағыттау кезінде сілтемелердің астын сызуға және нақты фокус жасауға ғана жол беріледі.
Ставкалар/сатып алу түймелері: active-feedback міндетті (көзбен шерту/басу) және жөнелтілгеннен кейін айқын disable.

16) Интерфейстік рецептілердің үлгілері

CTA түймешігі (light/dark):
css
.cta {
background: var(--role-primary);
color: var(--on-primary);
transition: background-color. 16s var(--ease), transform. 09s var(--ease-acc), box-shadow. 16s var(--ease);
}
@media (hover:hover) and (pointer:fine) {
.cta:hover { background: var(--role-primary-hover); box-shadow: var(--elev-2); }
}
.cta:active { transform: scale(.98); }
.cta:focus-visible { box-shadow: 0 0 0 3px var(--focus-ring); }
Карточка:
css
.card { transition: box-shadow. 16s var(--ease), border-color. 16s var(--ease); }
@media (hover:hover) and (pointer:fine) {
.card:hover { box-shadow: var(--elev-2); border-color: var(--border-strong); }
}
.card:focus-visible { box-shadow: 0 0 0 3px var(--focus-ring); }
Кестенің жолы:
css
.table tr { transition: background-color. 12s var(--ease); }
@media (hover:hover) and (pointer:fine) {
.table tr:hover { background: var(--row-hover); }
}
.table tr:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: -2px; }

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

Сыни әрекеттерді/мәзірді тек hover үшін жасыру.
Бағыттау кезінде өлшемін/орналасуын өзгерту (layout секірулері).
Күй айырмашылығы үшін тек түске сүйенеді.
Жылтылдау, шексіз пульсациялар, мәтіндердегі «қышқылды» glow.
focus-стильдерінің болмауы немесе олардың қараңғы тақырыпта көрінбеуі.
'pointer' меңзерін белсенді емес элементтерге бағыттау.

18) QA-чек парағы

Қол жетімділік

  • Пернетақта арқылы барлық интерактивтерге қол жеткізуге болады; фокусты көріп отырмыз.
  • Hover-контент 'focus '/' aria' бойынша қол жетімді.
  • Мәтін мен иконалардың қарама-қайшылығы WCAG сәйкес келеді.

Мінез-құлық

  • Hover/active/disabled/visited пішіні мен тонымен ажыратылады.
  • > 120 мс жауап беру кідірісі жоқ.
  • Тасқа hover баламасы бар.

Көрініс

  • Тек 'transform '/' opacity' анимацияланады.
  • Көптеген элементтерде ауыр blur/көлеңкелер жоқ.
  • Ұзақ тізімдерде әсерлер барынша аз.

19) Дизайн-жүйедегі құжаттама

Базалық компоненттерге арналған күй кестесі (түймешіктер, сілтемелер, карточкалар, өрістер, кесте жолдары).
Ұзындық/қисық/көлеңке токендері және light/dark кодының үлгісі.
«Hover vs Touch» бөлімі: баламалар ережелері мен мысалдар.
Қысқа клиптері және контраст көрсеткіштері бар «Do/Don 't».

Қысқаша түйіндеме

Бағыттау әсерлері - бұл интерфейс тілінің қосалқы, бірақ сындарлы бөлігі. Оларды қысқа және болжамды етіңіз, пернетақтаны және белгіні ұстаңыз, қарама-қайшылықты және көрінетін фокусты қамтамасыз етіңіз, тек арзан қасиеттерді анимациялаңыз. Сонда интерактивтілік оларға кедергі келтірмей, іс-қимылдың айқындығы мен жылдамдығын арттырады.

Contact

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

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

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

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

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

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