При нажатии на неё тема переходит в «режим чтения»: большая часть интерфейса покрывается слегка прозрачным слоем, чтобы минимизировать отвлекающие факторы.
Также применяются фильтры ко всем аватарам и изображениям, превращая их в черно-белые.
Ниже представлена запись экрана с демонстрацией работы функции.
Компонент доступен в следующих темах, установленных здесь на Meta:
Air Theme
Default
Default (Full Width)
Fully
Meta Branded
Redditish
Sam’s Simple Theme
Это всё ещё черновая версия (WIP), поэтому буду рад любым сообщениям об ошибках или отзывам, которые можно оставить здесь
Я заметил одну вещь: некоторые изменения в стилях вызывают «скачок» макета при нажатии на кнопку. Похоже, что какие-то элементы получают display: none;? Или меняются размеры шрифтов?
Возможно ли сделать так, чтобы кнопка просто «отключала» (или применяла visibility: hidden;) ненужные элементы, не вызывая при этом сдвигов макета?
Как насчет visibility: hidden;? Или opacity: 0;? Чтобы элемент оставался в DOM и участвовал в верстке, но был невидим? Думаю, нам также понадобится что-то, чтобы блокировать клики и фокус на нём? Или, может быть, сделать его видимым снова при наведении или фокусе?
Один относительно безопасный способ — имитировать взаимодействие пользователя:
Да, хорошо, извините за путаницу. Теперь я вас понимаю. Поскольку режим чтения не известен как переключатель для боковой панели, может быть непонятно, что он переключен, что вызывает сдвиг, когда вы этого не хотели.
Кажется, я предположил, что если переключатель боковой панели вызывает сдвиг, то то же самое с режимом чтения не будет иметь значения.
Я могу попробовать не переключать боковую панель и опубликовать здесь видео, чтобы показать вам.
Не уверен, насколько это сложно, но мне показалось бы удобным, если бы пользователь мог нажать ESC, чтобы выйти из режима чтения. Поскольку кнопка считается частью ленты, если прокрутить тему до самого низа, кнопка может уйти за пределы экрана.
Это очень крутая функция. Отличная работа, Джордан!
Как уже сказал Дэвид, я wondering, можно ли не сдвигать содержимое.
Также, есть ли какая-то особая причина для уменьшения исходной ширины? Возможно, я не в курсе некоторых ограничений.
Функциональность: судя по всему, это просто скрывает ленту и панель уведомлений, поскольку боковая панель уже сворачивается. Я не вижу, чтобы пользовательский опыт менялся или улучшался настолько, чтобы добавлять ещё одну кнопку в каждой теме.
Более логичным было бы, если бы это как-то существенно меняло процесс чтения, например, делая контент на всю ширину в режиме чтения. В текущем виде я, вероятно, никогда не буду использовать эту функцию, и, что иронично, она лишь добавляет визуальный шум в ленту.
В долгосрочной перспективе я планирую добавить настройки шрифта, размера текста, ширины контента и т. д. Но пока это всего лишь небольшой эксперимент и работа в процессе.
Последние изменения для ограничения перемещения и обеспечения более плавного перехода были объединены в этот компонент. Спасибо за обратную связь до сих пор
Я могу ответить на первое сообщение или напрямую ответить на сообщения в режиме чтения. Возможно, также стоит добавить возможность отвечать внизу темы?
Да, возможно, я могу также сделать её немного прозрачной. Я пытался скрыть её с помощью плавного перехода, но из-за способа рендеринга элементов в нашем списке иногда это не заметно, и попытка скрыть её становится проблемой.
То же самое касается всех небольших уведомлений о сообщениях и временных разрывов. Единственный способ, который я мог придумать — использовать API наблюдателя за элементами, но даже в этом случае движение немного непредсказуемо, и я замечал случайные подёргивания.
Как только вы включите режим чтения, вам нужно будет кликнуть, чтобы перейти на другую страницу, а затем, если вы хотите снова включить режим чтения, придётся кликнуть ещё раз, чтобы активировать его. Возможно, стоит сделать другие ссылки навигации чуть более заметными, чтобы они работали, и оставлять режим чтения включённым при переходе к следующей теме.
Другая идея: автоматически отключать его, когда вы дойдёте до конца темы.
Или автоматически переходить к следующей теме в последнем посещённом списке тем!