Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Рефакторинг меню #1191

Merged
merged 133 commits into from
Aug 30, 2024
Merged

Conversation

TatianaFokina
Copy link
Member

@TatianaFokina TatianaFokina commented Aug 17, 2023

Превью контента.

Пока-пока, #1263, #1110, #1171, #819, #1074, #1069, #1075, #1081.

Бэклог 😶‍🌫️

Этому ПРу уже больше года; основная работа сделана. Эти задачи предлагаю решать в рамках отдельных ПРов:

  • Анимация открытия/закрытия меню как в макете (если реально) + медиафича для отключения анимаций
  • Кнопка «Наверх»
  • Изящно задать padding-и справа/слева у списка с разделами в дропдауне и изящно пересчитать ширину скиплинка, т. к. она задана "в лоб" (если реально)
Решённое

Скорее всего для @skorobaeus:

  • Граница у меню, которое пока не раскрыто (сливается на некоторых страницах с фоном). Проблема упомянута в Визуальное выделение нижней границы меню #1107.
  • Докрутить стили затемнения фона при открытии меню (если нужно).
  • Текст плейсхолдера для поиска, а также про скрытый лейбл к нему ¹
  • Уменьшить желание кликнуть по подсказке про горячую клавишу / рядом с гамбургером.
  • Покрутить высоту строки поиска ²
  • Новая иконка для кнопки на странице расширенного поиска ³
  • Решить, нужна ли нам подсказка про поиск на мобилках. Если нужна, то подумать про переносы и всякое такое на мобилках.
  • Куда девать попап с предложением подписаться на рассылку, когда дропдаун в хедере раскрыт (оставлять на верхнем слое или тоже затемнять?).
  • Посмотреть на закомментированные стили, удалить, если больше не нужны.

Скорее всего для @igsekor:

  • Условие для страницы поиска.
  • Решить, нужно ли нам столько кода для рассчёта высоты хедера, чтобы, на основе этого, рассчитывать оффсеты у других стикящихся элементов (названия подразделов, содержание материала).
  • Внимательно посмотреть на скрипты, которые изменились за время работы над этим PR.
  • Удалить TODO и закоментированный и, при этом, больше ненужный JS-код.
  • Не закрывать дропдаун в хедере, если пользователь кликнул на кнопку принятия кукиз (и, возможно, кнопку закрытия или подписки на рассылку из попапа).

Скорее всего для @solarrust или @furtivite:

  • При раскрытии дропдауна затемнять также кнопку «Развернуть/Свернуть» в рубрике с советами и с собесами.
  • Отступ у контента сверху (уезжает, когда меню открыто).

Для @TatianaFokina:

  • Сверстать раскрытие содержания на мобилках НОРМАЛЬНО.
  • Расширить область клика кнопки открытия.
  • Добавить aria-controls и aria-expanded к кнопке.
  • Разобраться с ломающимся табом на бургере.

На странице "Участники" и странице каждого участника меню сжимается позже, чем этого ожидаешь. Интересно, получится ли стриггернуть сжатие сразу, как начинается текст? UPD: Решено сжатием хэдера сразу при скролле

bandicam.2024-05-22.21-46-22-881.mp4

Не все элементы со страниц затемняются при развёрнутом хедере.
image

Поиск на главной: нужен ли там подсказка на мобилках вообще? UPD: Нет, не нужна.
image

Рамка остаётся при раскрытии дропдауна, убрать. UPD: Таня — моя героиня!
image

Когда фон хедера и дропдауна как у страницы, они сливаются с другими элементами.
image
image
image

Сейчас попап появляется поверх открытого дропдауна.
Screenshot 2024-05-21 215908

Из-за того, что появился текст про поиск, на мобилках на новую строку переносятся хлебные крошки.
UPD: Нужно убрать хлебные крошки на индексах разделов, на проде их нет, и они не нужны, т. к. дублируют инфу.
UPD2: Убрала
image

Из-за анимации (а может и нет) и того, в какой момент убирается класс для сужения высоты и отступов в меню, оно в определённой точке скролла начинает паниковать и трястись. Воспроизводится только на странице материала.

_blockquote_.HTML.-.Google.Chrome.2024-05-09.15-19-05.mp4

Похожий упс на странице участника:

bandicam.2024-05-22.22-03-53-328.mp4

Нужна другая иконочка, не с крестиком, как у нас сейчас. UPD: Сменила иконку на "бэкспейс".
image

Фильтры на странице всех участников на мобилках. UPD: Сейчас кнопка фильтров скрывается под меню, эти сущности исключают друг друга.
image
image

Затемнение под фильтрами на странице участников и затемнение под меню это одна и та же механика, должны выглядеть одинаково:
Image from Gyazo

Ченджлог 🥵

Стили в общем

  • Отрефакторены старые стили (новый синтаксис для брейкпоинтов, удалила неиспользуемые стили и селекторы).
  • Минимальная анимация открытия и закрытия хедера (не как в макете).
  • Вся анимация, связанная с хедером и лого, в отдельном файле.
  • Цвет --color-fade с вида hsl(220 7% 25%) стал 220 7% 25%, чтобы добавлять альфа-канал при затемнении ⁴
  • В темы добавлен цвет --color-border: hsl(var(--color-base-text) / 0.3), чтобы убрать повторы из кода.
  • У шторок с фильтрами на страницах расширенного поиска и участников синхронизированы стили с дропдауном.

⁴ Иначе фильтры не работают.

Структура хедера

  • Один элемент вместо двух (привело к изменению нейминга).
  • Один и тот же include с самим хедером и дропдауном для всех страниц.
  • Навела порядок в header.njk и search-page.njk.
  • Вынесла подсказки про Esc и / за пределы кнопки ⁵
  • Текст у шортката со слэшем.
  • Скрываем горячую клавишу для закрытия на мобилках.
  • На странице материала в хлебных крошках больше нет названия самого материала.
  • Больше нет дивов в строчных элементах.
  • Переименовала подсказки о горячих клавишах, чтобы они всегда подсказывали, какую кнопку нажать, а также слово «Поиск» не повторялось два раза.

⁵ Подсказка про поиск раньше была вложена внутрь <button>, что мне показалось странным. Гамбургер отвечает не только за поиск, но и за выпадающее меню с разделами. Плюс на слух довольно странно будет сначала услышать что-то про поиск, потом про то, что эта кнопка открывает и закрывает меню. Так что самое логичное место для шортката, конечно, поле поиска, но тут у нас оно скрыто, так что ситуация особая.

ARIA

  • У кнопки закрытия и открытия меню есть aria-expanded (скринридер сообщает, свёрнут или развёрнут сейчас дропдаун) и aria-controls (связывает кнопку с дропдауном).
  • Добавила к полю поиска aria-shortcuts с кодом /.
  • aria-label для основного хедера (ориентир).
  • aria-expanded и aria-controls у кнопки для скрытия и показа оглавления к материалам на мобилках.

Поведение хедера

  • На десктопах стикится всегда.
  • На мобилках статичный.
  • Фиксируется при открытии.
  • Закрывается, когда клавиатурный фокус попадает на первый интерактивный элемент после него.
  • Фокус переносится на поле фокуса не только со Slash, но и numpadDivide (потестировать отличия в JavaScript Key Code Event Tool).

Стили хедера

  • При открытии затемняется фон страницы (псевдоэлемент для <body>).
  • Скрол у дропдауна на мобилках.
  • Подсказка про клавишу Esc теперь не снизу, а сбоку от кнопки.
  • На всех брейкпоинтах внутренние отступы одинаковые.
  • Уменьшила внутренние отступы на мобилках.
  • При скроле внутренние отступы уменьшаются (поэтому хедер выглядит компактнее).
  • У подсказок с шорткатами user-select: none.
  • Отступ от меню в состоянии isSticky всегда 56px
  • Лёгкий фейд на изменение строки в 0.2 секунды.
  • Нижнее подчёркивание на страницах без акцентного цвета в свёрнутом состоянии.
  • Высота строки поиска уменьшена, межбуквенные расстояния и внутренние отступы подогнаны между строкой поиска и хлебными крошками, чтобы не было визуальных "прыжков" при переходе по страницам.
  • Округлена высота подчёркиваний в дропдауне (она была мучительно разная).
  • Иконка с крестиком заменена на иконку Backspace на странице расширенного поиска.

⁶ Удалила функцию для расчёта высоты. Она у нас не такая вариативная, поэтому кажется, что 56 пикселей во всех случаях вполне норм. Так мы избавимся от лишних вычислений и не будем рассчитывать каждую секунду текущую высоту хедера.

Содержание материалов

  • Блок с содержанием на мобилках всегда находится под меню (не фиксируется при скролле).
  • Появилась кнопка его закрытия и открытия.
  • При клике на якорной ссылке содержание не сворачивается.
  • Ссылки в оглавлении не так близко располагаются к друг другу, поэтому на них легче кликать.
  • Хлебные крошки не показываются на мобилках, в том же диапазоне, в котором нет стики хэдера.

Хедер отдельного материала

  • Высота меньше, влезает в один разворот.
  • Меньше размер шрифта времени чтения.

Новое

  • Skip link (тестируйте с клавиатуры).

Скриншоты

Frame 13

Оффсеты у стикящихся элементов.

image

image

image

Чеклист для тестирования 🧪

Страницы для тестирования

Стили

Все страницы:

  • лого Доки одинакового размера на всех страницах;
  • высота строки поиска в меню уменьшена;
  • паддинги в хедере совпадают с паддингами у основного содержимого страниц.

Все страницы, кроме расширенного поиска:

  • у подсказки с клавишей для перехода к полю поиска есть текст «Клавиша».

Все страницы, кроме главной и расширенного поиска:

  • (развёрнутый хедер): содержимое страницы затемняется (кроме сообщения о кукиз и подписке, когда они показываются);
  • (развёрнутый хедер): в хедере появляется поле поиска, подсказка про клавиши и кнопка закрытия;
  • (развёрнутый хедер): ссылки в дропдауне располагаются на таком же расстоянии друг от друга, как на проде;
  • (развёрнутый хедер): ссылки в дропдауне располагаются на таком же расстоянии от левой и правой стороны экрана, как на проде;
  • (только десктопы): свёрнутый хедер прилипает к верху страницы при скролле;
  • (только десктопы): дропдаун располагается под хедером;
  • (только десктопы): дропдаун прилипает вместе с хедером к верху страницы при скролле;
  • (только десктопы): у свёрнутого хедера при скролле появляется нижняя светло-серая рамка;
  • (только десктопы): у свёрнутого хедера при скролле слегка уменьшается высота;
  • (только десктопы): подсказка про горячую клавишу Esc располагается слева от кнопки закрытия;
  • (только планшеты и мобилки): хедер не прилипает к верху страницы при скролле;
  • (только планшеты и мобилки): у поля поиска нет подсказки про горячие клавиши / и Enter.

Главная:

  • (только планшеты и мобилки): у поля поиска нет подсказки про горячие клавиши / и Enter;
  • при скролле хедер не прилипает к верху страницы.

Расширенный поиск:

  • в хедере, вместо кнопки с крестиком, есть кнопка для очистки текстового поля и сброса фильтров;
  • рядом с полем поиска вообще нет подсказки о клавише /;
  • при скролле хедер не прилипает к верху страницы.

Страница со всеми участниками и страница одного участника:

  • список участников / аватарка участника прилипают на том же расстоянии от хедера, как на проде.

Страницы с материалами:

  • шапка материала примерно помещается на один разворот экрана;
  • размер текста со временем чтения уменьшен;
  • в оглавлении слегка увеличено расстояние между ссылками;
  • на странице материала в хлебных крошках больше нет названия самого материала;
  • (только десктопы): оглавление и футер статьи корректно прилипают при скролле;
  • (только десктопы): оглавление прилипает на том же расстоянии от хедера, как на проде;
  • (только планшеты и мобилки): оглавление располагается под шапкой материала;
  • (только планшеты и мобилки): оглавление свёрнуто по умолчанию;
  • (только планшеты и мобилки): у свёрнутого оглавления есть кнопка раскрытия справа;
  • (только планшеты и мобилки): у развёрнутого оглавления есть кнопка закрытия справа, на том же месте, что кнопка для раскрытия;
  • (только планшеты и мобилки): кнопка для раскрытия оглавления не прилипает к низу экрана при скролле.

Управление с клавиатуры

Все страницы:

  • при нажатии на Tab в начале страницы появляется skip link «К контенту»;
  • при нажатии на Enter, когда фокус на skip link, страница проскролливается к основному контенту на странице;
  • (развёрнутый хедер): если внизу страницы видно сообщение о кукиз, при нажатии на кнопку его закрытия дропдаун не сворачивается;
  • (развёрнутый хедер): если внизу страницы видно сообщение о подписке на рассылку, при нажатии на кнопку его закрытия дропдаун не сворачивается.

Все страницы, кроме главной и расширенного поиска:

  • (свёрнутый хедер): при последовательном табе с начала страницы фокус следующий: ссылка-логотип → хлебная крошка (предыдущая страница) → бургерная кнопка → первый интерактивный элемент на странице;
  • (свёрнутый хедер): при нажатии на / или / в цифровом блоке (numpad) хедер разворачивается, а фокус попадает в поле поиска.
  • (свёрнутый хедер): при табании по странице в фокусе не оказываются строка поиска и скрытые ссылки из дропдауна;
  • (свёрнутый хедер): если нажали пробел или Enter на бургерной иконке, разворачивается дропдаун;
  • (развёрнутый хедер): фокус остаётся на бургерной кнопке с тремя точками, если нажали пробел или Enter на кнопке закрытия;
  • (развёрнутый хедер): если протабались за пределы хедера и дропдауна, дропдаун автоматически скрывается (например, при фокусе на skip link или первом элементе на странице после ссылок из дропдауна);
  • (развёрнутый хедер): после нажатия на бургерную кнопку фокус следующий: бургерная кнопка → ссылки на разделы в визуальном порядке → первый интерактивный элемент на странице;
  • (развёрнутый хедер): при последовательном табе с начала страницы фокус следующий: ссылка-логотип → хлебная крошка (предыдущая страница) → поле поиска → бургерная кнопка → ссылки в дропдауне (последовательно сверху вниз) → первый интерактивный элемент на странице;
  • (развёрнутый хедер): при нажатии на Esc, когда находитесь в поле поиска, хедер сворачивается, при последующем табе в фокусе оказывается бургерная кнопка.

Главная:

  • при последовательном табе с начала страницы порядок фокуса следующий: поле поиска → ссылки на разделы в визуальном порядке → первый интерактивный элемент на странице;
  • при нажатии на Esc, когда находитесь в поле поиска, хедер не сворачивается, фокус просто сбрасывается с поля;
  • при нажатии на / или / в цифровом блоке (numpad) фокус переносится на поле поиска в начале страницы, хедер не разворачивается.

Расширенный поиск:

  • при последовательном табе с начала страницы порядок фокуса следующий: ссылка-логотип → поле поиска → кнопка очистки фильтров и строки поиска → первый интерактивный элемент на странице;
  • когда фокус на поле поиска и нажали Esc, введённый результат не очищается, а фокус просто сбрасывается с текущего элемента;
  • на кнопке для очистки фильтров можно сделать фокус, она нажимается с Enter и пробелом;
  • при нажатии с клавиатуры на кнопку для очистки фильтров введённый в поле поиска текст удаляется, а выбранные фильтры сбрасываются.

Управление мышкой и тапами

Все страницы, кроме главной и расширенного поиска:

  • (свёрнутый хедер): дропдаун раскрывается при клике/тапе по кнопке открытия с тремя точками;
  • (развёрнутый хедер): дропдаун скрывается при клике/тапе по кнопке закрытия с крестиком;
  • (развёрнутый хедер): дропдаун скрывается при клике/тапе по странице (области за пределами хедера и дропдауна);
  • (развёрнутый хедер): дропдаун не скрывается при клике/тапе по области хедера и самого дропдауна;
  • (развёрнутый хедер): можно проскроллить к ссылкам в дропдауне, которые не помещаются на один разворот экрана.

Расширенный поиск:

  • если в поле поиска был текст, он удаляется при клике/тапе на кнопке для очистки поля и сброса фильтров;
  • если были выбраны фильтры, они сбрасываются при клике/тапе на кнопке для очистки поля и сброса фильтров.

Страницы с материалами:

  • свёрнутое оглавление раскрывается при тапе на всём блоке и сворачивается при тапе по стрелке закрытия;
  • при тапе по ссылке из оглавления скролл срабатывает к нужному месту на странице.

Доступность

Все страницы, кроме главной и расширенного поиска:

  • у кнопки в хедере есть состояние раскрытости и открытости;
  • кнопка с тремя точками в хедере программно связана с дропдауном;
  • (десктоп): в хедере у кнопки с тремя точками есть скрытый лейбл;
  • (десктоп): в хедере у кнопки с крестиком есть скрытый лейбл.

Страницы с материалами:

  • у кнопки есть состояние раскрытости и открытости;
  • кнопка программно связана с дропдауном;
  • (планшет и мобилка): у кнопки для раскрытия оглавления есть скрытый лейбл;
  • (планшет и мобилка): у кнопки для скрытия оглавления есть скрытый лейбл.

Расширенный поиск:

  • в хедере у кнопки для очистки есть скрытый лейбл, отличающийся от лейбла кнопки с крестиком в хедере с других страниц.

@TatianaFokina TatianaFokina added улучшение Доработка существующего вёрстка Задачи по вёрстке дизайн Задачи по дизайну labels Aug 17, 2023
@TatianaFokina TatianaFokina self-assigned this Aug 17, 2023
@TatianaFokina TatianaFokina marked this pull request as draft August 17, 2023 12:04
@TatianaFokina TatianaFokina marked this pull request as ready for review August 22, 2023 14:33
@TatianaFokina TatianaFokina marked this pull request as draft August 22, 2023 14:34
@TatianaFokina TatianaFokina marked this pull request as ready for review August 22, 2023 14:41
@TatianaFokina

This comment was marked as resolved.

@TatianaFokina TatianaFokina marked this pull request as draft August 22, 2023 15:20
@TatianaFokina
Copy link
Member Author

TatianaFokina commented Aug 1, 2024

Результаты моего тестирования.

Стили

Все страницы:

  • лого Доки одинакового размера на всех страницах;
  • высота строки поиска в меню уменьшена;
  • паддинги в хедере совпадают с паддингами у основного содержимого страниц;
  • лого анимируется как на проде.

Все страницы, кроме расширенного поиска:

  • у подсказки с клавишей для перехода к полю поиска есть текст «Клавиша».

Все страницы, кроме главной и расширенного поиска:

  • анимация скрытия и показа хедера работает так же или почти так же, как в макете;
  • (развёрнутый хедер): содержимое страницы затемняется (кроме сообщения о кукиз и подписке, когда они показываются);
  • (развёрнутый хедер): в хедере появляется поле поиска, подсказка про клавиши и кнопка закрытия;
  • (развёрнутый хедер): ссылки в дропдауне располагаются на таком же расстоянии друг от друга, как на проде;
  • (развёрнутый хедер): ссылки в дропдауне располагаются на таком же расстоянии от левой и правой стороны экрана, как на проде;
  • (только десктопы): свёрнутый хедер прилипает к верху страницы при скролле;
  • (только десктопы): дропдаун располагается под хедером;
  • (только десктопы): дропдаун прилипает вместе с хедером к верху страницы при скролле;
  • (только десктопы): у свёрнутого хедера при скролле появляется нижняя светло-серая рамка;
  • (только десктопы): у свёрнутого хедера при скролле слегка уменьшается высота;
  • (только десктопы): подсказка про горячую клавишу Esc располагается слева от кнопки закрытия;
  • (только планшеты и мобилки): хедер не прилипает к верху страницы при скролле;
  • (только планшеты и мобилки): у поля поиска нет подсказки про горячие клавиши / и Enter.

Главная:

  • (только планшеты и мобилки): у поля поиска нет подсказки про горячие клавиши / и Enter;
  • при скролле хедер не прилипает к верху страницы.

Расширенный поиск:

  • в хедере, вместо кнопки с крестиком, есть кнопка для очистки текстового поля и сброса фильтров;
  • рядом с полем поиска вообще нет подсказки о клавише /;
  • при скролле хедер не прилипает к верху страницы.

Страница со всеми участниками и страница одного участника:

  • список участников / аватарка участника прилипают на том же расстоянии от хедера, как на проде.

Страницы с материалами:

  • шапка материала примерно помещается на один разворот экрана;
  • размер текста со временем чтения уменьшен;
  • в оглавлении слегка увеличено расстояние между ссылками;
  • на странице материала в хлебных крошках больше нет названия самого материала;
  • (только десктопы): оглавление и футер статьи корректно прилипают при скролле;
  • (только десктопы): оглавление прилипает на том же расстоянии от хедера, как на проде;
  • (только планшеты и мобилки): оглавление располагается под шапкой материала;
  • (только планшеты и мобилки): оглавление свёрнуто по умолчанию;
  • (только планшеты и мобилки): у свёрнутого оглавления есть кнопка раскрытия справа;
  • (только планшеты и мобилки): у развёрнутого оглавления есть кнопка закрытия справа, на том же месте, что кнопка для раскрытия;
  • (только планшеты и мобилки): кнопка для раскрытия оглавления не прилипает к низу экрана при скролле.

Управление с клавиатуры

Все страницы:

  • при нажатии на Tab в начале страницы появляется skip link «К контенту»;
  • при нажатии на Enter, когда фокус на skip link, страница проскролливается к основному контенту на странице;
  • (развёрнутый хедер): если внизу страницы видно сообщение о кукиз, при нажатии на кнопку его закрытия дропдаун не сворачивается;
  • (развёрнутый хедер): если внизу страницы видно сообщение о подписке на рассылку, при нажатии на кнопку его закрытия дропдаун не сворачивается.

Все страницы, кроме главной и расширенного поиска:

  • (свёрнутый хедер): при последовательном табе с начала страницы фокус следующий: ссылка-логотип → хлебная крошка (предыдущая страница) → бургерная кнопка → первый интерактивный элемент на странице;
  • (свёрнутый хедер): при нажатии на / или / в цифровом блоке (numpad) хедер разворачивается, а фокус попадает в поле поиска.
  • (свёрнутый хедер): при табании по странице в фокусе не оказываются строка поиска и скрытые ссылки из дропдауна;
  • (свёрнутый хедер): если нажали пробел или Enter на бургерной иконке, разворачивается дропдаун;
  • (свёрнутый хедер): фокус остаётся на бургерной кнопке с тремя точками, если нажали пробел или Enter на кнопке закрытия;
  • (развёрнутый хедер): если протабались за пределы хедера и дропдауна, дропдаун автоматически скрывается (например, при фокусе на skip link или первом элементе на странице после ссылок из дропдауна);
  • (развёрнутый хедер): после нажатия на бургерную кнопку фокус следующий: бургерная кнопка → ссылки на разделы в визуальном порядке → первый интерактивный элемент на странице;
  • (развёрнутый хедер): при последовательном табе с начала страницы фокус следующий: ссылка-логотип → хлебная крошка (предыдущая страница) → поле поиска → бургерная кнопка → ссылки в дропдауне (последовательно сверху вниз) → первый интерактивный элемент на странице;
  • (развёрнутый хедер): при нажатии на Esc, когда находитесь в поле поиска, хедер сворачивается, при последующем табе в фокусе оказывается бургерная кнопка.

Главная:

  • при последовательном табе с начала страницы порядок фокуса следующий: поле поиска → ссылки на разделы в визуальном порядке → первый интерактивный элемент на странице;
  • при нажатии на Esc, когда находитесь в поле поиска, хедер не сворачивается, фокус просто сбрасывается с поля;
  • при нажатии на / или / в цифровом блоке (numpad) фокус переносится на поле поиска в начале страницы, хедер не разворачивается.

Расширенный поиск:

  • при последовательном табе с начала страницы порядок фокуса следующий: ссылка-логотип → поле поиска → кнопка очистки фильтров и строки поиска → первый интерактивный элемент на странице;
  • когда фокус на поле поиска и нажали Esc, введённый результат не очищается, а фокус просто сбрасывается с текущего элемента;
  • на кнопке для очистки фильтров можно сделать фокус, она нажимается с Enter и пробелом;
  • при нажатии с клавиатуры на кнопку для очистки фильтров введённый в поле поиска текст удаляется, а выбранные фильтры сбрасываются.

Управление мышкой и тапами

Все страницы, кроме главной и расширенного поиска:

  • (свёрнутый хедер): дропдаун раскрывается при клике/тапе по кнопке открытия с тремя точками;
  • (развёрнутый хедер): дропдаун скрывается при клике/тапе по кнопке закрытия с крестиком;
  • (развёрнутый хедер): дропдаун скрывается при клике/тапе по странице (области за пределами хедера и дропдауна);
  • (развёрнутый хедер): дропдаун не скрывается при клике/тапе по области хедера и самого дропдауна;
  • (развёрнутый хедер): можно проскроллить к ссылкам в дропдауне, которые не помещаются на один разворот экрана.

Расширенный поиск:

  • если в поле поиска был текст, он удаляется при клике/тапе на кнопке для очистки поля и сброса фильтров;
  • если были выбраны фильтры, они сбрасываются при клике/тапе на кнопке для очистки поля и сброса фильтров.

Страницы с материалами:

  • свёрнутое оглавление раскрывается при тапе на всём блоке и сворачивается при тапе по стрелке закрытия;
  • при тапе по ссылке из оглавления скролл срабатывает к нужному месту на странице.

Доступность

Все страницы, кроме главной и расширенного поиска:

  • у кнопки в хедере есть состояние раскрытости и открытости;
  • кнопка с тремя точками в хедере программно связана с дропдауном;
  • (десктоп): в хедере у кнопки с тремя точками есть скрытый лейбл;
  • (десктоп): в хедере у кнопки с крестиком есть скрытый лейбл.

Страницы с материалами:

  • у кнопки есть состояние раскрытости и открытости;
  • кнопка программно связана с дропдауном;
  • (планшет и мобилка): у кнопки для раскрытия оглавления есть скрытый лейбл;
  • (планшет и мобилка): у кнопки для скрытия оглавления есть скрытый лейбл.

Расширенный поиск:

  • в хедере у кнопки для очистки есть скрытый лейбл, отличающийся от лейбла кнопки с крестиком в хедере с других страниц.

@TatianaFokina
Copy link
Member Author

TatianaFokina commented Aug 1, 2024

@solarrust, нужна твоя в кастовании CSS-заклинаний!

  1. Изящно задать padding-и справа/слева у списка с разделами (в дропдауне). Плюс сейчас на планшетах паддинги вообще неправильные у этого блока. Вот этот монстр, которого я создала:
@media (width >= 1024px) {
  .nav-list {
    --block-padding: 6px;
    --gap: 6px;
    padding-top: 0;
    padding-bottom: var(--list-padding-max);
    padding-right: var(--list-padding-max);
    padding-left: calc(37*var(--gap)); <------ 👀
    gap: 6px;
    line-height: inherit;
  }
}

@media (width >= 1366px) {
  .nav-list {
    padding-left: calc(38*var(--gap));  <------ 👀
  }
}

@media (width >= 1680px) {
  .nav-list {
    padding-left: calc(45*var(--gap));  <------ 👀
  }
}
  1. Изящно пересчитать ширину скиплинка, т. к. она задана «в лоб». Она задана вот тут:
skip-link {
  position: absolute;
  overflow: hidden;
  top: auto;
  left: -10000px;
  width: 1px;
  height: 1px;
  padding: 16px 52px; <------ 👀
  background-color: var(--color-background);
  z-index: 4;
}

.skip-link:focus-visible {
  top: 0;
  left: 0;
  width: auto;
  height: auto;
}

@media (width >= 1024px) {
  .skip-link {
    padding: 23px 56px; <------ 👀
  }
}

@media (width >= 1680px) {
  .skip-link {
    padding: 26px 62px; <------ 👀
  }
}
  1. Более масштабная задача — что-то придумать с анимацией открытия/закрытия меню как в макете (если реально).

4. Ну и са-а-а-амое последнее, пофиксить отступ у контента сверху. Он слегка уезжает вниз, когда меню открыто, из-за разной высоты хедера в свёрнутом и развёрнутом состоянии. UPD: Я прибила контент гвоздиками, теперь он не прыгает. Немного дребезжит в Firefox, но там какой-то прикол с округлением дробных значений, я не знаю, как это фиксить :) Света.

Comic relief Идёт лысая девочка с бантиком на голове. Навстречу мужик:

— Девочка, а девочка, как же у тебя этот бантик держится?
— Как гвоздиком прибили, так и держится.

Прыгает он по ряду разных причин, я прижгла их все в лоб. Когда никто не может решить задачу изящно, кто-то должен взять на себя смелость взять микроскоп и забить пару гвоздей
Copy link

Превью контента из 3c08aa7 опубликовано.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
вёрстка Задачи по вёрстке дизайн Задачи по дизайну ошибка Что-то критичное и мешает улучшение Доработка существующего
Projects
None yet
5 participants