Scheduler.yield() разгрузил главный поток
Современный Web API
Порция в 8192 записи укладывается примерно в 1,7 мс CPU, а
https://habr.com/ru/companies/domclick/articles/1090250/
Современный Web API
scheduler.yield() помогает дробить тяжёлые вычисления и возвращать управление браузеру без долгих блокировок интерфейса. В тесте на 500 тыс. записей задержка ввода упала с 45,4 до 0,3 мс по сравнению с синхронным запуском.Порция в 8192 записи укладывается примерно в 1,7 мс CPU, а
setTimeout(0) в такой схеме проигрывает из-за 4 мс минимальной задержки и потери приоритета продолжения.https://habr.com/ru/companies/domclick/articles/1090250/
⚡10👍6
Interop 2026 показал будущее CSS
Проект Interop, в котором браузерные вендоры согласуют новые HTML, CSS и JS-возможности, собрал список CSS-фич, которые скоро могут стать общими для браузеров. Среди них есть изменения, которые упростят верстку и снизят расхождения между движками.
Interop не гарантирует мгновенный выпуск, поэтому часть возможностей сначала появится в отдельных браузерах и только потом доедет до всех.
https://www.joshwcomeau.com/css/interop-2027/
Проект Interop, в котором браузерные вендоры согласуют новые HTML, CSS и JS-возможности, собрал список CSS-фич, которые скоро могут стать общими для браузеров. Среди них есть изменения, которые упростят верстку и снизят расхождения между движками.
Interop не гарантирует мгновенный выпуск, поэтому часть возможностей сначала появится в отдельных браузерах и только потом доедет до всех.
https://www.joshwcomeau.com/css/interop-2027/
🔥9
Что можно собрать из ::before и ::after
Псевдоэлементы
https://habr.com/ru/companies/gnivc/articles/1096800
Псевдоэлементы
::before и ::after можно превратить в полноценные декоративные слои и фигуры без лишних узлов в HTML. box-shadow, несколько background и clip-path позволяют собрать из одного псевдоэлемента повторяющиеся объекты, сложные фоны и нестандартные формы.https://habr.com/ru/companies/gnivc/articles/1096800
❤🔥7❤3
Сниппет для иконок через CSS-переменные
Проблема в том, что иконки в HTML быстро превращаются в шум:
Подход хорош, когда у вас есть дизайн-система и нужно реактивно менять иконки по теме, состоянию или контексту; для разовых иконок в одном месте лишний CSS может оказаться тяжелее обычного
https://lea.verou.me/blog/2026/icons/
Проблема в том, что иконки в HTML быстро превращаются в шум:
svg в разметке, обёртки, отдельные компоненты, а менять их по состоянию или теме неудобно. Здесь предлагается держать иконку как токен и подставлять её через CSS, чтобы переопределение было таким же простым, как смена переменной.button.delete {
--icon: var(--icon-trash-outlined);
@media (prefers-color-scheme: dark) {
--icon: var(--icon-trash-filled);
}
&:hover {
background: var(--color-danger);
color: var(--color-danger-text);
}
}
Подход хорош, когда у вас есть дизайн-система и нужно реактивно менять иконки по теме, состоянию или контексту; для разовых иконок в одном месте лишний CSS может оказаться тяжелее обычного
svg.https://lea.verou.me/blog/2026/icons/
lea.verou.me
The best way to use icons in Web UIs • Lea Verou
What if I told you, you could use CSS to insert and tweak icons without touching any HTML? And that it could be more flexible and maintainable than what you’ve been using?
👍6👎3💩1🥴1
Deno уходит в Cloudflare ради новой платформы
Команда Deno переходит в Cloudflare, потому что хочет развивать не отдельный runtime, а общую платформу для серверов, где compute, storage и communication работают вместе. Авторы прямо говорят, что Deno Deploy показал: удобный DX есть, но под ним всё ещё слишком много инфраструктурной сложности.
Сильный аргумент за этот шаг —
А вы бы поставили на такую платформу вместо отдельного runtime?
https://deno.com/blog/cloudflare
Команда Deno переходит в Cloudflare, потому что хочет развивать не отдельный runtime, а общую платформу для серверов, где compute, storage и communication работают вместе. Авторы прямо говорят, что Deno Deploy показал: удобный DX есть, но под ним всё ещё слишком много инфраструктурной сложности.
Сильный аргумент за этот шаг —
celld и Durable Objects обещают распределённые приложения с масштабированием, встроенным в модель программирования, а не собранным вручную. Сильный аргумент против — Deno как runtime получит только год поддержки, Deno Deploy закроется через шесть месяцев, а тем, кто строил на экосистеме, придётся мигрировать.А вы бы поставили на такую платформу вместо отдельного runtime?
https://deno.com/blog/cloudflare
🤔5❤1
TypeScript перегрузки стали понятнее
Перегрузки в TypeScript позволяют одной функции поддерживать несколько сценариев вызова и точнее выводить типы аргументов и результата. Для старого API можно добавить новую сигнатуру, не ломая существующие вызовы, если реализация принимает объединённые типы.
https://habr.com/ru/articles/1096858/
Перегрузки в TypeScript позволяют одной функции поддерживать несколько сценариев вызова и точнее выводить типы аргументов и результата. Для старого API можно добавить новую сигнатуру, не ломая существующие вызовы, если реализация принимает объединённые типы.
https://habr.com/ru/articles/1096858/
❤🔥5👎2🔥2⚡1
iOS PWA унаследовали старые ограничения
Первая часть цикла о том, как PWA работают на iPhone, объясняет, откуда берутся привычные странности iOS и почему они до сих пор влияют на запуск веб-приложений. В
https://feeds.dzone.com/link/23564/17501497/pwa-ios-history
Первая часть цикла о том, как PWA работают на iPhone, объясняет, откуда берутся привычные странности iOS и почему они до сих пор влияют на запуск веб-приложений. В
<head> почти любого PWA в 2026 году рядом с manifest по-прежнему встречается apple-mobile-web-app-capable.https://feeds.dzone.com/link/23564/17501497/pwa-ios-history
DZone
PWA on iOS, Part 1: PWAs on the iPhone Are Older Than They Look
iPhone PWAs got a full-screen mode in 2008, Service Workers in 2018, and push only in 2023. That history still shows up in your code.
👍3⚡1
TanStack AI начал стримить структурированный JSON
TanStack AI теперь умеет ограничивать ответ модели Zod-схемой и отдавать структурированный JSON по мере генерации. Для стриминга на сервере нужно включить
https://blog.master.dev/structured-output-with-tanstack-ai/
TanStack AI теперь умеет ограничивать ответ модели Zod-схемой и отдавать структурированный JSON по мере генерации. Для стриминга на сервере нужно включить
stream: true, а на клиенте читать данные через fetchServerSentEvents.https://blog.master.dev/structured-output-with-tanstack-ai/
👍6🔥2
Браузеры по-разному грузят lazy-медиа
Вышел разбор того, как Chrome, Firefox и Safari заранее подгружают lazy images и media, и почему
https://calibreapp.com/blog/native-lazy-loading
Вышел разбор того, как Chrome, Firefox и Safari заранее подгружают lazy images и media, и почему
loading="lazy" на hero-изображении замедляет страницу. Для LCP-картинки оставляйте eager по умолчанию, а loading="lazy" ставьте только ниже первого экрана, иначе браузер начнёт запрос позже.https://calibreapp.com/blog/native-lazy-loading
👍4❤3
CSS научил анимации стартовать по скроллу
В CSS Animation Triggers появился
https://utilitybend.com/blog/scroll-triggered-animation-as-the-missing-piece-for-scrollytelling-on-the-web
В CSS Animation Triggers появился
animation-trigger, который запускает обычную анимацию, когда элемент входит в нужный диапазон прокрутки. Chromium уже поддерживает это в версии 146 и новее, а для старых браузеров нужен запасной вариант с JavaScript или IntersectionObserver.https://utilitybend.com/blog/scroll-triggered-animation-as-the-missing-piece-for-scrollytelling-on-the-web
👍9❤2
Как проверить обработчик postMessage в iframe
postMessage в iframe позволяет виджету и родительской странице обмениваться данными, но без проверок любое окно может отправить сообщение. Для resize-обработчика нужно сверять
https://blog.master.dev/testing-an-iframes-postmessage-handler/
postMessage в iframe позволяет виджету и родительской странице обмениваться данными, но без проверок любое окно может отправить сообщение. Для resize-обработчика нужно сверять
event.origin и event.source, а затем ограничивать формат и диапазон данных.https://blog.master.dev/testing-an-iframes-postmessage-handler/
❤3👍3
Tamagui 3 добавил Tailwind-подобные пропсы
Tamagui 3 — система стилей и набор компонентов для React и React Native. В ее новой версии появились Tailwind-подобные пропсы и поддержка React Strict DOM.
Поддержка React Strict DOM пока важна для тех, кто собирает общий интерфейс для веба и нативных приложений, потому что она помогает держать один код без лишних обходных решений.
https://tamagui.dev/blog/version-three
Tamagui 3 — система стилей и набор компонентов для React и React Native. В ее новой версии появились Tailwind-подобные пропсы и поддержка React Strict DOM.
Поддержка React Strict DOM пока важна для тех, кто собирает общий интерфейс для веба и нативных приложений, потому что она помогает держать один код без лишних обходных решений.
https://tamagui.dev/blog/version-three
👍3❤2