Журнал

Maxim  •  16 Дек 2025

Жёсткий DOM-контракт начал мешать

В версии `1.5.1` у DialogLite был удобный, но довольно жёсткий договор с разметкой. Контроллер искал первый `.dialog-lite`, знал про…

Maxim  •  04 Ноя 2025

Две плавные шкалы вместо корня 10px

Выпустил `typographics@3.0.0`. Перед стабильным релизом обкатал новую мажорную версию в реальных проектах. Главное изменение оказалось не в…

Maxim  •  20 Сен 2025

Вертикальный ритм на lh в typographics

Выпустил `typographics@2.4.7`. За последние две недели пакет заметно разросся вокруг довольно простой проблемы: на реальной странице одной…

Maxim  •  17 Апр 2025

Один play() для звука в мини-играх

В небольших промо-играх звук обычно нужен в простом формате: пользователь совершил какое-то действие, нажал кнопку, а интерфейс должен на…

Maxim  •  10 Мар 2025

Дорабатываю Iconly изнутри

В `2.0.0` внешний сценарий почти не изменился, я пересмотрел несколько границ внутри библиотеки: как разрешается `container`, как строка…

Maxim  •  09 Мар 2025

Расстаёмся с Custom Element

Custom Element давал `marquee-content` готовые методы жизненного цикла. Проблема появилась при интеграции с фреймворком: одним DOM-узлом…

Maxim  •  09 Мар 2025

Один контроллер вместо диалогов под каждый проект

В разных проектах я снова и снова делал примерно одно и то же: находил контейнер диалога, открывал его, закрывал по кнопке или фону…

Maxim  •  02 Июн 2024

SVG-спрайт в localStorage

Кэшировать SVG-спрайт в браузере сначала кажется задачей на несколько строк. Получил файл, положил строку в `localStorage`, при следующем…