Files

6.3 KiB
Raw Blame History

Purpose

Определяет единое пользовательское представление ожидания во frontend, чтобы структура будущего содержимого оставалась понятной без потери уже доступного контекста.

ADDED Requirements

Requirement: Структурные placeholders для загрузки содержимого

Frontend SHALL при первичной загрузке содержимого без доступного результата показывать skeleton placeholders, которые передают расположение и визуальную иерархию основных ожидаемых блоков. При частичной загрузке frontend MUST ограничивать skeleton незагруженным блоком и сохранять уже доступные части экрана видимыми. В этих состояниях frontend MUST NOT использовать отдельный spinner как основное представление ожидаемого содержимого.

Skeleton placeholders MUST NOT содержать правдоподобные пользовательские данные, быть интерактивными или попадать в последовательность клавиатурного фокуса; область ожидания MUST оставаться доступно обозначенной как занятая.

Scenario: Экран впервые ожидает содержимое

  • WHEN User открывает экран, для которого ещё нет доступного результата
  • THEN frontend показывает структурные skeleton placeholders основных блоков без отдельного spinner в роли основного loading-состояния

Scenario: Загружается отдельный блок экрана

  • WHEN часть экрана уже доступна, а один из его содержательных блоков всё ещё ожидает результат
  • THEN frontend сохраняет доступные части видимыми и показывает skeleton только в границах ожидающего блока

Scenario: Пользователь перемещает клавиатурный фокус во время загрузки

  • WHEN на экране видны skeleton placeholders и User перемещает клавиатурный фокус
  • THEN placeholders не получают фокус и не воспринимаются как доступные действия или реальные пользовательские данные

Requirement: Представление загрузки маршрута и восстановления сессии

Frontend SHALL во время загрузки отложенно открываемого маршрута показывать skeleton ожидаемой области содержимого, сохраняя уже доступный каркас приложения. Во время начального восстановления пользовательской сессии frontend MUST показывать нейтральный skeleton каркаса до определения доступного пользователю потока и MUST NOT кратковременно показывать содержимое public или protected маршрута как результат загрузки. В обоих случаях отдельный spinner MUST NOT быть основным loading-состоянием.

Scenario: Загружается отложенно открываемый маршрут

  • WHEN User переходит на маршрут, содержимое которого ещё загружается
  • THEN frontend сохраняет доступный каркас приложения и показывает skeleton в ожидаемой области содержимого без отдельного spinner в роли основного loading-состояния

Scenario: Приложение восстанавливает сессию при запуске

  • WHEN frontend ещё не определил результат начального восстановления пользовательской сессии
  • THEN User видит нейтральный skeleton каркаса без преждевременного отображения public или protected содержимого

Requirement: Контекстная индикация действий и фонового обновления

Frontend MUST сохранять уже доступное содержимое или элемент управления основным контекстом, когда выполняется пользовательское действие либо фоновое обновление Client Cached Snapshot. В этих состояниях frontend SHALL показывать компактный progress indicator рядом с соответствующим контекстом и MUST NOT заменять этот контекст skeleton placeholders.

Scenario: Выполняется пользовательское действие

  • WHEN User запустил действие и его результат ещё ожидается
  • THEN frontend сохраняет соответствующий элемент управления или окружающий контекст видимым, показывает компактную индикацию процесса и не заменяет интерфейс skeleton placeholders

Scenario: Обновляется уже показанный snapshot

  • WHEN frontend обновляет данные при наличии видимого Client Cached Snapshot
  • THEN frontend оставляет snapshot видимым, показывает компактную индикацию фонового обновления и не заменяет snapshot skeleton placeholders