Posts
15
Following
4
Followers
2
Техноман и рационализатор. Мои базовые ценности — правда и справедливость (если с кем-то и возникают конфликты, то обычно на этой почве). Не переношу ложь и лицемерие, на ложь и манипуляции у меня обострённое чутьё. Осторожен в выводах, стремлюсь к пониманию другого человека, от других ожидаю того же.

Мои интересы:
• Компьютеры и их программная часть, автоматизация, сети, программирование и web-разработка, Linux (Debian), open source и СПО.
• Техника и технологии в самом широком смысле, электроника.
• Музыка разных направлений и годов, электронная и не только. Увлекаюсь сведением музыки (диджеингом) с нулевых годов, а также немного её написанием и мастерингом.
• Исследование разных интересных мест, велосипед и поездки на нём.
• Психология, типологии личности.
• История и культура XX века, документальные фильмы.
Вышла версия 1.3.0 библиотеки NativeUI!
Show content

SourceForge: https://sourceforge.net/projects/nativeui/

Демо-страница: https://nativeui.sourceforge.io/

Что нового:

  • Для элемента .menubar реализован перенос не помещающихся пунктов в дополнительное подменю, раскрывающееся по крайней кнопке справа.
  • Для элемента .menubar реализовано раскрытие подменю влево, если нет места для раскрытия вправо.
  • Элемент .menubar теперь приобретает компактный вид (кнопка с тремя полосками) при ширине <= 768px и наличии класса .collapsing.
  • Посещённые ссылки (a:visited) в меню и breadcrumbs теперь имеют тот же цвет, что и все остальные.
  • Элемент breadcrumbs теперь использует обратную логику: по умолчанию находится в развёрнутом состоянии (а не только при наличии класса .expanded), а свёрнуто при наличии класса .collapsed. Это в свою очередь означает, что он теперь может работать без JS.
  • Элемент breadcrumbs теперь имеет 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.
  • Исправлен border-radius для input[type=checkbox].
  • Добавлена функция addDocumentLoadHandler(callback), вызывающая callback при изменении document.readyState на “interactive”.
  • Изменена логика работы функции init(). Теперь она планирует своё выполнение через функцию addDocumentLoadHandler(), если первым аргументом не передан HTMLElement и document.readyState == 'loading'.
0
0
1
Edited 11 days ago
Вышла версия 1.2.0 библиотеки NativeUI!
Show content

SourceForge: https://sourceforge.net/projects/nativeui/ Демо-страница: https://nativeui.sourceforge.io/

Что нового:

  • Добавлен элемент интерфейса «навигационная цепочка» (также известный как «хлебные крошки» или breadcrumbs). Поддерживает сворачивание и разворачивание для длинных путей.
  • Мобильное меню теперь не использует position: fixed, что обеспечивает корректную работу внутри модальных окон.
  • Изменена анимация в мобильном меню с перелистывания на плавное появление с увеличением. Теперь анимации используют translate, что обеспечивает аппаратное ускорение средствами GPU и предотвращает пересчёт (reflow) позиций и размеров элементов.
  • В просмотрщике изображений (modalViewer()) теперь срабатывает перелистывание методом drag’n’drop, если изображение увеличено, но не выходит за пределы окна просмотра.
  • modalViewer() теперь поддерживает опцию fullscreen, которая указывает на запуск просмотрщика в полноэкранном режиме. Её можно передать через объект вторым аргументом функции modalViewer(), либо указать в объекте app.modalViewerDefaults.
  • Padding теперь задан не для .modal-window, а для .modal-content — корневого элемента, в котором находится содержимое модального окна.
  • Функции modalClose() и modalViewer() теперь ожидают завершения анимаций, длительность которых задаётся в CSS. Ранее длительность анимаций была продублирована в CSS и JS, что требовалось учитывать при изменении CSS.
  • Левый padding у select теперь такой же, как и у кнопок.
  • Ссылки (<a>) на изображения, открываемые в просмотрщике, теперь поддерживают атрибут data-load-url, позволяющий указать альтернативную ссылку для загружаемого в просмотрщике изображения.
  • Таблицы с сортировкой table.sortable теперь поддерживают строки, закреплённые сверху или снизу (tr.fixed-top и tr.fixed-bottom соответственно).
  • SVG внутри CSS теперь заключен в двойные кавычки (url("data:image/svg+xml,…")) для кроссбраузерной совместимости. При использовании одинарных кавычек в некоторых старых браузерах SVG не отображается.
  • Для псевдоэлементов :after с clear: both добавлен font-size: 0. Это гарантирует, что они будут иметь нулевую высоту.
  • Функция getClosest() теперь останавливается на элементе, который не является instanceof HTMLElement (обычно на корневом элементе <html>), и не вызывает для него callback.
  • Небольшие исправления и косметические улучшения в коде.
0
0
1
Асинхронное общение и что ему мешает
Show content

Не всегда у нас есть время или желание читать новые посты и сообщения, комментировать и отвечать на них. Особенно в последние годы, когда сильно увеличилось количество информации, проходящей через мозг среднестатистического пользователя мессенджеров и соцсетей. Иногда бывает очень целесообразно отложить это на потом, пометив посты или сообщения как непрочитанные. Но пока что чуть ли не единственное средство онлайн-коммуникации, которое позволяет это сделать — это e-mail. Ни один из известных мне мессенджеров, ни та же Akkoma (web-интерфейс для Fediverse), в которой я пишу этот пост, не имеет данной крайне важной функциональности. Выбрать чат в списке и нажать «Пометить как непрочитанное» — это не то. Это работает не так как в e-mail, а лишь помечает, что в чате есть непрочитанные сообщения, но не помечает, какие именно. Но в Akkoma нет и этого. В случае мессенджеров и соцсетей, таких, как Telegram и VK, дело, как я полагаю, в ограничениях архитектуры серверной части, из-за которых такую функциональность нельзя внедрить без последствий.

Уважаемый разработчик! Если ты читаешь этот пост и являешься разработчиком какого-либо средства коммуникации — пожалуйста, подумай заранее о том, как реализовать функционал пометки сообщений или постов как непрочитанных! Это не чья-то прихоть, это реальная необходимость в нашем информационно перегруженном мире! Не совершай ошибку, которую совершает большинство разработчиков!

2
0
1

СПО — свободное ПО. Альтернативная расшифровка: Специальная Программерская Операция (по депроприетаризации и рационализации ПО). Которая с высокой вероятностью может превратиться в войну, ибо капиталисты так просто своего не отдадут.

0
0
1

Закончил работу над своей библиотекой 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

0
0
0
Show older