SourceForge: https://sourceforge.net/projects/nativeui/
Демо-страница: https://nativeui.sourceforge.io/
Что нового:
.menubar
реализован перенос не помещающихся пунктов в дополнительное подменю, раскрывающееся по крайней кнопке справа..menubar
реализовано раскрытие подменю влево, если нет места для раскрытия вправо..menubar
теперь приобретает компактный вид (кнопка с тремя полосками) при ширине <= 768px и наличии класса .collapsing
.a:visited
) в меню и breadcrumbs теперь имеют тот же цвет, что и все остальные..expanded
), а свёрнуто при наличии класса .collapsed
. Это в свою очередь означает, что он теперь может работать без JS.overflow: hidden
только в процессе изменения его размеров..tabs
теперь имеет прокрутку вкладок колёсиком мыши при наличии класса .scrollable
.initTabs()
. Обработчики click и wheel теперь устанавливаются только на контейнер .nav
, а не на каждую вкладку. Теперь можно в реальном времени добавлять новые вкладки и их содержимое..grid
теперь не использует table, а может использовать любые элементы с классами .row
и .col
(см. пример на демо-странице). Так же ячейки теперь поддерживают классы .padded, shrinked, .align-left, .align-center, .align-right, .align-justify, .valign-top, .valign-middle, .valign-bottom
.input[type=checkbox]
.addDocumentLoadHandler(callback)
, вызывающая callback
при изменении document.readyState
на “interactive”.init()
. Теперь она планирует своё выполнение через функцию addDocumentLoadHandler()
, если первым аргументом не передан HTMLElement
и document.readyState == 'loading'
.SourceForge: https://sourceforge.net/projects/nativeui/ Демо-страница: https://nativeui.sourceforge.io/
Что нового:
position: fixed
, что обеспечивает корректную работу внутри модальных окон.modalViewer()
) теперь срабатывает перелистывание методом drag’n’drop, если изображение увеличено, но не выходит за пределы окна просмотра.modalViewer()
теперь поддерживает опцию fullscreen, которая указывает на запуск просмотрщика в полноэкранном режиме. Её можно передать через объект вторым аргументом функции modalViewer(), либо указать в объекте app.modalViewerDefaults
.modalClose()
и modalViewer()
теперь ожидают завершения анимаций, длительность которых задаётся в CSS. Ранее длительность анимаций была продублирована в CSS и JS, что требовалось учитывать при изменении CSS.url("data:image/svg+xml,…")
) для кроссбраузерной совместимости. При использовании одинарных кавычек в некоторых старых браузерах SVG не отображается.:after
с clear: both
добавлен font-size: 0
. Это гарантирует, что они будут иметь нулевую высоту.getClosest()
теперь останавливается на элементе, который не является instanceof HTMLElement
(обычно на корневом элементе <html>), и не вызывает для него callback.Не всегда у нас есть время или желание читать новые посты и сообщения, комментировать и отвечать на них. Особенно в последние годы, когда сильно увеличилось количество информации, проходящей через мозг среднестатистического пользователя мессенджеров и соцсетей. Иногда бывает очень целесообразно отложить это на потом, пометив посты или сообщения как непрочитанные. Но пока что чуть ли не единственное средство онлайн-коммуникации, которое позволяет это сделать — это e-mail. Ни один из известных мне мессенджеров, ни та же Akkoma (web-интерфейс для Fediverse), в которой я пишу этот пост, не имеет данной крайне важной функциональности. Выбрать чат в списке и нажать «Пометить как непрочитанное» — это не то. Это работает не так как в e-mail, а лишь помечает, что в чате есть непрочитанные сообщения, но не помечает, какие именно. Но в Akkoma нет и этого. В случае мессенджеров и соцсетей, таких, как Telegram и VK, дело, как я полагаю, в ограничениях архитектуры серверной части, из-за которых такую функциональность нельзя внедрить без последствий.
Уважаемый разработчик! Если ты читаешь этот пост и являешься разработчиком какого-либо средства коммуникации — пожалуйста, подумай заранее о том, как реализовать функционал пометки сообщений или постов как непрочитанных! Это не чья-то прихоть, это реальная необходимость в нашем информационно перегруженном мире! Не совершай ошибку, которую совершает большинство разработчиков!
СПО — свободное ПО. Альтернативная расшифровка: Специальная Программерская Операция (по депроприетаризации и рационализации ПО). Которая с высокой вероятностью может превратиться в войну, ибо капиталисты так просто своего не отдадут.
Закончил работу над своей библиотекой NativeUI. Это CSS и JavaScript библиотека, сделанная в соответствии с принципом KISS и ориентированная на использование стандартных возможностей, предоставляемых браузерами, которые наиболее оптимизированы под каждую конкретную платформу, а значит обеспечивают наилучшую производительность и удобство для пользователя. Библиотека обеспечивает кроссбраузерное поведение и стилизацию встроенных в браузер элементов пользовательского интерфейса и форматирования текста, добавляет часто используемые элементы, такие, как модальные окна, просмотрщик изображений, меню, вкладки, сообщения в формах и т. д. Также содержит некоторые полезные в разработке JavaScript-функции, например request()
и getFormData()
.
Страница проекта на SourceForge: https://sourceforge.net/projects/nativeui/ Демо-страница, где можно увидеть библиотеку в действии: https://nativeui.sourceforge.io/
#opensource #open_source #css #js #framework #microframework #library