FrontEndDev
25.5K subscribers
2.73K photos
30 videos
7.97K links
🚀 Статьи, новости, туториалы по frontend разработке.

http://jem-space.ru

Admin: @jem_jem
Пишу в @five_a_m
AI и вайбкод @vibe_and_ai

Читать на парковке: https://max.ru/front_end_dev

Реклама: http://bit.ly/2NxmVDu
РКН: https://clck.ru/3GLw7G
Download Telegram
Scheduler.yield() разгрузил главный поток

Современный 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/
🔥9
Что можно собрать из ::before и ::after

Псевдоэлементы ::before и ::after можно превратить в полноценные декоративные слои и фигуры без лишних узлов в HTML. box-shadow, несколько background и clip-path позволяют собрать из одного псевдоэлемента повторяющиеся объекты, сложные фоны и нестандартные формы.

https://habr.com/ru/companies/gnivc/articles/1096800
❤‍🔥7❤3
Сниппет для иконок через CSS-переменные

Проблема в том, что иконки в 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/
👍6👎3💩1🥴1
Deno уходит в 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/
❤‍🔥5👎2🔥2⚡1
iOS PWA унаследовали старые ограничения

Первая часть цикла о том, как PWA работают на iPhone, объясняет, откуда берутся привычные странности iOS и почему они до сих пор влияют на запуск веб-приложений. В <head> почти любого PWA в 2026 году рядом с manifest по-прежнему встречается apple-mobile-web-app-capable.

https://feeds.dzone.com/link/23564/17501497/pwa-ios-history
👍3⚡1
TanStack AI начал стримить структурированный JSON

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, и почему loading="lazy" на hero-изображении замедляет страницу. Для LCP-картинки оставляйте eager по умолчанию, а loading="lazy" ставьте только ниже первого экрана, иначе браузер начнёт запрос позже.

https://calibreapp.com/blog/native-lazy-loading
👍4❤3
CSS научил анимации стартовать по скроллу

В 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-обработчика нужно сверять 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
👍3❤2