Ускоряя JS-экосистему: semver
Марвин Хагмайстер (core-разработчик Preact) как-то запустил команду
Пакет
В статье Марвин показывает, как ему удалось написать свой кастомный парсер, который в 25 раз быстрее.
Хороший пример того, как можно задуматься всего об одной оптимизации и попробовать сделать эффективнее огромную JS-экосистему.
https://marvinh.dev/blog/speeding-up-javanoscript-ecosystem-part-12/
Марвин Хагмайстер (core-разработчик Preact) как-то запустил команду
npm install внутри Preact, которая работала дольше 3 секунд, чем привлекла внимание. Марвин начал разбираться, что же там так долго работает — оказалось, пакет semver вызывался во время установки больше 20 тысяч раз. 20 тысяч раз, Карл!Пакет
semver — это утилита для работы с версиями пакетов, вроде ^6.0.0, 4.0.0-alpha.4, 1.x || 2.x и так далее. Нужная. Но можно ли её ускорить?В статье Марвин показывает, как ему удалось написать свой кастомный парсер, который в 25 раз быстрее.
Хороший пример того, как можно задуматься всего об одной оптимизации и попробовать сделать эффективнее огромную JS-экосистему.
https://marvinh.dev/blog/speeding-up-javanoscript-ecosystem-part-12/
marvinh.dev
Speeding up the JavaScript ecosystem - Semver
During the installation process, package managers run a bunch of semver comparisons. The semver library used in npm, yarn and pnpm can be made around 33x faster.
👍42🔥11❤9😱2😁1
Креативность и цитаты
Энди Кларк задаётся вопросом, как можно стилизовать цитаты и врезки на сайте музыкального исполнителя. Начинает с базовой разметки, постепенно добавляет новые и новые стили, и в конце получает то оформление, которое его устраивает.
Мне понравилась заключительная мысль статьи: цитаты на странице тоже могут вызывать настроение через визуальные смыслы. И вполне нормально экспериментировать с их оформлением, чтобы получилось классно.
https://css-tricks.com/getting-creative-with-quotes/
Энди Кларк задаётся вопросом, как можно стилизовать цитаты и врезки на сайте музыкального исполнителя. Начинает с базовой разметки, постепенно добавляет новые и новые стили, и в конце получает то оформление, которое его устраивает.
Мне понравилась заключительная мысль статьи: цитаты на странице тоже могут вызывать настроение через визуальные смыслы. И вполне нормально экспериментировать с их оформлением, чтобы получилось классно.
https://css-tricks.com/getting-creative-with-quotes/
CSS-Tricks
Getting Creative With Quotes | CSS-Tricks
How do you design block quotes and pull quotes to reflect a brand’s visual identity and help tell its story? Here’s how I do it by styling the HTML blockquote element using borders, decorative quote marks, custom shapes, and a few unexpected properties.
🔥14❤5👍3⚡2💯1
MinskJS Meetup #13
Если у вас сегодня на вечер ещё нет планов, приходите к нам на уютный онлайн-митап в 19:00 по минскому времени. Поговорим про фронтенд и около:
- Василий Ванчук расскажет про секцию System Design на собеседованиях для фронтенд-разработчиков.
- Анна Ширяева поделится гайдом, как выбрать фронтенд-фреймворк под свою задачу.
- Евгений Дорошкевич объяснит, как делать классные анимации, улучшающие вовлечённость пользователей.
Как обычно, будет всем рады.
Трансляция: https://www.youtube.com/watch?v=7JyODKQYRX4
Программа митапа: https://minskjs.site/events/minskjs-meetup-13/
Если у вас сегодня на вечер ещё нет планов, приходите к нам на уютный онлайн-митап в 19:00 по минскому времени. Поговорим про фронтенд и около:
- Василий Ванчук расскажет про секцию System Design на собеседованиях для фронтенд-разработчиков.
- Анна Ширяева поделится гайдом, как выбрать фронтенд-фреймворк под свою задачу.
- Евгений Дорошкевич объяснит, как делать классные анимации, улучшающие вовлечённость пользователей.
Как обычно, будет всем рады.
Трансляция: https://www.youtube.com/watch?v=7JyODKQYRX4
Программа митапа: https://minskjs.site/events/minskjs-meetup-13/
minskjs.site
MinskJS Meetup #13 | MinskJS
Серия митапов MinskJS посвящена самому популярному языку программирования в вебе — JavaScript. Основная тематика — программирование, взаимодействие с бэкендом, различные оптимизации и вопросы безопасности.
❤🔥22👏8👍4❤3🤯1
Интерактивный гайд по path в SVG
Джош Камю продолжает собирать шикарные интерактивные туториалы по SVG. На этот раз он подробно разбирает, что и как работает внутри
https://www.joshwcomeau.com/noscript/interactive-guide-to-paths/
Джош Камю продолжает собирать шикарные интерактивные туториалы по SVG. На этот раз он подробно разбирает, что и как работает внутри
<path d="..."/>, чем отличаются M от m, L от l и кубические кривые Безье от квадратичных и как нарисовать дуги разных форм. Как обычно, стильно и со спецэффектами.https://www.joshwcomeau.com/noscript/interactive-guide-to-paths/
Joshwcomeau
An Interactive Guide to SVG Paths • Josh W. Comeau
SVG gives us many different primitives to work with, but by far the most powerful is the element. Unfortunately, it’s also the most inscrutable, with its compact Regex-style syntax. In this tutorial, we’ll demystify this infamous element and see some of…
❤🔥39👍5🌚4❤1
Бросаем кубик с random() в CSS
Оказывается, в Safari Technology Preview можно поиграться с функцией
Мне бы такое очень пригодилось в генеративной графике. Делал когда-то демки на препроцессорах, где рандом на самом деле срабатывал только при компиляции. И игрался с тем, чтобы генерировать случайные числа внутри JS и пробрасывать их через кастомные переменные внутрь элементов — но это так себе удобство. А хочется, чтобы при обновлении страницы графика менялась.
Спецификация, на самом деле, более сложная, чем просто генерация чисел. Там можно и кэшированием управлять, и генерировать одно общее число для всех элементов. В Safari есть какая-то реализация, но спека ещё в процессе устаканивания.
https://webkit.org/blog/17285/rolling-the-dice-with-css-random/
Оказывается, в Safari Technology Preview можно поиграться с функцией
random в CSS. Например, вы можете написать width: random(2px, 10px, 1px);, и у вас ширина блоков, к которым применилось свойство, будет случайным числом от 2 до 10 пикселей с шагом в 1 пиксель.Мне бы такое очень пригодилось в генеративной графике. Делал когда-то демки на препроцессорах, где рандом на самом деле срабатывал только при компиляции. И игрался с тем, чтобы генерировать случайные числа внутри JS и пробрасывать их через кастомные переменные внутрь элементов — но это так себе удобство. А хочется, чтобы при обновлении страницы графика менялась.
Спецификация, на самом деле, более сложная, чем просто генерация чисел. Там можно и кэшированием управлять, и генерировать одно общее число для всех элементов. В Safari есть какая-то реализация, но спека ещё в процессе устаканивания.
https://webkit.org/blog/17285/rolling-the-dice-with-css-random/
WebKit
Rolling the Dice with CSS random()
Random functions in programming languages are amazing.
🔥24❤6🤩1🥴1
Одержимость аккуратными краями круга из radial-gradient()
Простая задача: нарисовать круг свойством
Беда в том, что для кругов, сделанных при помощи
Ана Тюдор со свойственной ей глубиной детализации пробует найти «идеальное» решение, которое и жёсткость уберёт, и слишком размазанными края не сделает, и для любого размера круга подойдёт, и к зуму подстроится.
https://frontendmasters.com/blog/obsessing-over-smooth-radial-gradient-disc-edges/
Простая задача: нарисовать круг свойством
background. Берём radial-gradient(var(--radius), var(--my-color) 100%, #0000), можно сразу несколько — профит. Ведь правда?Беда в том, что для кругов, сделанных при помощи
border-radius, срабатывает сглаживание, они выглядят аккуратно, а вот градиенты внутри background рисуются по другим алгоритмам. Края рваные, пиксельные, грубые.Ана Тюдор со свойственной ей глубиной детализации пробует найти «идеальное» решение, которое и жёсткость уберёт, и слишком размазанными края не сделает, и для любого размера круга подойдёт, и к зуму подстроится.
https://frontendmasters.com/blog/obsessing-over-smooth-radial-gradient-disc-edges/
Frontend Masters
Obsessing Over Smooth radial-gradient() Disc Edges
(… and how that lead me to a very underused CSS feature, resolution media queries.)
1❤23👍9🤯3👏1
Оптимизируем PWA под различные режимы отображения
PWA (прогрессивные веб-приложения) можно запускать в разных режимах. Например, в режиме
Деклан Чидлоу показывает, как внутри CSS или JS определять, в каком режиме отображения работает веб-приложение, и объясняет, для чего это может быть полезно.
https://www.smashingmagazine.com/2025/08/optimizing-pwas-different-display-modes/
PWA (прогрессивные веб-приложения) можно запускать в разных режимах. Например, в режиме
fullscreen приложение занимает весь экран, а браузерный UI прячется. А в режиме minimal-ui браузерная обвязка компактная, без излишков.Деклан Чидлоу показывает, как внутри CSS или JS определять, в каком режиме отображения работает веб-приложение, и объясняет, для чего это может быть полезно.
https://www.smashingmagazine.com/2025/08/optimizing-pwas-different-display-modes/
Smashing Magazine
Optimizing PWAs For Different Display Modes — Smashing Magazine
Progressive Web Apps (PWAs) are a great way to make apps built for the web feel native, but in moving away from a browser environment, we can introduce usability issues. This article covers how we can modify our app depending on what display mode is applied…
👍28❤6
Почему браузеры троттлят JS-таймеры?
Нолан Лоусон делится задачей: нужно после того, как выполнены все микротаски, но ещё не начали выполняться таски в event loop, запустить какие-то полезные фоновые задачи. Думаю, на собеседованиях часто такие вопросы можно услышать.
Есть древний способ вызвать
Нолан в статье сравнивает разные способы выполнить изначальную задачу (
https://nolanlawson.com/2025/08/31/why-do-browsers-throttle-javanoscript-timers/
Нолан Лоусон делится задачей: нужно после того, как выполнены все микротаски, но ещё не начали выполняться таски в event loop, запустить какие-то полезные фоновые задачи. Думаю, на собеседованиях часто такие вопросы можно услышать.
Есть древний способ вызвать
setTimeout(0), но на самом деле это задержка в 4ms, сделанная против абьюза от нехороших разработчиков, ломавших страницы в вебе.Нолан в статье сравнивает разные способы выполнить изначальную задачу (
setImmediate, MessageChannel.postMessage, window.postMessage и scheduler.postTask) по их кроссбраузерности и особенностям. Спойлер: одного идеального способа нет.https://nolanlawson.com/2025/08/31/why-do-browsers-throttle-javanoscript-timers/
Read the Tea Leaves
Why do browsers throttle JavaScript timers?
Even if you’ve been doing JavaScript for a while, you might be surprised to learn that setTimeout(0) is not really setTimeout(0). Instead, it could run 4 milliseconds later: Nearly a decade a…
👍28❤🔥5❤1🤔1
Основы выравнивания в CSS
В CSS есть десятки способов выровнять один элемент внутри другого. Не просто так же до сих пор на собеседованиях просят выровнять элемент по центру.
Темани Афиф делится подробнейшим гайдом с демками, как же оно работает:
- Выравнивание в гридах и флексах.
- Как выравнивание влияет на размеры элементов.
- Отличие логических значений от физических.
- Как работает автоматическое выравнивание.
- Блочные и инлайновые элементы.
Обычно на этом сайте Темани собирает короткие полезные советы, но, видимо, в какой-то момент материалов про выравнивание стало так много, что появился новый раздел Explore.
https://css-tip.com/explore/alignment/
В CSS есть десятки способов выровнять один элемент внутри другого. Не просто так же до сих пор на собеседованиях просят выровнять элемент по центру.
Темани Афиф делится подробнейшим гайдом с демками, как же оно работает:
- Выравнивание в гридах и флексах.
- Как выравнивание влияет на размеры элементов.
- Отличие логических значений от физических.
- Как работает автоматическое выравнивание.
- Блочные и инлайновые элементы.
Обычно на этом сайте Темани собирает короткие полезные советы, но, видимо, в какой-то момент материалов про выравнивание стало так много, что появился новый раздел Explore.
https://css-tip.com/explore/alignment/
Css-Tip
The Fundamentals of CSS Alignment
This deep dive covers everything you need to know about CSS alignment. It's time to stop doing trial and error and finally understand how everything works!
❤🔥27👍2😐2❤1
Браузеру Google Chrome — 17 лет
Мы в свежем выпуске «Веб-стандартов» поразгоняли немножко на тему этой статьи, но всё равно хочется поделиться ссылкой, после открытия которой сводит олдскулы.
Эдди Османи вспоминает, что нового привнёс Chrome в веб за 17 лет своего существования. Только вдумайтесь, браузеру уже 17 лет. А я помню, как он только появился и начинал отвоёвывать потихоньку рынок у Opera и Firefox.
А ещё вкладки вместо окон, пожирание оперативки, уязвимость Spectre, девтулзы, принуждение к HTTPS, Core Web Vitals, динозаврик при падении странички, PWA и многое другое.
P.S. Читайте осторожно, очень много восхваления Chrome в статье, не забывайте о других браузерах.
https://addyosmani.com/blog/chrome-17th/
Мы в свежем выпуске «Веб-стандартов» поразгоняли немножко на тему этой статьи, но всё равно хочется поделиться ссылкой, после открытия которой сводит олдскулы.
Эдди Османи вспоминает, что нового привнёс Chrome в веб за 17 лет своего существования. Только вдумайтесь, браузеру уже 17 лет. А я помню, как он только появился и начинал отвоёвывать потихоньку рынок у Opera и Firefox.
А ещё вкладки вместо окон, пожирание оперативки, уязвимость Spectre, девтулзы, принуждение к HTTPS, Core Web Vitals, динозаврик при падении странички, PWA и многое другое.
P.S. Читайте осторожно, очень много восхваления Chrome в статье, не забывайте о других браузерах.
https://addyosmani.com/blog/chrome-17th/
Addyosmani
Google Chrome at 17 - A history of our browser
Chrome turns 17 this week, and it feels like a good time to reflect on how far we have come in terms of Chromes guiding principles
❤19
Forwarded from Веб-стандарты (Vadim Makeev)
Эффект жидкого стекла в браузере: рефракция на CSS и SVG. Крис Фейхо экспериментирует с SVG-фильтрами, чтобы добиться противоречивого, но очень привлекательного эффекта из будущих версий iOS и macOS. #css #noscript
https://kube.io/blog/liquid-glass-css-noscript/
https://kube.io/blog/liquid-glass-css-noscript/
🔥33👍14😁2❤1👏1🎉1😐1
Основы Anchor Positioning в CSS
Ахмад Шадид делится подробным гайдом, что можно будет делать с этой мощной спецификацией. Как всегда, с обилием демок.
Я искренне верю, что Anchor Positioning изменит стандарты работы с тултипами, подсказками и выносными элементами. И позволит делать без JS то, что сейчас без JS делать почти невозможно. Но спека не самая простая, а вот такие гайды как раз помогают разобраться на примерах.
https://ishadeed.com/article/anchor-positioning/
Ахмад Шадид делится подробным гайдом, что можно будет делать с этой мощной спецификацией. Как всегда, с обилием демок.
Я искренне верю, что Anchor Positioning изменит стандарты работы с тултипами, подсказками и выносными элементами. И позволит делать без JS то, что сейчас без JS делать почти невозможно. Но спека не самая простая, а вот такие гайды как раз помогают разобраться на примерах.
https://ishadeed.com/article/anchor-positioning/
Ishadeed
The Basics of Anchor Positioning
Learn the basics of Anchor Positioning in CSS
🔥23❤8👍5
Вспоминаем Image Map
Сейчас олды содрогнутся. Забытая техника древних.
В прошлом довольно часто можно было встретить сайт, где ссылки были не квадратные, а произвольной формы. Причём поверх картинок. При этом кликабельные, доступные, вычурные.
Ссылки-картинки с правильным альтернативным текстом, разбитые на области.
Как вы понимаете, были нюансы. Эта штука была абсолютно не готова к адаптивности интерфейсов. И ховеры по ней стилизовать было нельзя. Но выглядело классно. Да и до сих пор выглядит, вы всё ещё можете ими пользоваться.
Энди Кларк собрал альтернативу на SVG и JS, которая лишена минусов оригинальных Image Map. Есть и адаптив, и кликабельность, и стилизация по ховеру.
https://css-tricks.com/revisiting-image-maps/
Сейчас олды содрогнутся. Забытая техника древних.
В прошлом довольно часто можно было встретить сайт, где ссылки были не квадратные, а произвольной формы. Причём поверх картинок. При этом кликабельные, доступные, вычурные.
<img src="map.png"
alt="My awesome map"
usemap="#map">
<map id="map" name="map">
<area shape="rect"
coords="176,14,323,58"
href="belarus.html"
alt="Belarus">
<area shape="poly"
coords="260,96,209,249,130,138"
href="belgium.html"
alt="Belgium">
</map>
Ссылки-картинки с правильным альтернативным текстом, разбитые на области.
Как вы понимаете, были нюансы. Эта штука была абсолютно не готова к адаптивности интерфейсов. И ховеры по ней стилизовать было нельзя. Но выглядело классно. Да и до сих пор выглядит, вы всё ещё можете ими пользоваться.
Энди Кларк собрал альтернативу на SVG и JS, которая лишена минусов оригинальных Image Map. Есть и адаптив, и кликабельность, и стилизация по ховеру.
https://css-tricks.com/revisiting-image-maps/
CSS-Tricks
Revisiting Image Maps | CSS-Tricks
Let’s run through a quick refresher. Image maps date all the way back to HTML 3.2, where, first, server-side maps and then client-side maps defined clickable regions over an image using map and area elements.
👍40😱11😁6❤4🐳3🔥1🌚1
Полный курс по Svelte 5
Как-то я проморгал, что после Svelte 3 успело выйти уже два мажора со значимыми изменениями. Если вдруг вы тоже пропустили, то Svelte — это фреймворк со своим компилятором, который целится в супер-легковесный клиентский код. Довольно популярный фреймворк, к слову.
Матия из Хорватии (автор сам так подписывается, я не подшучиваю) собрал очень подробный курс, который позволяет изучить Svelte 5 с нуля. 28 глав, 3 часа видео, очень много демок. Бесплатно, но если вам будет полезно, можно задонатить на Patreon.
https://joyofcode.xyz/learn-svelte
Как-то я проморгал, что после Svelte 3 успело выйти уже два мажора со значимыми изменениями. Если вдруг вы тоже пропустили, то Svelte — это фреймворк со своим компилятором, который целится в супер-легковесный клиентский код. Довольно популярный фреймворк, к слову.
Матия из Хорватии (автор сам так подписывается, я не подшучиваю) собрал очень подробный курс, который позволяет изучить Svelte 5 с нуля. 28 глав, 3 часа видео, очень много демок. Бесплатно, но если вам будет полезно, можно задонатить на Patreon.
https://joyofcode.xyz/learn-svelte
Joy of Code
The Complete Svelte 5 Course
Beginner to advanced course for the most beloved JavaScript framework.
1❤42🔥26👍4
Брендирование типов в TypeScript
В разных языках программирования есть разные подходы к типизации. TypeScript умеет сравнивать типы структурно, но это и мешает иногда подсветить ошибки при использовании номинально разных типов, которые идентичны по структуре.
Федерико Жерарди показывает, как можно для таких задач использовать брендирование типов.
В статье есть хороший пример, как таким образом пометить строку, что она прошла через обработку важной функцией.
Я сам с брендированием знаком давно, но обычно добавляю строковых поля для разделения типов. Про то, что можно использовать
https://azraelsec.sh/2025/09/06/Typenoscript-Branding/
В разных языках программирования есть разные подходы к типизации. TypeScript умеет сравнивать типы структурно, но это и мешает иногда подсветить ошибки при использовании номинально разных типов, которые идентичны по структуре.
Федерико Жерарди показывает, как можно для таких задач использовать брендирование типов.
type BrandedType<T> = T & { readonly __brand: unique symbol };
В статье есть хороший пример, как таким образом пометить строку, что она прошла через обработку важной функцией.
Я сам с брендированием знаком давно, но обычно добавляю строковых поля для разделения типов. Про то, что можно использовать
unique symbol, как-то не задумывался, интересный подход.https://azraelsec.sh/2025/09/06/Typenoscript-Branding/
AzraelSec
Type Branding in Typenoscript
The Initial DiscoveryThe other day, while exploring the Zod documentation for some type schema validators for one of my side projects, I stumbled upon something intriguing that didn’t immediately clic
❤30🤯6🥴4🌚3🤔2
Электрическая рамка
Принёс вам демку, в которой интересно поразбираться.
Балинт Ференци собрал на CodePen классный пример рамки, по которой как будто идёт электрический ток. Как это работает:
- При помощи фильтра
- Каждому слою задана бесконечная анимация, которая двигает слой либо влево, либо вверх. Интересно, что слоёв, которые движутся вверх, сразу два.
- При помощи
- И затем применяется
- В CSS это подключается просто,
Вся магия в том, что сгенерированный шум во время анимации создаёт яркие и менее яркие области, которые псевдослучайно перемещаются по картинке. Если при помощи фильтров использовать эти яркие области для карты смещения, получается вау-эффект. В демке ещё хорошо имитируются игра света и блики на поверхности, что в комбинации даёт очень красивую, на мой взгляд, карточку.
Сохранил себе в закладки на случай, если захочется что-нибудь эдакое технологическое поделать в интерфейсах.
https://codepen.io/BalintFerenczy/pen/KwdoyEN
Принёс вам демку, в которой интересно поразбираться.
Балинт Ференци собрал на CodePen классный пример рамки, по которой как будто идёт электрический ток. Как это работает:
- При помощи фильтра
feTurbulence создаётся три слоя с шумом. Это буквально статические картинки, которые выглядят как цветной дым.- Каждому слою задана бесконечная анимация, которая двигает слой либо влево, либо вверх. Интересно, что слоёв, которые движутся вверх, сразу два.
- При помощи
feComposite и feBlend эти слои смешивают в режиме color-dodge. Получается общий источник пикселей в виде анимированного шума.- И затем применяется
feDisplacementMap, который склеивает картинку, поверх которой будет применяться фильтр, и сгенерированный шум в тонкие электрические линии.- В CSS это подключается просто,
filter: url(#turbulent-displace).Вся магия в том, что сгенерированный шум во время анимации создаёт яркие и менее яркие области, которые псевдослучайно перемещаются по картинке. Если при помощи фильтров использовать эти яркие области для карты смещения, получается вау-эффект. В демке ещё хорошо имитируются игра света и блики на поверхности, что в комбинации даёт очень красивую, на мой взгляд, карточку.
Сохранил себе в закладки на случай, если захочется что-нибудь эдакое технологическое поделать в интерфейсах.
https://codepen.io/BalintFerenczy/pen/KwdoyEN
codepen.io
Electric Border
...
🔥61⚡19❤9👍4🙏1🌚1
Что мы можем делать при помощи corner-shape
Помню, как сильно радовался массовому внедрению в браузеры свойства
Но в дизайнах всё ещё бывают не только выпуклые круглые уголки. На данный момент без хаков можно играться с овальными формами границ. Ну или разбираться с
Дэниэл Шварц показывает, как мы сможем визуально создавать всевозможные формы блоков с помощью нового свойства
- впуклые уголки (инвертированный круг);
- скошенные уголки;
- вырезанные уголки;
- сквирклы (красивые более естественные скругления).
С демками.
https://css-tricks.com/what-can-we-actually-do-with-corner-shape/
Помню, как сильно радовался массовому внедрению в браузеры свойства
border-radius. Не нужно больше рисовать скруглённые уголки при помощи таблиц, кайф!Но в дизайнах всё ещё бывают не только выпуклые круглые уголки. На данный момент без хаков можно играться с овальными формами границ. Ну или разбираться с
border-image, который не самый developer friendly, на мой взгляд. Хотя в большинстве случаев этого всё-таки хватает.Дэниэл Шварц показывает, как мы сможем визуально создавать всевозможные формы блоков с помощью нового свойства
corner-shape, которое пока что работает только в Chrome:- впуклые уголки (инвертированный круг);
- скошенные уголки;
- вырезанные уголки;
- сквирклы (красивые более естественные скругления).
С демками.
https://css-tricks.com/what-can-we-actually-do-with-corner-shape/
CSS-Tricks
What Can We Actually Do With corner-shape? | CSS-Tricks
When I first started messing around with code, rounded corners required five background images or an image sprite likely created in Photoshop, so when
🔥31👍10❤6
Секретное свойство для нативного «жидкого стекла» у Apple
Скандалы, интриги, расследования.
Аластер Кут периодически изучает ченжлог репозитория WebKit на GitHub, потому что ему важно знать, что умеют веб-вью в мобильных приложениях. И недавно он обнаружил, что у Apple есть кастомное свойство
Но есть нюанс. Оказывается, чтобы включить его, нужно внутри WKWebView переключить настройку
Аластер, тем не менее, поигрался со свойством локально, выглядит неплохо.
В общем, свойство, которое после выхода iOS 26 помогло бы не отнекиваться от хотелок заказчиков, формально существует, но по сути — выключено.
Кто знает, может, в ближайших релизах Safari его всё-таки включат для разработчиков.
https://alastair.is/apple-has-a-private-css-property-to-add-liquid-glass-effects-to-web-content/
Скандалы, интриги, расследования.
Аластер Кут периодически изучает ченжлог репозитория WebKit на GitHub, потому что ему важно знать, что умеют веб-вью в мобильных приложениях. И недавно он обнаружил, что у Apple есть кастомное свойство
-apple-visual-effect: -apple-system-glass-material, которое по идее включает эффект жидкого стекла на элементе прямо в вебе.Но есть нюанс. Оказывается, чтобы включить его, нужно внутри WKWebView переключить настройку
useSystemAppearance, которая... приватная. Беда в том, что использовать приватные настройки нельзя, если не хочешь вылететь из App Store. А в обычном браузере просто не работает.Аластер, тем не менее, поигрался со свойством локально, выглядит неплохо.
В общем, свойство, которое после выхода iOS 26 помогло бы не отнекиваться от хотелок заказчиков, формально существует, но по сути — выключено.
Кто знает, может, в ближайших релизах Safari его всё-таки включат для разработчиков.
https://alastair.is/apple-has-a-private-css-property-to-add-liquid-glass-effects-to-web-content/
Alastair Writes Code
Apple has a private CSS property to add Liquid Glass effects to web content
I have an incredibly boring summer hobby: looking at the changelog for the WebKit Github repo. Why? Because I spend a chunk of my professional life working with webviews inside mobile apps and I like to get an early peek into what's coming in the next version…
🔥20😁11🎉3🥴3❤2👍2
Эволюция браузеров
Видео выходного дня. Вадим Макеев и Кирилл Мокевнин много и интересно разговаривают о том, как развиваются современные браузеры, как появляются новые фичи для разработчиков, почему приватности почти не существует, что нас ждёт в будущем и ещё много о чём.
Можно включить на фоне как подкаст.
Кстати, после просмотра этого интервью ещё раз осознал, что мы в «Веб-стандартах» важную вещь делаем помимо помощи новичкам в профессии. Важно ещё и обновлять знания опытных разработчиков, у которых часто нет времени копаться в каждой новости и следить за всеми обновлениями. Мы это делаем за читателей и слушателей, подсвечивая самое важное.
https://youtu.be/uPIUl8Bdq5A
Видео выходного дня. Вадим Макеев и Кирилл Мокевнин много и интересно разговаривают о том, как развиваются современные браузеры, как появляются новые фичи для разработчиков, почему приватности почти не существует, что нас ждёт в будущем и ещё много о чём.
Можно включить на фоне как подкаст.
Кстати, после просмотра этого интервью ещё раз осознал, что мы в «Веб-стандартах» важную вещь делаем помимо помощи новичкам в профессии. Важно ещё и обновлять знания опытных разработчиков, у которых часто нет времени копаться в каждой новости и следить за всеми обновлениями. Мы это делаем за читателей и слушателей, подсвечивая самое важное.
https://youtu.be/uPIUl8Bdq5A
YouTube
Эволюция браузеров: от IE6 до ИИ-оболочек | Вадим Макеев #61
За последние годы развитие браузеров происходило настолько высокими темпами, что многие теряются в происходящем. Я решил это исправить. Мы поговорили с Вадимом Макеевым — экспертом по веб-стандартам из Mozilla (ранее работавшим в Opera), и обсудили, как эволюция…
1❤45💯8👍4👏1🤣1
Chrome DevTools MCP
Если вы ещё не работали с Model Context Protocol в связке с AI-агентами, то вот хороший повод попробовать.
Команда Chrome выпустила npm-пакет, который позволяет работать с DevTools через MCP. Подключается к IDE через конфиг MCP-клиента:
Дальше на всякий случай обучаете инструмент системными или другими промптами, чтобы когда вы просите проверить что-то в браузере, он работал с
Анонс: https://developer.chrome.com/blog/chrome-devtools-mcp
Документация: https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/tool-reference.md
Если вы ещё не работали с Model Context Protocol в связке с AI-агентами, то вот хороший повод попробовать.
Команда Chrome выпустила npm-пакет, который позволяет работать с DevTools через MCP. Подключается к IDE через конфиг MCP-клиента:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}
Дальше на всякий случай обучаете инструмент системными или другими промптами, чтобы когда вы просите проверить что-то в браузере, он работал с
chrome-devtools. И можно спрашивать про сеть, перфоманс, навигацию, ресайзить страницы и многое другое. Подробности в документации.Анонс: https://developer.chrome.com/blog/chrome-devtools-mcp
Документация: https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/tool-reference.md
Chrome for Developers
Chrome DevTools (MCP) for your AI agent | Blog | Chrome for Developers
Public preview for the new Chrome DevTools MCP server, bringing the power of Chrome DevTools to AI coding assistants.
🔥42❤8👍7🥴6💔1
Проблемы @starting-style
Директива
Джош Комо подсвечивает нюансы такого подхода:
- Стили внутри
- Когда в стилях появляется
В общем, классические проблемы со специфичностью и каскадом. Джош в статье предлагает решения этих проблем. Правда, в конце приходит в выводу, что ему пока проще использовать обычные анимации через
Имхо, оба подхода создают какие-то трудности. Анимации так-то тоже могут перебить стили, которые ты не ожидаешь нечаянно затереть, потому что у них очень высокий приоритет над почти любыми другими стилями. Но, справедливости ради, я пока ни разу в своих проектах
https://www.joshwcomeau.com/css/starting-style/
Директива
@starting-style — это такой способ указать браузеру, какие стили у элемента должны быть в тот момент, когда он только появился на странице. И если у него ещё есть указанный transition, то можно сотворить красивую анимацию появления.Джош Комо подсвечивает нюансы такого подхода:
- Стили внутри
@starting-style имеют ту же специфичность, что и селектор, для которого они объявлены. Что, в целом, логично. Но ломает работу с инлайн-стилями, например.- Когда в стилях появляется
!important, то поддержка становится ещё веселее.В общем, классические проблемы со специфичностью и каскадом. Джош в статье предлагает решения этих проблем. Правда, в конце приходит в выводу, что ему пока проще использовать обычные анимации через
@keyframes.Имхо, оба подхода создают какие-то трудности. Анимации так-то тоже могут перебить стили, которые ты не ожидаешь нечаянно затереть, потому что у них очень высокий приоритет над почти любыми другими стилями. Но, справедливости ради, я пока ни разу в своих проектах
@starting-style не применял, как-то не было нужды.https://www.joshwcomeau.com/css/starting-style/
Joshwcomeau
The Big Gotcha With @starting-style • Josh W. Comeau
CSS has been on fire lately, with tons of great new features. @starting-style is an interesting one; it allows us to use CSS transitions for enter animations, something previously reserved for CSS keyframe animations. But is the juice worth the squeeze?
👍17❤4🥴1