mefody.dev – Telegram
mefody.dev
5.31K subscribers
14 photos
1 video
3 files
425 links
Доброжелюбный бородач про фронтенд, тимлидство, спикерство.
Автор — @dark_mefody

Канал про работу: @mefody_work.

Не размещаю рекламу в своём канале. Даже за деньги. Даже большие.
Download Telegram
Примеры использования field-sizing

Есть такая мощная комбинация для элементов форм: field-sizing: content. Напишете так — получите подстраивание размера инпута под контент внутри.

Ахмад Шадид делится различными примерами, где применение свойства выглядит полезным.

Напомню, пока что свойство работает только в Chromium-браузерах. Но остальные браузеры с каждым релизом потихоньку проходят всё больше тестов, а прогрессивное улучшение никто не отменял.

https://ishadeed.com/article/field-sizing/
👍37🔥51
Pikaday

Pick a day. Выбери день. Дейтпикер, короче.

Дэвид Бушелл делится гайдом, как собрать хороший дейтпикер для сайта. Спойлер: нативные инпуты.

На самом деле любая JS-библиотека не будет решать все ваши задачи. В них есть как баги доступности, так и проблемы совместимости с вашими дизайн-системами. Вам всегда будет чего-то не хватать, а модифицировать библиотеку под себя иногда почти нереально.

При этом нативные инпуты тоже не идеальный вариант. В разных браузерах разный внешний вид. Нужно писать код руками (о ужас!).

Но в гайде есть примеры, как сделать хорошо. И доступно. И удобно.

Гайд в процессе написания, так что можете присылать автору свои идеи и комментарии.

https://pikaday.dbushell.com/
1033👍9🤔3🔥2
Форматы изображений: кодеки и инструменты сжатия

Полина Гуртовая продолжает цикл статей про цвета и пиксели. Теперь — про сжатие белочек и прятание вороны.

Полина берёт изображение белочки размером 2733 × 3727 пикселей с глубиной цвета 16-bit. И затем с различными параметрами сжимает эту картинку в JPEG и AVIF. Интересно посмотреть, как наивный подход без изменения параметров сжатия по дефолту отличается от более глубокого манипулирования SSIM и MSE.

В конце статьи есть полезные советы, как в несколько шагов организовать работу с изображениями в веб-приложении, чтобы экономить трафик и не напрягать пользователя шакальными картинками.

https://developer.mozilla.org/en-US/blog/image-formats-codecs-compression-tools/
24👍9🎉5😍2
Доклад «Давай поиграем со шрифтами»

Пару недель назад делился слайдами доклада, а теперь появилось видео. Обещал выложить — держу обещание.

В докладе рассказал, как в 2025 году можно работать со шрифтами, почему рендеринг текста вас ненавидит, можно ли сделать пиксель-пёрфект и зачем разработчику знания типографики.

Приятно удивлён, что этот доклад получил топ-1 по оценкам зрителей. Как говорил Тор: «Всё ещё достоин».

https://youtu.be/ktoxhEQqS60
👍4315🔥6🎉5❤‍🔥1😁1
HTML-in-Canvas

Увидел сначала в твиттерах, потом в чатике редакции «Веб-стандартов» ссылочку на пропозал: рендерить HTML внутри Canvas.

«Шо, опять?» — подумал я. До этого были разной степени проработанности идеи уже, через CSS картинку рендерить, через Browser API. И библиотеки есть популярные, которые эту задачу худо-бедно решают. Основная сложность в том, что для решения задачи нужно либо полностью скопировать поведение браузера (дорого и сложно), либо ограничиться каким-то набором поддерживаемых свойств. И весят все существующие решения прилично.

Но в этот раз как будто всё серьёзно. Потому что в Chrome Canary 138.0.7175.0+ уже можно включить специальный флаг, чтобы начать пользоваться апишкой для экспериментов.


const ctx = document.getElementById('canvas').getContext('2d');
const element = document.getElementById('element');
ctx.drawElementImage(element, 0, 0);


Да, вот так просто. Заинтригован. Буду следить за развитием пропозала.

https://github.com/WICG/html-in-canvas
👍27🔥15😱91🐳1🤨1
«Самые ненавидимые» фичи в CSS

По результатам опроса State of CSS 2025 тригонометрические функции победили в номинации 'Most Hated'. Всего 9.1% респондентов отметили, что фича прям не нравится, но этого оказалось достаточно, чтобы выйти в топ.

Хуан Диего Родригез по этому поводу написал целую серию статей, где при помощи демок показывает, в каких частях интерфейса тригонометрия всё-таки может быть полезна.

На мой субъективный взгляд самые полезные всё-таки тангенс и арктангенс. Потому что приходилось верстать сложные градиенты, где нужно хитро высчитать угол этого градиента. Или рисовать адаптивные скошенные уголки. Когда есть x и y, без всяких гипотенуз можно высчитать угол, а зная угол — сделать красивое. А для имитации физически верных анимаций вам нужны синусы и косинусы, из комбинации которых можно составить почти любую непрерывную сложную анимацию.

И да, это Baseline Widely Available, то есть не что-то новое и нигде не работающее, а вполне себе стабильные фичи.

cos() и sin():
https://css-tricks.com/the-most-hated-css-feature-cos-and-sin/

tan():
https://css-tricks.com/the-most-hated-css-feature-tan/

a-():
https://css-tricks.com/the-most-hated-css-feature-asin-acos-atan-and-atan2/
🔥21🤔8🤣3😐21👍1🥴1🤨1
Адвент-календарь HTMHell

Мануэль Матузович в 2021 году запустил первый HTMHell Advent Calendar, в котором собрал ссылки на полезные материалы, видео, статьи и инструменты. В 2022 году этот проект превратился в сборник 24 статей от 24 авторов со всего мира про веб-разработку.

Сегодня стартовал новый цикл. Один день — одна статья. Я точно все прочитаю, потому что в прошлом году нашёл для себя довольно много нового и полезного. И вам советую.

https://htmhell.dev/adventcalendar/
🔥47👍105😁4🎉3
Пикселизация при помощи SVG

Ещё одну интересную демку нашёл. Джей Томпкинс собрал SVG-фильтр, который превращает обычную фотографию в пиксельную. Причём в демке можно поиграться с размером тайла, точкой старта, применяемым фильтром.

Как оно работает:
Шаг 1. При помощи feFlood, feComposite и feTile создаём паттерн, где однопиксельные белые точки расположены в сетке 10x10.
Шаг 2. При помощи ещё одного фильтра feComposite смешиваем паттерн и картинку. Вместо белых пикселей теперь получаем пиксели с цветами из оригинального изображения. Но всего 1% этих пикселей, остальные чёрные.
Шаг 3. Применяем feMorphology с оператором dilate, чтобы «раздуть» пиксели во все стороны. Можем задавать радиус, чтобы сделать либо эффект мозаики, либо эффект LED-пикселей на чёрной подложке.

На самом деле для меня это всё ещё некоторая магия, но чем больше смотрю таких демок, тем лучше их понимаю и уже даже могу что-то сам воспроизвести, подглядывая. Фильтры в SVG — мощь.

https://codepen.io/jh3y/pen/pvyZZmO
👍30🔥91🎉1
CVE-2025-55182

Если коротко, обновите Next.js и React.

Если чуть длиннее, то реализация React Server Components содержит критическую уязвимость, которая позволяет выполнять на сервере то, что вы не просили выполнять. Даже если вы не используете RSC.

Затронуло версии:
- Next.js 15.x
- Next.js 16.x
- Next.js 14.3.0-canary.77+
- React 19.0, 19.1.0, 19.1.1 и 19.2.0

Ну и на самом деле зацепило react-server-dom-parcel, react-server-dom-turbopack и react-server-dom-webpack, так что обновлять надо всё, что от них зависит.

Вот так популярный фреймворк навёл шороху во фронтенде не самым лучшим образом за очень короткое время.

https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
🥴47💯11🐳5🤣5😁3🔥21
Привязываем крестик к диалогу

Задача: нарисовать крестик в диалоге (попапе), который визуально выходит за границы диалога. Много видел разных реализаций в разные эпохи, дизайнеры рисуют такие макеты на моей памяти с тех времён, как появились модалки на position: fixed.

Важно, в этой задаче нужно учитывать семантику. Если вы не хотите разломать клавиатурную навигацию и доступность, крестик-кнопка должен быть внутри элемента-модалки.

Дарин Сеннефф предлагает современный вариант с Invoker Command и Anchor Positioning, где кода нужно сильно меньше, а результат вполне себе неплохой.

https://www.darins.page/articles/close-button-hang-dialog
32🥴3👍2❤‍🔥1
Никаких токенов! Обезопашиваем npm publish

С учётом последних «весёлых» событий в мире npm любые хорошие советы, как работать с пакетами, не будут зря.

Зак Лезерман делится набором как раз таких советов. Мне понравился про ввод паролей только через менеджер паролей — ведь и правда автоматика менее подвержена фишингу, чем человеческое невнимание.

https://www.zachleat.com/web/npm-security/
👍103🤨2🎉1🌚1
Ещё пара уязвимостей в React Server Components

Спустя неделю после просьбы обновить уязвимые библиотеки команда React просит сделать это снова. На этот раз исследователи нашли две уязвимости, которые могут быть крайне неприятны.

CVE-2025-55184 и CVE-2025-67779 — позволяет дёрнуть серверную функцию так, чтобы вызвать бесконечный цикл, что может грохнуть или избыточно нагрузить ваш серверный CPU.

CVE-2025-55183 — позволяет достать исходный код серверной функции. Опасно, только если вы прямо в коде храните пароли или супер-секретную бизнес-логику пишете прям в серверных функциях.

В общем, снова нужно обновить библиотеки из списка в статье. И фреймворки, у которых они в зависимостях (особенно Next.js).

Интересно, как много команд завело встречку в календаре обсудить «Переезд на <не-реакт, подставить нужное>».

https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-components
🌚40😁30😢103😐3😱2🐳2
Голосование за фичи веб-платформы

WebDX Community Group предлагает «новый» способ влиять на вес фичей в бэклогах браузеров. Теперь в виджетах со статусом Baseline в разных источниках рядом с названием фичи появился счётчик лайков. Когда вы на него кликните, то сможете перейти в ишью на гитхабе, где тоже можете лайкнуть, если вам фича откликается и вы её хотите начать применять.

Почему «новый» в кавычках? Потому что похожий механизм был у Interop 2025 и ранее. Отличие в том, что эти лайки собирают не только перед марш-броском планирования нового года в Interop, а постоянно.

И да, как и в Interop, ваши лайки — это не гарантия того, что браузеры самые залайканные фичи возьмут в работу немедленно. Так вы даёте сигнал, что сообщество разработчиков нуждается в фиче. А заодно комментом можете добавить больше контекста с примерами, почему фича вам действительно нужна — это поможет добавить полезных тестов.

Полезное изменение. Любой сигнал от комьюнити лучше, чем его отсутствие.

https://web.dev/blog/upvote-features?hl=en
🔥112👏1
CSS 2025: Baseline Widely Available — тирлист

Ребята из HTML Academy позвали вечером в формате лайва обсудить фичи CSS, которые в этом году перешли в статус Baseline Widely Available. Знаю, что Лёша Симоненко подготовил тирлист, будем распределять их по мощности. Подозреваю, не обойдётся без аниме :)

Забегайте в 20:00 пообщаться через комментарии.

https://www.youtube.com/live/ASLry05R8T8
🔥24🎉43
Web Performance Calendar 2025

Ещё один адвент-календарь для фронтендеров. На этот раз про перфоманс.

Уже есть 22 статьи, ещё парочка доедет в течение ближайших дней. Core Web Vitals, инсайты после исследований перфоманса, оптимизация трафика, неблокирующий рендеринг картинок, соточка в Lighthouse, полезные инструменты и прочие темы для фанатов быстрого веба.

https://calendar.perfplanet.com/2025/
23👍4🔥4😁1
RSC Explorer

После всяких CVE-2025-55182 и прочих «маркетинговых кампаний» вокруг React Server Components всё чаще видел в твиттерах запрос: «Вот было бы круто иметь удобный визуализатор тех самых RSC-запросов, чтобы дебагать».

И вот Дэн Абрамов как раз делится таким инструментом под названием RSC Explorer.

По сути это такая песочница, куда можно загнать ваш серверный и клиентский код, чтобы посмотреть, как между ними гоняются данные в процессе рендеринга RSC-приложения. Сложную файловую структуру не ждите, есть буквально два окошка, куда нужно вставить код. Но для демок этого вполне себе хватит. Те же CVE погонять можно, чтобы лучше их понять.

В репозитории написано, что проект полностью навайбкожен.

https://overreacted.io/introducing-rsc-explorer/
🔥16🤔7😁53👍1