Будни разработчика
Блог Lead JS-разработчика Автор: @bekharsky По рекламе: https://telepost.pro/ch/id2415 или https://t.me/it_adv Чат: https://t.me/htmlshitchat №5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978
Mostrar más📈 Análisis del canal de Telegram Будни разработчика
El canal Будни разработчика (@htmlshit) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 14 405 suscriptores, ocupando la posición 8 603 en la categoría Tecnologías y Aplicaciones y el puesto 44 803 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 14 405 suscriptores.
Según los últimos datos del 05 octubre, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -112, y en las últimas 24 horas de -7, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 8.96%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 5.27% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 1 291 visualizaciones. En el primer día suele acumular 760 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 17.
- Intereses temáticos: El contenido se centra en temas clave como css, api, scroll, --fade, bottom.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Блог Lead JS-разработчика
Автор: @bekharsky
По рекламе: https://telepost.pro/ch/id2415 или https://t.me/it_adv
Чат: https://t.me/htmlshitchat
№5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 06 octubre, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
title и о принятом рабочей группой CSS предложении добавить псевдо-элемент ::tooltip от Лии Веру. Похоже, команда Edge займётся тултипами, о чём можно судить по статье Патрика Броссета.
Дисклеймер: это обзор раннего предложения новых функций. Синтаксис может измениться в будущем или от функций могут отказатьсяОбщая практика такова, что стоит избегать использования атрибута
title из-за ряда проблем. Патрик описывает эти проблемы в статье. Текущее решение команды Edge — добавить опциональный «сброс», как это сделано в стилизуемом <select>:
<style>
/*
Новый псевдо-элемент,
выбирает все тултипы
*/
::tooltip {
/* Включение стилизации */
appearance: base;
/* Стили тултипа */
}
</style>
<button title="Это тултип">
Наведи на меня
</button>
Свойство appearance: base включает стилизацию. Системный тултип заменяется на псевдо-элемент с базовыми стилями. Он привязан к элементу с помощью Anchor Positioning и работает под капотом на основе Popover API и Interest Invokers.
Это решает многие проблемы с тултипом title:
- Появляется при наведении и фокусе;
- Стилизуется как обычный псевдо-элемент;
- Задержка появления контролируется свойством interest-delay;
- Реагирует на изменение размера шрифта;
- Закрывается при нажатии Esc;
- Можно навести курсор на контент.
Но некоторые проблемы доступности не решаются. Вспомогательные технологии работают с title непоследовательно. Кроме того, в сообществе есть стойкое убеждение, что title это плохо и его не стоит использовать.
В качестве альтернативы предлагается новый атрибут tooltip. Он работает как title, но без отображения системного тултипа, с определённой семантикой и связями и ограничен <button>, <a>, <input>, <textarea>, <select>:
<style>
::tooltip {
/* Стили тултипа */
}
</style>
<button tooltip="Это тултип">
Наведи на меня
</button>
С точки зрения доступности рекомендации для стилизуемых тултипов выглядят так:
- Не переопределяют имя элемента;
- Встроенная роль tooltip;
- Элемент ссылается на тултип через aria-describedby.
Но есть и другой способ создания тултипов — сочетание уже существующих Popover API и Interest Invokers. Вместо атрибута можно использовать элемент, связать его с триггером через Anchor Positioning и добавить поведение через атрибуты:
<!--
interestfor связывает кнопку
с тултипом и отображает
при наведении и фокусе
-->
<button
interestfor="my-tooltip"
aria-describedby="my-tooltip"
>
Наведи на меня, у меня есть тултип с HTML
</TMLbutton>
<!--
popover делает элемент
всплывающим и позволяет
добавить любой контент
-->
<div
id="my-tooltip"
popover
role="tooltip"
>
Это тултип с <span>HTML</span>
</div>
В свежем 547 выпуске Веб-стандартов обсуждалась статья Патрика. Ведущие задались вопросом: зачем нам два разных способа создания тултипов, когда Popover и Interest Invokers решают задачу? Я вижу это как решения разных задач.
Простые задачи должны решаться просто. Атрибут title/tooltip и псевдо-элемент ::tooltip как раз для простых задач, где нужно вывести короткий текст или подпись к элементу. Браузер сам сделает магию связывания и доступности.
В более сложных сценариях, когда нужны тултипы с HTML или тонкий контроль, в дело вступают Interest Invokers. Но с ними нужно больше повозиться, чтобы сделать хорошо. Часть магии браузера не будет автоматически применяться.
Поэтому нужно вручную:
- Добавить отдельный элемент с popover, id и role;
- Позиционировать тултип относительно триггера через Anchor Positioning;
- Добавить триггеру interestfor и aria-describedby;
- Стилизовать тултип.
Это немного больше работы, чем просто указать текст в атрибуте и стилизовать в CSS через псевдо-элемент. Поэтому оба подхода уместны на мой взгляд. Патрик пишет, что даже стили остаются, меняется только селектор.
Можно оставить обратную связь по предложению Edge.
#html #css #ui
let y = frame.animate(&fframes::timeline!(
at 0.0 => 0.5, animate 200.0_f32 => 120.0,
fframes::animation::Easing::EaseOut,
));
fframes::svgr!(
<text x="80" y={y} font-size="64" fill="#fff">
"Всё есть код."
</text>
)
Наш ролик: 886×1920, 30 fps, 450 кадров. Сам экспорт после сборки проекта занял около пяти секунд.
Все сцены, тексты и переходы лежат в исходниках. Можно хранить проект в Git, смотреть изменения и переиспользовать анимации для следующих роликов.
Причём самому писать Rust необязательно: говоришь агенту «кнопки пусть появляются по очереди», «телефон крупнее», «убери музыку» — он правит код и пересобирает видео. Но API настолько простой, что поправить что-то проблем вообще не составляет.
По пути узнал, что аналогичные видео Codex по-умолчанию создаёт на Python + Pillow, но это чуть менее эффективно.
Короче, такое монтирование видео мне очень и очень нравится.
🎞 Сайт
🐙 GitHub
Всё есть код, котаны.
#rust #fframesDESIGN.md, который можно скормить Cursor, Claude Code, Codex или чему-нибудь ещё и попросить делать «примерно вот так».
А The Component Gallery заходит с другой стороны: выбираешь конкретный компонент — tabs, accordion, popover, pagination — и смотришь, как он устроен в разных дизайн-системах. Сейчас там 60 типов компонентов, 95 дизайн-систем и больше 2600 примеров.
По сути, это та самая витрина компонентов, которая когда-то была одной из самых полезных частей Storybook Component Encyclopedia. Сам Storybook с тех пор ушёл гораздо дальше в сторону полноценной инфраструктуры для разработки, тестирования и документации, а простое «покажи мне двадцать разных tabs рядом» стало искать заметно сложнее.
Так что Refero — скорее про стиль целиком, Component Gallery — про конкретный паттерн. Для вопроса «а как вообще принято делать вот эту штуку?» оба отлично подходят.
#design #skillhtmlshit персональные билеты дешевле
Купить билет
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446feComponentTransfer переводит оттенки в цвет по таблицам RGB.
5. На финальном шаге контур возвращает буквам чёткость, а зерно добавляет фактуру. Цвет контура зависит от градиента и меняется вместе с ним.
Хороший пример показывает результат по этапам: включил шаг — увидел, что он добавил. Ещё полезно приложить минимальный запускаемый код, дать менять параметры и отметить, если часть значений пришлось восстановить приблизительно.
Собственно, вот вам хороший пример от меня: https://codepen.io/editor/alinaki/pen/01a0f735-901e-7978-a733-f7e89bd82597
Видео хорошо передаёт движение. Демо и код помогают разобраться, повторить и поэкспериментировать.
Хотелось бы, чтобы и публиковали их вместе.
#css #svg #effect #animation-webkit-text-stroke-color
Несмотря на префикс, Firefox тоже его поддерживает (спорное решение, но уж как есть).
Вот только как всегда есть нюанс. По-умолчанию, обводка будет нарисована перед слоем с текстом. Это очевидно, если понимать разницу между штрихом (stroke) и обводкой (outline), но всё же.
Поэтому paint-order: stroke нам в помощь! Таким образом, штрих будет отрисован первым, натуральным образом превратившись в обводку (при достаточной толщине, конечно же):
-webkit-text-stroke-color: white;
-webkit-text-stroke-width: var(--stroke);
paint-order: stroke;
#css #stroke #outline
.menu-item:target {
animation: blink 150ms linear;
}
.menu:has(.menu-item:target) {
animation: close 150ms step-end forwards;
}
То есть выбранный пункт моргает, а меню ждёт те же 150 мс перед скрытием.
Вот даже собрал кодпен с примером: https://codepen.io/editor/alinaki/pen/01a0f12b-8d69-7192-90d7-b8b7562ef482
Без JavaScript это можно собрать через :target и :has(): выбранный пункт хранится в URL fragment. Для демки подходит отлично, для обычного компонента я бы всё-таки оставил состояние и закрытие на JS, а blink — в CSS.
Apple отдельно описывает такую обратную связь в HIG:
https://developer.apple.com/design/human-interface-guidelines/feedback
Такая-то мелочь, а насколько сильно меняется восприятие!
#css #macos #higreset, reflog и прочие вещи, которые приходится отдельно учить даже после многих лет работы.
Потом появился GitHub. Git уже был, но совместная работа вокруг него требовала заметно больше ручной возни. GitHub собрал в одном месте репозитории, форки, просмотр кода, обсуждения и pull requests. Именно после этого Git стал удобен не только как VCS, но и как основа всей работы вокруг кода.
А дальше Git просто стало трудно не выбрать. На нём жил open source, его знали разработчики, его поддерживали IDE, CI и хостинги.
При этом Subversion не превратился в мусор: если проекту важнее централизованный контроль, частичная выдача огромного дерева или работа с тяжёлыми бинарниками, такая модель до сих пор может быть удобнее.
Кто-то из вас, котаны, застал или сидит до сих пор на svn?
Иллюстрация: GitKraken.
#svn #gitnpm i math. Имя math на npm им отдал Kaleb Hornsby.
Репозиторий при этом старый и несколько лет толком не обновлялся. Теперь проект заметно переделали и выпустили math v0.1.0.
Возможностей навалили с верхом: векторы, матрицы и кватернионы, 2D/3D-геометрия, raycast и frustum, triangulation и quickhull, easing и springs, seeded random, несколько видов noise, цвета и inverse kinematics.
API сделан с расчётом на производительность. Функции пишут результат в переданный out, а не создают новый объект на каждом вызове, данные остаются обычными массивами, формат аргументов и возврата един.
Плюс всё разбито на отдельные точки входа и нормально тришейкится.
Поэтому использовать math можно хоть с WebGL, хоть с WebGPU, Wasm или собственным рендерером — библиотека сама не тащит за собой ещё один объектный мир.
Ну и без AI-обвязки релиз теперь, видимо, считается незаконченным: вместе с библиотекой положили /math skill, который объясняет coding agent, как пользоваться API и писать более экономный по памяти data-oriented код.
https://github.com/pmndrs/math
#math #library𝚝𝚎𝚡𝚝𝚊𝚛𝚎𝚊 {
𝚏𝚒𝚎𝚕𝚍-𝚜𝚒𝚣𝚒𝚗𝚐: 𝚌𝚘𝚗𝚝𝚎𝚗𝚝;
𝚖𝚊𝚡-𝚑𝚎𝚒𝚐𝚑𝚝: 𝟻𝚕𝚑;
}
Современные единицы измерения, конечно, крутая штука :)
Автор
#css #textarea #lh@media, а именно когда между ними заканчивается место.
Решение довольно извращённое: через Anchor Positioning он создаёт невидимый .measure между элементами, добавляет туда псевдоэлемент фиксированной ширины и ждёт, когда контейнер начнёт overflow'иться. Дальше Scroll-driven Animations используются вообще не для анимации, а как детектор этого overflow: timeline переключает CSS-переменную, а style query уже скрывает нужный элемент.
То есть CSS всё ещё не умеет спросить «эти два элемента пересеклись?», но если достаточно долго смотреть на Anchor Positioning, timeline-scope, overflow и container queries — оказывается, можно заставить его ответить.
Поддержка, разумеется, пока не универсальная, поэтому сам Шадид рассматривает это как progressive enhancement.
Ссылка: https://ishadeed.com/article/css-detect-overlap/
#css #scroll #overlapdiv с overflow: auto: восстанавливает позицию после перехода назад, прокручивает страницу с клавиатуры, обслуживает window.scrollY / scrollTo, нормально делает печать и полностраничные скриншоты.
На мобильных от него ещё зависят схлопывание адресной строки, tap-to-top на iOS и pull-to-refresh.
Проблема в том, что отказаться от всего этого очень легко. Классический app shell:
html, body { height: 100%; overflow: hidden }
и потом height: 100vh; overflow: auto на wrapper — визуально страница продолжает совершенно нормально скроллиться, только теперь скроллится не документ, а вложенный контейнер. Ещё более неприятный вариант — сочетание height: 100% и overflow-x: hidden: из-за правил overflow body тоже может незаметно превратиться в scroll container.
Проверяется смешно просто: прокрутить страницу и посмотреть window.scrollY. Если там всё ещё 0, скроллится что-то другое. Автор дальше разбирает типичные случаи — full-height layout, fixed header/sidebar, горизонтальный overflow, блокировку скролла под modal — и показывает, как оставить основной скролл браузеру. Например, использовать min-height: 100svh вместо фиксированного 100vh, position: sticky вместо app shell с отдельным скроллом, а для обрезки горизонтального overflow — clip вместо hidden.
Ссылка ещё раз: The root scroller and how not to lose it
#css #scroll #root #appshell