Журнал
Жёсткий DOM-контракт начал мешать
В версии `1.5.1` у DialogLite был удобный, но довольно жёсткий договор с разметкой. Контроллер искал первый `.dialog-lite`, знал про…
Две плавные шкалы вместо корня 10px
Выпустил `typographics@3.0.0`. Перед стабильным релизом обкатал новую мажорную версию в реальных проектах. Главное изменение оказалось не в…
Вертикальный ритм на lh в typographics
Выпустил `typographics@2.4.7`. За последние две недели пакет заметно разросся вокруг довольно простой проблемы: на реальной странице одной…
Один play() для звука в мини-играх
В небольших промо-играх звук обычно нужен в простом формате: пользователь совершил какое-то действие, нажал кнопку, а интерфейс должен на…
Дорабатываю Iconly изнутри
В `2.0.0` внешний сценарий почти не изменился, я пересмотрел несколько границ внутри библиотеки: как разрешается `container`, как строка…
Расстаёмся с Custom Element
Custom Element давал `marquee-content` готовые методы жизненного цикла. Проблема появилась при интеграции с фреймворком: одним DOM-узлом…
Один контроллер вместо диалогов под каждый проект
В разных проектах я снова и снова делал примерно одно и то же: находил контейнер диалога, открывал его, закрывал по кнопке или фону…
SVG-спрайт в localStorage
Кэшировать SVG-спрайт в браузере сначала кажется задачей на несколько строк. Получил файл, положил строку в `localStorage`, при следующем…