UI-паттерн — делаем меню компактным

Статья описывает UI-паттерн компактного отображения множества кнопок действий.
Ниже приведено описание, досточно строгое чтобы было понятно и человеку и AI. Сначала даются понятия, затем общее описание, и есть видео-демо. Название s800s ничего не означает, но оно должно быть - пусть будет таким :)
Видео-демо:

разворачиваемая панель с кнопками ~ s800s
понятия
COMPONENT: текущий компонент в целомTIMER: таймер обратного отсчёта длиной 20 секунд; сбрасывается каждый раз когда пользователь взаимодействует (нажатие, прокрутка) сCOMPONENTи при каждой инициализации состоянияSTATE_2иSTATE_3; по истечении отсчётаCOMPONENTавтоматически переходит в состояниеSTATE_1; таймер запускается только в состоянияхSTATE_2иSTATE_3STATE_1: начальное состояние; в этом состоянии отображается толькоBTN_INIиL_AREASTATE_2:отображается
BTN_CLOSEна месте где до этого отображаласьBTN_INIотображается
BTN_Qотображается
IN_AREAс кнопкамиBTN_IN_COMPACTвнутри
STATE_3: то же чтоSTATE_2только вместоBTN_IN_COMPACTотображаютсяBTN_IN_EXTRABTN_INI: кнопка-иконка; при нажатии выполняется переход вSTATE_2L_AREA: область для отображенияBTN_IN_COMPACTпоследней нажатойBTN_IN; в видеBTN_IN_COMPACT; пока ещё нажатий не было это должна быть перваяBTN_INиз списка этихBTN_INBTN_CLOSE: кнопка-иконка; иконка в виде крестика; при нажатии выполняется переход вSTATE_1BTN_IN: кнопка действия, отображающаяся вIN_AREA; при нажатии наBTN_INвыполняется переход вSTATE_1BTN_IN_COMPACT: кнопка отображается как кнопка-иконкаBTN_IN_EXTRA: кнопка отображается как кнопка-иконка плюс справа от неё отображаетсяBTN_TEXT
BTN_TEXT: поясняющий кнопку текстIN_AREA: скроллируемая по горизонтали область; она занимает всё доступное пространство по ширине (речь о пространстве за вычетом пространства под кнопкамиBTN_CLOSEиBTN_Q); если слева или справа есть контент который не виден, так как ушёл за видимую область, то должна отображаться стрелочкаP_ARROW(просто индикатор), которая дает понять, что есть еще контент в скрытой областиP_ARROW: стрелочка-индикатор переполнения видимой областиIN_AREABTN_Q: кнопка-иконка с иконкой в виде знака вопроса; при нажатии выполняется переход вSTATE_3; при повторном нажатии выполняется переход вSTATE_2
описание
способ компактного отображения большого количества кнопок действия
изначально это просто кнопка, по нажатию на которую отображаются дополнительные кнопки
есть специальная кнопка (
BTN_Q) чтобы не догадываться по иконке кнопки что она значит, то есть при нажатии наBTN_Qрядом с кнопками появляется поясняющий тексткомпонент автоматически (через время
TIMER) либо вручную (по кнопкеBTN_CLOSE) возвращается в компактный видесть область под отображение последней использовавшейся кнопки (
L_AREA), зачастую это удобносхематичный пример, вариант при изначальном расположении
BTN_INIсправа на экране
// STATE_1
[пустое пространство] [L_AREA] [BTN_INI]
// STATE_2
[IN_AREA] [BTN_Q] [BTN_CLOSE]
заключение
имхо было бы круто в своих приложениях более широко использовать такой паттерн, либо аналогичный - он компактный, универсальный и юзер-френдли
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.