Калькулятор метрик шрифта для font-size-adjust
Есть такое замечательное и мощное свежее свойство для шрифтов,
Попробую объяснить на примере:
• Допустим, у вас есть шрифт Roboto.
• Его прописные буквы по высоте составляют 0.713 от размера шрифта.
• Его строчные буквы по высоте составляют 0.531 от размера шрифта.
• Получается, если размер шрифта — 72px, то
Теперь, если вам нужно на момент загрузки шрифта Roboto показать фолбек системным шрифтом, вы можете написать
Откуда я взял числа для вычислений? По ссылке ниже. Простая страничка, работает сугубо на клиенте. Загрузили шрифт — получили метрики. Удобно. Вот бы ещё PWA из неё собрать — вообще счастье было бы.
https://clagnut.com/sandbox/font-size-adjust.html
Есть такое замечательное и мощное свежее свойство для шрифтов,
font-size-adjust. Оно позволяет задавать отношение некоторого размера из свойств шрифта к самому размеру шрифта.Попробую объяснить на примере:
• Допустим, у вас есть шрифт Roboto.
• Его прописные буквы по высоте составляют 0.713 от размера шрифта.
• Его строчные буквы по высоте составляют 0.531 от размера шрифта.
• Получается, если размер шрифта — 72px, то
cap-height будет 51.336px, а ex-height — 38.232px.Теперь, если вам нужно на момент загрузки шрифта Roboto показать фолбек системным шрифтом, вы можете написать
font-size-adjust: ex-height 0.531 — и строчки после загрузки прыгать не будут. Или если в одной строке нужно показать два разных шрифта зачем-то, то тоже можно сделать красиво.Откуда я взял числа для вычислений? По ссылке ниже. Простая страничка, работает сугубо на клиенте. Загрузили шрифт — получили метрики. Удобно. Вот бы ещё PWA из неё собрать — вообще счастье было бы.
https://clagnut.com/sandbox/font-size-adjust.html
🔥42❤6❤🔥3👍1🌚1
Под капотом нового фронтенда MDN
Если вы всё ещё читаете актуальную документацию на MDN, а не просите совсем всё делать вашу LLM («Вы, чего, и конфеты за меня есть будете?»), то могли заметить, что у MDN обновился фронтенд: типографика, иконки, стили. На самом деле, это произошло ещё в августе прошлого года.
В статье Лео МакАрдл рассказывает, что скрывается под капотом у этого нового фронтенда. Интересно почитать, как устроен самый популярный портал с документацией для веб-разработчиков.
• Много веб-компонентов. Простых и сложных. С хорошими примерами, как их применять в современном фронтенде.
• Rspack для сборки. Свежатинка на замену Webpack. Значительно улучшился DX.
• Мощная кроссбраузерность. Потому что не могут выдать «прастити, Safari не поддерживаем». Но при этом с опорой на Baseline.
• Markdown для контента. Который потом сложно, но интересно превращается в полноценные страницы с обвязкой.
• Современный CSS там, где он уместен. Видел, как pepelsbey использовал нативную вложенность селекторов в пулл-реквестах.
• Интерактивные демки на многих страницах.
• Всё это лежит на GitHub, то есть можно подсмотреть и вдохновиться.
https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/
Если вы всё ещё читаете актуальную документацию на MDN, а не просите совсем всё делать вашу LLM («Вы, чего, и конфеты за меня есть будете?»), то могли заметить, что у MDN обновился фронтенд: типографика, иконки, стили. На самом деле, это произошло ещё в августе прошлого года.
В статье Лео МакАрдл рассказывает, что скрывается под капотом у этого нового фронтенда. Интересно почитать, как устроен самый популярный портал с документацией для веб-разработчиков.
• Много веб-компонентов. Простых и сложных. С хорошими примерами, как их применять в современном фронтенде.
• Rspack для сборки. Свежатинка на замену Webpack. Значительно улучшился DX.
• Мощная кроссбраузерность. Потому что не могут выдать «прастити, Safari не поддерживаем». Но при этом с опорой на Baseline.
• Markdown для контента. Который потом сложно, но интересно превращается в полноценные страницы с обвязкой.
• Современный CSS там, где он уместен. Видел, как pepelsbey использовал нативную вложенность селекторов в пулл-реквестах.
• Интерактивные демки на многих страницах.
• Всё это лежит на GitHub, то есть можно подсмотреть и вдохновиться.
https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/
MDN Web Docs
Under the hood of MDN's new frontend | MDN Blog
You may have spotted that MDN has a new frontend. There's plenty happening under the surface, so let's unpack the technologies we chose, the architectural decisions we made, and why we did a rebuild at all.
1❤57👍16🎉7
CSS-анимации как state-машины
В свежем выпуске «Веб-стандартов» обсуждали крайне интересную статью от Патрика Бросета про то, как использовать анимации для хранения истории работы со страницей.
Простая задача: если пользователь наводит мышку на элемент сейчас или наводил в прошлом, хранить это знание и использовать для каких-нибудь полезных визуализаций. На JavaScript такое делается просто. А вот если на чистом CSS?
Решение потрясающее:
Если не до конца понятно, что здесь происходит, почитайте объяснение в статье. Или послушайте подкаст. Но само по себе такое решение рядом с container queries и нативными
https://patrickbrosset.com/articles/2026-03-09-using-css-animations-as-state-machines-to-remember-focus-and-hover-states-with-css-only/
В свежем выпуске «Веб-стандартов» обсуждали крайне интересную статью от Патрика Бросета про то, как использовать анимации для хранения истории работы со страницей.
Простая задача: если пользователь наводит мышку на элемент сейчас или наводил в прошлом, хранить это знание и использовать для каких-нибудь полезных визуализаций. На JavaScript такое делается просто. А вот если на чистом CSS?
Решение потрясающее:
.track-hover {
--was-hovered: false;
animation: track-hover .00001s linear forwards paused;
}
.track-hover:hover {
animation-play-state: running;
}
@keyframes track-hover {
to { --was-hovered: true; }
}
Если не до конца понятно, что здесь происходит, почитайте объяснение в статье. Или послушайте подкаст. Но само по себе такое решение рядом с container queries и нативными
if в CSS позволяет добавить в вёрстку новый слой: не только текущее состояние страницы, но и прошлое, влияющее на настоящее.https://patrickbrosset.com/articles/2026-03-09-using-css-animations-as-state-machines-to-remember-focus-and-hover-states-with-css-only/
Patrick Brosset
Patrick - Using CSS animations as state machines to remember focus and hover states with CSS only
I discovered this CSS-only trick to store the past <code>:focus</code> or <code>:hover</code> state of any element. Without JavaScript, you can style elements depending on whether they were ever focused or hovered. Here's how it works.
🔥27🤯16❤3👍2🥴2❤🔥1
Выбор диапазона дат на CSS
Если совсем уж честно, то не на чистом CSS, в этом особого смысла нет. Клики всё-таки обрабатываются небольшим скриптом. Но пример в статье довольно компактный и даже, вроде как, доступный.
Основная магия спрятана здесь.
Селектор
В статье же интересный лакончиный пример того, как подсветить даты, которые расположены между двумя выбранными чекбоксами.
https://css-tricks.com/selecting-a-date-range-in-css/
Если совсем уж честно, то не на чистом CSS, в этом особого смысла нет. Клики всё-таки обрабатываются небольшим скриптом. Но пример в статье довольно компактный и даже, вроде как, доступный.
Основная магия спрятана здесь.
.isRangeSelected {
:nth-child(1 of :has(:checked)) ~ :not(:nth-child(2 of :has(:checked)) ~ li) {
background-color: rgb(228 239 253);
}
}
Селектор
:nth-child(N of .selector) позволяет выбирать подмножество в списке детей. Это открывает приятные возможности по стилизации сложных списков, WYSIWYG-текста и в прочих случаях. Например, вы можете стилизовать каждый второй параграф p в тексте, где между параграфами есть заголовки.В статье же интересный лакончиный пример того, как подсветить даты, которые расположены между двумя выбранными чекбоксами.
https://css-tricks.com/selecting-a-date-range-in-css/
CSS-Tricks
Selecting a Date Range in CSS | CSS-Tricks
A clever approach for selecting multiple dates on a calendar where the :nth-child()'s “n of selector” syntax does all the heavy lifting... even in the JavaScript.
🔥28🤔4❤🔥2👍2❤1
Forwarded from mefody.work
Какие метрики интересны бизнесу, какие – вам, а какие – никому
Видео выходного дня.
Полторы недели назад на Podlodka Teamlead Crew читал доклад про то, как выстроить систему метрик, которая будет не бесполезна, а вести к каким-то результатам. Андрей Смирнов пригласил поделиться опытом, а у меня как раз давно было желание систематизировать знания по различным подходам.
Вообще тема, конечно, не самая простая. Универсальных советов попросту нет. Несмотря на то, что я попытался в докладе раскрыть тему, как почти любую метрику привязать к самому важному для бизнеса (деньгам), днём ранее Серёжа Попов в своём докладе совершенно справедливо заметил, что не всегда так нужно делать.
Но одну мысль хочу закрепить: метрики должны помогать достигать результатов, а не мешать людям работать.
https://youtu.be/cNhIeA8ZG6o
Видео выходного дня.
Полторы недели назад на Podlodka Teamlead Crew читал доклад про то, как выстроить систему метрик, которая будет не бесполезна, а вести к каким-то результатам. Андрей Смирнов пригласил поделиться опытом, а у меня как раз давно было желание систематизировать знания по различным подходам.
Вообще тема, конечно, не самая простая. Универсальных советов попросту нет. Несмотря на то, что я попытался в докладе раскрыть тему, как почти любую метрику привязать к самому важному для бизнеса (деньгам), днём ранее Серёжа Попов в своём докладе совершенно справедливо заметил, что не всегда так нужно делать.
Но одну мысль хочу закрепить: метрики должны помогать достигать результатов, а не мешать людям работать.
https://youtu.be/cNhIeA8ZG6o
YouTube
Доклад: Какие метрики интересны бизнесу, какие – вам, а какие – никому / Никита Дубко (Яндекс)
Разработку, менеджмент и бизнес, чтобы не делать ерунду, важно синхронизировать. Для синхронизации удобно использовать некие метрики, которые будут признаком успеха. Но практика показывает, что найти те самые метрики, которые понятны и удобны всем сторонам…
❤17👍5🔥2🎉1🌚1
Никогда больше не теряйте заполненные формы
Аарона Густафсона, видимо, сильно достало, что иногда заполняешь форму, нечаянно уходишь со страницы (внезапный переход назад из-за скролла по тачпаду, нетерпеливый Cmd+W, игривый кот прошёлся по клавиатуре) — и всё, заполняй заново.
Поэтому он собрал веб-компонент
https://www.aaron-gustafson.com/notebook/never-lose-form-progress-again/
Аарона Густафсона, видимо, сильно достало, что иногда заполняешь форму, нечаянно уходишь со страницы (внезапный переход назад из-за скролла по тачпаду, нетерпеливый Cmd+W, игривый кот прошёлся по клавиатуре) — и всё, заполняй заново.
Поэтому он собрал веб-компонент
form-saver, который сохраняет всё в localStorage и восстанавливает поля формы, если вдруг случилась перезагрузка. Забирайте, если вам такое нужно.https://www.aaron-gustafson.com/notebook/never-lose-form-progress-again/
Aaron Gustafson
Never Lose Form Progress Again
Few things are more annoying than losing your progress halfway through a form. Maybe the browser crashes. Maybe the tab gets closed. Maybe your kid yells from the other room and you come back three hours later wondering why you ever thought now was a good…
2👏25❤10👍9🌚3🔥1
<input>, слайды доклада
Только что прочитал на Dump доклад про тег
Пока готовился, узнал пару новых интересных фактов. Имхо, самый сложный и неоднозначный тег в HTML.
Прикладываю слайды. А когда появится видео, выложу и его сюда.
https://mefody.dev/talks/input/
Только что прочитал на Dump доклад про тег
<input>. Напомню, в 2019 году у меня был доклад <a>, в 2020 — <img>. Самое время обновить список.Пока готовился, узнал пару новых интересных фактов. Имхо, самый сложный и неоднозначный тег в HTML.
Прикладываю слайды. А когда появится видео, выложу и его сюда.
https://mefody.dev/talks/input/
🔥42👍27❤11❤🔥4
Scroll-Driven Animations
Джош Комо продолжает радовать нас интерактивными уроками по крутым возможностям современного веба. На этот раз он добрался до анимаций, привязанных к скроллу. Это когда на экране что-то двигается и появляется по мере того, как пользователь скроллит страницу.
Напомню, в 2026 вполне себе можно использовать Animation Timeline API для таких задач, чтобы не тянуть на клиент жирные библиотеки. Для Firefox пока придётся подключить полифил, но он есть.
https://www.joshwcomeau.com/animation/scroll-driven-animations/
Джош Комо продолжает радовать нас интерактивными уроками по крутым возможностям современного веба. На этот раз он добрался до анимаций, привязанных к скроллу. Это когда на экране что-то двигается и появляется по мере того, как пользователь скроллит страницу.
Напомню, в 2026 вполне себе можно использовать Animation Timeline API для таких задач, чтобы не тянуть на клиент жирные библиотеки. Для Firefox пока придётся подключить полифил, но он есть.
https://www.joshwcomeau.com/animation/scroll-driven-animations/
Joshwcomeau
Scroll-Driven Animations • Josh W. Comeau
The new Animation Timeline API allows us to create dynamic scroll animations without any JavaScript! It’s honestly a very lovely API, and in this blog post, we’ll explore some of the super cool things we can do with it.
❤30👍8
Горячий код в V8
Настя Котова у себя в телеграм-канале продолжает разбираться в глубинах Node.js и V8. В этот раз задалась интересным вопросом: что же такое «горячий код» для V8? Один и тот же код может превращаться в итоге в разные инструкции внутри движка, причём скорость выполнения этих инструкций тоже может значительно отличаться. Потому что на старте он «холодный», а чем больше движок собирает статистики про выполнение, тем лучше может его оптимизировать.
В этом полезно разбираться:
• если вы пишете бенчмарки и удивляетесь, почему они каждый раз выдают разные результаты;
• ваш проект дошёл до стадии оптимизации производительности на уровне подстраивания под движок (может быть важно на высоконагруженных проектах);
• при работе с облачными функциями (вопрос денежки);
• для общего развития.
https://telegra.ph/Goryachij-kod-v-V8-chto-ehto-znachit-04-05
Настя Котова у себя в телеграм-канале продолжает разбираться в глубинах Node.js и V8. В этот раз задалась интересным вопросом: что же такое «горячий код» для V8? Один и тот же код может превращаться в итоге в разные инструкции внутри движка, причём скорость выполнения этих инструкций тоже может значительно отличаться. Потому что на старте он «холодный», а чем больше движок собирает статистики про выполнение, тем лучше может его оптимизировать.
В этом полезно разбираться:
• если вы пишете бенчмарки и удивляетесь, почему они каждый раз выдают разные результаты;
• ваш проект дошёл до стадии оптимизации производительности на уровне подстраивания под движок (может быть важно на высоконагруженных проектах);
• при работе с облачными функциями (вопрос денежки);
• для общего развития.
https://telegra.ph/Goryachij-kod-v-V8-chto-ehto-znachit-04-05
Telegraph
Горячий код в V8: что это значит?
Мы часто слышим такие термины как «горячий код», особенно когда говорим про JIT-компиляцию. Но что стоит за этой концепцией с точки зрения устройства компиляторов, в частности, внутри V8? В этой статье я разберу, как именно V8 решает, что код «горячий», по…
👍15❤4🔥3
Много маленьких страниц
Джим Нильсен делится интересной идеей под названием LLMs —(L)ots of (L)ittle ht(M)l page(S) . Суть в том, чтобы почти не использовать JS, отказаться от SPA, а каждый экран сделать маленькой страницей. Да, каждая модалка или таблица с фильтром — отдельная страница.
В статье разбирается паттерн меню. Кликаешь на бургер — открывается страница с меню. Жмёшь на крестик — тут уже JS делает
Сначала ощущается такой подход странно. Крайне непривычно. Но спустя какое-то время мне идея всё-таки приглянулась.
Всё упирается в то, чтобы изначально UX продумать так, чтобы каждое действие и было отдельным экраном. Если присыпать это всё CSS View Transitions, сделать лёгкие кэшируемые страницы только с необходимым, то работать ведь будет быстро. Добавим сюда сервис-воркеры и Speculation Rules API — можно добиться ощущения мгновенности. Для статических сайтов — ну очень хорошо.
https://blog.jim-nielsen.com/2026/small-html-pages/
Джим Нильсен делится интересной идеей под названием LLMs —
В статье разбирается паттерн меню. Кликаешь на бургер — открывается страница с меню. Жмёшь на крестик — тут уже JS делает
history.back(), небольшое читерство.Сначала ощущается такой подход странно. Крайне непривычно. Но спустя какое-то время мне идея всё-таки приглянулась.
Всё упирается в то, чтобы изначально UX продумать так, чтобы каждое действие и было отдельным экраном. Если присыпать это всё CSS View Transitions, сделать лёгкие кэшируемые страницы только с необходимым, то работать ведь будет быстро. Добавим сюда сервис-воркеры и Speculation Rules API — можно добиться ощущения мгновенности. Для статических сайтов — ну очень хорошо.
https://blog.jim-nielsen.com/2026/small-html-pages/
Jim Nielsen’s Blog
Reminder: You Can Stitch Together Lots of Little HTML Pages With Navigations For Interactions
I wrote about building websites with LLMs — (L)ots of (L)ittle ht(M)l page(s) — and I think it’s time for a post-mortem on that approach:
😐24❤11👍8🌚5⚡1🤔1🎉1💯1
История ffmpeg
Видео невыходного дня. Интересный ресёрч на тему того, как небольшая опенсорс библиотека стала основой для огромного числа других проектов. И какие люди за этим стоят. Если что, вы пользуетесь ffmpeg каждый день, даже если не знаете про это.
https://youtu.be/Ww8MzcBJUd4
Видео невыходного дня. Интересный ресёрч на тему того, как небольшая опенсорс библиотека стала основой для огромного числа других проектов. И какие люди за этим стоят. Если что, вы пользуетесь ffmpeg каждый день, даже если не знаете про это.
https://youtu.be/Ww8MzcBJUd4
YouTube
Как один француз перевернул всю медиа-индустрию // История FFmpeg
Вся гигантская видеоиндустрия — от YouTube и Netflix до TikTok — держится на одной программе. Программе, написанной в обычной парижской квартире с целью разрушить монополию корпораций на видео. Это история FFmpeg. В этом видео мы погрузимся в историю создания…
💯22❤16👍14🔥4
Анимированный фокус на View Transitions
Думаю, вы видели такой паттерн, когда кольцо фокуса (обводка, которая рисуется вокруг сфокусированных элементов интерфейса) перемещается по странице плавно, с анимацией. Не резко перескакивает, как это делает браузер, а аккуратно перетекает. Для такого часто используются JS-библиотеки, которые играют в «угадай координату» и двигают по сути абсолютно спозиционированный элемент по странице.
Крис Койер пробует сделать версию попроще. Пускай во время перехода фокуса включается View Transition: включаем новое кольцо на новом элементе, старое выключаем, запускаем анимацию. Звучит интересно, и кода требует прям мало.
К сожалению, сделать хорошо не получилось:
• Во-первых, в единственном более-менее рабочем решении пришлось расставить дочерний
• Во-вторых, управление фокусом идёт на уровне JS, а это уже риски что-то не учесть (браузер умеет это лучше, не пытайтесь его имитировать).
• В-третьих, если текст ссылки содержит перенос (то есть находится на двух строках сразу), то визуально всё неприлично разломано.
В комментариях к статье приложили демку с решением на Anchor Positioning. Там проблемы похожие, хотя лишний
В общем, присмотреться к способу двигать что-то анимированно по странице новыми апишками точно стоит. А вот применять такое к фокусу — лучше не надо, рендеринг текста сложнее, чем просто коробочка с буквами. К сожалению, тут я скорее за то, чтобы использовать JS-библиотеки, проверенные временем.
https://frontendmasters.com/blog/animating-focus-with-view-transitions/
Думаю, вы видели такой паттерн, когда кольцо фокуса (обводка, которая рисуется вокруг сфокусированных элементов интерфейса) перемещается по странице плавно, с анимацией. Не резко перескакивает, как это делает браузер, а аккуратно перетекает. Для такого часто используются JS-библиотеки, которые играют в «угадай координату» и двигают по сути абсолютно спозиционированный элемент по странице.
Крис Койер пробует сделать версию попроще. Пускай во время перехода фокуса включается View Transition: включаем новое кольцо на новом элементе, старое выключаем, запускаем анимацию. Звучит интересно, и кода требует прям мало.
К сожалению, сделать хорошо не получилось:
• Во-первых, в единственном более-менее рабочем решении пришлось расставить дочерний
span в каждом интерактивном элементе. А хотелось бы вёрстку не править.• Во-вторых, управление фокусом идёт на уровне JS, а это уже риски что-то не учесть (браузер умеет это лучше, не пытайтесь его имитировать).
• В-третьих, если текст ссылки содержит перенос (то есть находится на двух строках сразу), то визуально всё неприлично разломано.
В комментариях к статье приложили демку с решением на Anchor Positioning. Там проблемы похожие, хотя лишний
span уже не нужен, и это радует.В общем, присмотреться к способу двигать что-то анимированно по странице новыми апишками точно стоит. А вот применять такое к фокусу — лучше не надо, рендеринг текста сложнее, чем просто коробочка с буквами. К сожалению, тут я скорее за то, чтобы использовать JS-библиотеки, проверенные временем.
https://frontendmasters.com/blog/animating-focus-with-view-transitions/
Frontend Masters
Animating Focus with View Transitions
The big idea here is animating the focus ring around literally-focused elements on web pages. Like the :focus (or :focus-visible) styles, either the default or your own.
👍7🥴4💔4❤2🤨2
От React к нативному вебу с nanotags
Отличное применение принципа «под каждую задачу — правильный инструмент».
Павел Гринченко на примере показывает, что для лендинга или маркетингового сайта не обязательно тащить увесистые фреймворки, которые придуманы для тяжёлых SPA с развесистой бизнес-логикой. Но да, для этого придётся разобраться в «новых» технологиях.
https://t.me/webstandards_ru/7729
Отличное применение принципа «под каждую задачу — правильный инструмент».
Павел Гринченко на примере показывает, что для лендинга или маркетингового сайта не обязательно тащить увесистые фреймворки, которые придуманы для тяжёлых SPA с развесистой бизнес-логикой. Но да, для этого придётся разобраться в «новых» технологиях.
https://t.me/webstandards_ru/7729
Telegram
Веб-стандарты
От React к нативному вебу с nanotags: миграция, сэкономившая 100 Кб. Павел Гринченко рассказывает, как они перенесли маркетинговый сайт на Astro с React и Ark UI на нативные веб-компоненты, сократив JavaScript на 100 Кб. Nanotags — обёртка размером менее…
👍9🥴8🤣5👏1😁1🌚1💯1💔1😐1
Chrome DevTools MCP CLI
Поигрался на выходных с Chrome DevTools MCP CLI — и мне понравилось.
Джоан Леон в статье рассказывает, что умеет инструмент. И показывает, как его можно подружить с различными полезными JS-сниппетами на примере WebPerf.
У меня был простой эксперимент: попросить LLM сделать аудит страницы, предложить улучшения по Core Web Vitals. Сначала без установки новой тулзы LLM использовала Playwright, Lighthouse, что-то покрутила, выдала результаты аудита. Затем с
Судя по логам, преимущество
В общем, для задач, когда нужно на скорую руку сделать аудит страницы,
https://joanleon.dev/en/chrome-devtools-mcp-cli/
Поигрался на выходных с Chrome DevTools MCP CLI — и мне понравилось.
Джоан Леон в статье рассказывает, что умеет инструмент. И показывает, как его можно подружить с различными полезными JS-сниппетами на примере WebPerf.
У меня был простой эксперимент: попросить LLM сделать аудит страницы, предложить улучшения по Core Web Vitals. Сначала без установки новой тулзы LLM использовала Playwright, Lighthouse, что-то покрутила, выдала результаты аудита. Затем с
chrome-devtools-mcp повторила то же самое — аудит был куда подробнее и предложения более интересные.Судя по логам, преимущество
chrome-devtools-mcp в том, что он активно использует всевозможные Insights из Chrome DevTools. Playwright из-за своей универсальности не всем может поделиться. По токенам, кстати, вышло примерно одно и то же.В общем, для задач, когда нужно на скорую руку сделать аудит страницы,
chrome-devtools-mcp зашёл на ура. Оптимизировать, правда, я пока доверяю только своим мозгам — LLM-ки всё ещё творят какую-то дичь, когда дело касается современных API.https://joanleon.dev/en/chrome-devtools-mcp-cli/
joanleon.dev
Automate the browser from the terminal with Chrome DevTools MCP CLI | Joan León
The chrome-devtools-mcp package includes an experimental CLI that lets you control Chrome directly from the terminal: navigate, interact, audit performance, analyze network and memory, all without leaving the shell.
1👍19🔥5🎉1
Сжатие и растяжение
Джош Комо с очередным классным гайдом с демками. На этот раз — про анимации трансформации.
Когда вы в жизни бросаете мячик об пол, если этот мячик у вас не свинцовый, то он заметно деформируется, а потом возвращает форму. В интерфейсах при этом мы часто используем анимацию отскока, смещения или увеличения (для модалок, шторок, тултипов), но никакого подобия физики сжатия и растяжения не применяем.
В демках в статье показывается, как такое можно сделать на SVG+CSS либо при помощи JS-библиотеки Motion. В обоих случаях получается вау-эффект.
https://www.joshwcomeau.com/animation/squash-and-stretch/
Джош Комо с очередным классным гайдом с демками. На этот раз — про анимации трансформации.
Когда вы в жизни бросаете мячик об пол, если этот мячик у вас не свинцовый, то он заметно деформируется, а потом возвращает форму. В интерфейсах при этом мы часто используем анимацию отскока, смещения или увеличения (для модалок, шторок, тултипов), но никакого подобия физики сжатия и растяжения не применяем.
В демках в статье показывается, как такое можно сделать на SVG+CSS либо при помощи JS-библиотеки Motion. В обоих случаях получается вау-эффект.
https://www.joshwcomeau.com/animation/squash-and-stretch/
Joshwcomeau
Squash and Stretch • Josh W. Comeau
Have you ever heard of Disney’s 12 Basic Principles of Animation? In this tutorial, we’ll explore how we can use the very first principle to create SVG micro-interactions that feel way more natural and believable. It’s one of those small things that has a…
🔥22❤1🤯1
Объединение мобильного и десктопного доменов
Тимо Тийхоф из MediaWiki (движок для Википедии) поделился интересным опытом объединения доменов
Когда-то давно было популярной практикой разделять мобильную версию и десктопную отдельными поддоменами. Мобильные телефоны были слабее, мобильный интернет был медленным, а про адаптивность ещё почти не говорили. Google-поиск эту историю поддерживал, автоматически выдавая верный поддомен в зависимости от того, с какого устройства пользователь искал.
В 2016 году Google изменил политику касательно отдельных мобильных версий, теперь правильнее делать единый домен, причём по принципу Mobile First. Раскатка была долгой, до Википедии дошли только в 2024 году.
Тимо рассказывает, как необходимость объединить домены повлияла на скорость загрузки, SEO и нагрузку на инфраструктуру.
https://techblog.wikimedia.org/2025/11/21/unifying-mobile-and-desktop-domains/
Тимо Тийхоф из MediaWiki (движок для Википедии) поделился интересным опытом объединения доменов
[lang].wikipedia.org и [lang].m.wikipedia.org.Когда-то давно было популярной практикой разделять мобильную версию и десктопную отдельными поддоменами. Мобильные телефоны были слабее, мобильный интернет был медленным, а про адаптивность ещё почти не говорили. Google-поиск эту историю поддерживал, автоматически выдавая верный поддомен в зависимости от того, с какого устройства пользователь искал.
В 2016 году Google изменил политику касательно отдельных мобильных версий, теперь правильнее делать единый домен, причём по принципу Mobile First. Раскатка была долгой, до Википедии дошли только в 2024 году.
Тимо рассказывает, как необходимость объединить домены повлияла на скорость загрузки, SEO и нагрузку на инфраструктуру.
https://techblog.wikimedia.org/2025/11/21/unifying-mobile-and-desktop-domains/
❤9👍3😁1
Оптимизация сайта для AI-ответов в Google-поиске
Гайд от Google по тому, что делать и что не делать, чтобы генеративный AI в выдаче поиска работал лучше.
Итак, пункты:
• Создавать полезный людям контент.
• Уникальность контента, своя точка зрения.
• Понятность текста.
• Качественные картинки и видео для визуализаций.
• Фокус на том, что хотят пользователи.
• Страницы должны не мешать краулерам их парсить.
То есть буквально ничего нового делать не нужно. Просто делаешь хороший и удобный сайт для пользователей — и внезапно он в попадает в AI-ответы. Только прикол в том, что если раньше нужно было как-то умудриться попасть в топ-10 поиска по целевым запросам, то теперь нужно попасть в топ-5 по смыслу запроса пользователя — конкуренция выросла.
Есть ещё раздел с разрушением мифов, он забавный. Например,
Рекомендуют делать ставку на то, чтобы сайт был удобен агентам. Тут нужно дождаться Google I/O с их анонсами агентских фичей браузера, гуглбуков и прочих рекомендаций, как подстраивать свой бизнес под фичи одной конкретной корпорации.
https://developers.google.com/search/docs/fundamentals/ai-optimization-guide
Гайд от Google по тому, что делать и что не делать, чтобы генеративный AI в выдаче поиска работал лучше.
Итак, пункты:
• Создавать полезный людям контент.
• Уникальность контента, своя точка зрения.
• Понятность текста.
• Качественные картинки и видео для визуализаций.
• Фокус на том, что хотят пользователи.
• Страницы должны не мешать краулерам их парсить.
То есть буквально ничего нового делать не нужно. Просто делаешь хороший и удобный сайт для пользователей — и внезапно он в попадает в AI-ответы. Только прикол в том, что если раньше нужно было как-то умудриться попасть в топ-10 поиска по целевым запросам, то теперь нужно попасть в топ-5 по смыслу запроса пользователя — конкуренция выросла.
Есть ещё раздел с разрушением мифов, он забавный. Например,
LLMS.txt краулеру не нужен, он до этого десятилетиями как-то справлялся без отдельной версии под себя и норм.Рекомендуют делать ставку на то, чтобы сайт был удобен агентам. Тут нужно дождаться Google I/O с их анонсами агентских фичей браузера, гуглбуков и прочих рекомендаций, как подстраивать свой бизнес под фичи одной конкретной корпорации.
https://developers.google.com/search/docs/fundamentals/ai-optimization-guide
Google for Developers
Google's Guide to Optimizing for Generative AI Features on Google Search | Google Search Central | Documentation | Google for…
Learn how to optimize your website for Google Search's generative AI features, including official best practices, technical SEO advice, and emerging AI agent guidance.
👍6🙏5🥴2🐳1🌚1🤣1
What's new in Web UI
Заходите смотреть Google I/O, там через 3 минуты будут показывать новые браузерные фичи, которыми нам с вами потом пользоваться. Как бы мы в подкасте периодически не ругали Chrome за торопливость, на веб-индустрию они влияют значительно.
https://www.youtube.com/live/OQK9XHTiqVw
Заходите смотреть Google I/O, там через 3 минуты будут показывать новые браузерные фичи, которыми нам с вами потом пользоваться. Как бы мы в подкасте периодически не ругали Chrome за торопливость, на веб-индустрию они влияют значительно.
https://www.youtube.com/live/OQK9XHTiqVw
YouTube
What's new in Web UI
Take a fast-paced tour of the latest UI features landing in browsers today, with a lens on making beautiful web experiences. From updates to interactive capabilities like scroll-triggered animations and scoped view transitions, to the latest in UI components…
👍8🔥5❤2🤣2🐳1🌚1
Улучшаем браузерное кэширование заголовком No-Vary-Search
Итак, вы оптимизировали браузерный перфоманс своего сайта. Но когда маркетологи запускают вокруг сайта разные акции, на мониторингах почему-то проседают метрики.
Дело в том, что в таких случаях часто к урлам дописывают что-то вроде
Гарри Робертс рассказывает про заголовок
https://csswizardry.com/2026/05/better-browser-caching-with-no-vary-search/
Итак, вы оптимизировали браузерный перфоманс своего сайта. Но когда маркетологи запускают вокруг сайта разные акции, на мониторингах почему-то проседают метрики.
Дело в том, что в таких случаях часто к урлам дописывают что-то вроде
?utm_source=google. Для сбора метрик и конверсий. Такие параметры для браузера обозначают, что это абсолютно новая страница, её нельзя брать из кэша. Браузер ведь не знает, для метрики оно или для обработки на сервере и изменения контента.Гарри Робертс рассказывает про заголовок
No-Vary-Search, который решает эту проблему. Можно попросить браузер игнорировать конкретные параметры, все параметры или их порядок, чтобы брать страницу из кэша.https://csswizardry.com/2026/05/better-browser-caching-with-no-vary-search/
Csswizardry
Better Browser Caching with No-Vary-Search – CSS Wizardry
No-Vary-Search lets HTTP caches ignore irrelevant query parameters such as UTM tags, while still keeping meaningful ones like product variants in the cache key.
🔥23🤯10👍4🥴2