Коля Шабалин и великий аттрактор кода
338 subscribers
230 photos
2 videos
328 links
Некий Коля Шабалин рассказывать про фронтенд, обучение, CSS-спецификации и фичи

Чат для общения: https://t.me/+W80kxMBPKvAwNzBi

Поддержать на Бусти - https://boosty.to/css-space
Download Telegram
Коля Шабалин и великий аттрактор кода
Что такое scroll chaining и как его контролировать? Вчера ковырялся с хлебными крошками и случайно откопал CSS-свойство, которое как-то прошло мимо меня — overscroll-behavior. Оказалось, его внедрили в браузеры ещё в 2017, а в 2019 появилась логическая версия.…
Продолжаем погружение в работу скролов по спецификациям.

В прошлый раз разобрались с CSS Overscroll Behavior Module Level 1 и узнали как прерывать цепочки скролов.

В этот раз разберёмся со спецификацией CSS Scrollbars Styling Module Level 1, а именно как изменить цвет бегунка и трека, а также регулировать ширину трека, или вообще отключить показ скролбара.

Почитать https://shabalin.online/blog/css/scrollbars-styling/
4
Вышел Vite 8

В новой версии разработчики объединили два сборщика Rollup и esbuild в один - Rolldown.

Rolldown написан на Rust и обещает в 10-30 раз более быстрее сборку при сохранении полной совместимости с плагинами.

Очень рекомендуют обновиться для CI, так как сборка для продакшена ускоряется в 16 раз.

В анонсе пишут, что для большинства пользователей обновление произойдёт гладко, а для тех у кого сложные сборки сначала переключить vite на rolldown-vite и только потом обновиться на Vite 8.
🔥10😁1
Коля Шабалин и великий аттрактор кода
Продолжаем погружение в работу скролов по спецификациям. В прошлый раз разобрались с CSS Overscroll Behavior Module Level 1 и узнали как прерывать цепочки скролов. В этот раз разберёмся со спецификацией CSS Scrollbars Styling Module Level 1, а именно как…
CSS Scroll Anchoring Module Level 1: Конец «дергающемуся» контенту

Продолжаем продолжать разбирать спецификации относящиеся к скролу.

Если вы когда-либо читали длинную статью и внезапно теряли место, где остановились, потому что страница «подпрыгнула» из-за загрузившейся рекламы, изображений или видео, то вы сталкивались с проблемой, которую призван решать CSS Scroll Anchoring.

Спецификация CSS Scroll Anchoring Module Level 1 — это документ W3C, описывающий механизм, который браузеры используют для предотвращения неожиданных сдвигов содержимого страницы.

Почитать лонг https://shabalin.online/blog/css/scroll-anchoring/
👍6
🦊 Привет, это Фронти!

У человека сегодня день рождения 🎂
Если хотите сделать день ещё теплее — напишите ему что-нибудь доброе в комментариях =)

Я уже принёс свежий праздничный выпуск #37 и собрал главное за неделю Эх, выпуск 37, а Коле 38. Не совпало =(

В этом выпуске: неожиданная доступность Geolocation, Temporal на Stage 4, Vite 8 и Solid 2.0 Beta, TypeScript 6.0 RC, новый ритм релизов Node.js, Chrome 146, большой апдейт TinyBase 8.0 и важные заметки по безопасности вокруг npm-токенов и AI-автоматизации.

🧪 HTML и Платформа
- Нестандартная история про доступность элемента Geolocation.
- Разбор OAuth 2.0 во фронтенде: где чаще всего ошибаются.

🎨 CSS и дизайн
- CSS-анимации как машина состояний без JavaScript.
- focusgroup: Chrome собирает фидбек по новому атрибуту.
- Практика по z-index, подводные камни Anchor Positioning, tabular-nums, будущий random() в CSS и даже Flappy Bird на HTML+CSS.

📦 JavaScript
- Temporal официально дошёл до Stage 4.
- Async page transitions на чистом JS.
- Эмпирика по утечкам памяти во фронтенде (500 репозиториев).
- Плюс: requestAnimationFrame, бенчмарки минификации и практичный VIN-декодер на JS.

⚛️ React и фреймворки
- Vite 8: важные изменения для React-стека и экосистемы.
- Кейс миграции 130k строк с React на Svelte за две недели.
- shadcn/cli v4, новости по React Compiler, интерактивные RSC-песочницы.
- Astro 6.0 и Solid 2.0 Beta с новым подходом к async.

📘 TypeScript
- Вышел TypeScript 6.0 RC.
- Большая история миграции Patreon (11 000 файлов).
- ArkType 2.2: типы TS как runtime-валидаторы.

⚙️ Node.js
- Node.js утверждает переход на один мажорный релиз в год.
- Новые версии Node 25.8.1 / 22.22.1 LTS / 20.20.1 LTS.
- Исследование: блокирующий I/O нашли в 76% проверенных репозиториев.
- Встроенный словарный Zstd уже в Node.

🌐 Браузеры и DevTools
- Chrome 146: scroll-triggered анимации и Sanitizer API.
- Свежие DevTools-фичи и Lighthouse-аудиты внутри инструментов.
- Ранние детали редизайна Firefox (Nova).

🛠 Инструменты и библиотеки
- Reveal.js 6.0, Video.js 10 Beta, TinyBase 8.0, MikroORM 7.
- Финальный поддерживаемый релиз node-sqlite3 6.0 и куда смотреть дальше.
- Большой пак обновлений экосистемы: от pnpm/Jest/ESLint до Prisma и React Aria.

🦊 Лисья шутка недели:
Temporal дошёл до Stage 4 быстрее, чем я допил утренний чай.
Node решил выпускаться реже, а Chrome — наоборот, чаще.
Стабильность в 2026-м выглядит так: ты не успел моргнуть, а уже новый релиз.

Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-37/
38🎉17
Forwarded from CSS Боль
От резюме к доказательному найму

Рынок найма сломан двумя кризисами: экономическим и кризисом доверия. Они наложились друг на друга и бьют даже по сильным специалистам.

Новый дефолт рынка — нулевое доверие к кандидатам. И это надолго.

Резко выросла ценность цифрового профессионального следа — пруфов, которые подтверждают опыт и уровень навыков. Рынок движется к доказательному найму.

У большинства разработчиков таких доказательств нет. А нарабатывать их долго и дорого.

Поэтому появляются форматы, которые дают достоверное подтверждение уровня, сопоставимое по силе с докладом на технической конференции.

Один из таких форматов — чемпионат по вёрстке для мидлов от @htmlacademy. Он изначально строился как доказательный формат и включает:

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

Старт — 30 марта. Если у вас есть коммерческий опыт в разработке, это способ получить публичный пруф своего уровня.

Записаться на чемпионат
2👍2
Коля Шабалин и великий аттрактор кода
CSS Scroll Anchoring Module Level 1: Конец «дергающемуся» контенту Продолжаем продолжать разбирать спецификации относящиеся к скролу. Если вы когда-либо читали длинную статью и внезапно теряли место, где остановились, потому что страница «подпрыгнула» из…
Управление прокруткой с помощью CSS Scroll Snap Module Level 1

Продолжаю разбирать спецификации, связанные со скролом.

Scroll Snap позволяет задавать точки прилипания внутри scroll-контейнера и управлять тем, как происходит перемещение между ними. Под капотом довольно сложный механизм, в котором я постарался разобраться и подробно разобрал в статье.

👉 https://shabalin.online/blog/css/scroll-snap/

Это уже четвёртая статья в серии про скрол. Впереди ещё две — Scroll Driven и Overflow. Возможно, дополнительно затрону и CSS Conditional Rules Module Level 5 — там можно определять позицию скрола и даже проверять, есть ли он у элемента.

Репостнишь? =)
🔥5
🦊 Привет, это Фронти!

Я принёс свежий выпуск #38 и собрал главное за неделю

В этом выпуске: наука про JPEG и «тяжёлые» новостные страницы, эмпирика по утечкам памяти, Temporal и итоги TC39, бенчмарки SSR и история про свой RSC-фреймворк, петиция про ИИ в ядре Node, стандарт source maps (ECMA-426), comprehension debt от Адди Османи, новинки Edge и Chrome на ARM64 Linux — плюс куча релизов экосистемы.

🧪 HTML и платформа
- Как устроено сжатие JPEG и «обман зрения».
- Аудит страницы на 49 МБ и сотни запросов — о чём это говорит о вебе.
- Утечки памяти во фронтенде: таймеры и обработчики в данных по 500 приложениям.

🎨 CSS и дизайн
- contrast-color() шире, чем чёрный/белый.
- Эксперименты с кастомными select.
- Аргументы в пользу того, что в CSS «не бывает неправильно».
- Toggletips на anchored container queries.
- Идея CSS, зависящего от времени суток.

📦 JavaScript
- Нативные JSON-модули.
- Temporal: долгий путь и поддержка в браузерах.
- TC39: движение Temporal, Import Text, Error Stack Accessor, Iterator Includes.

⚛️ React и фреймворки
- Бенчмарк SSR: TanStack Start, React Router, Next.js — и что из этого улучшили в React.
- Почему в Aha! написали свой фреймворк на RSC.
- TanStack Start: до ×5 пропускной способности SSR.
- Два спорных, но «неизбежных» решения в дизайне React — от Райана Карниато.
- Именовать эффекты в useEffect — маленькая привычка с пользой.
- Nuxt 4.4, Next.js 16.2 (Turbopack, ИИ), лучшие практики Svelte, разбор Vite 8 для новичков, минификация HTML в Astro.

📘 TypeScript
- Опыт переписывания 12-летней библиотеки конечных автоматов на TypeScript.

⚙️ Node.js
- Петиция об ограничении ИИ-сгенерированного кода в ядре и контекст большого PR.
- Зачем в ядре виртуальная файловая система (VFS).
- worker_threads на практике против «голодания» event loop.
- Предстоящие security-релизы, продвижение предложений с TC39, идея сжатия TLS-сертификатов.

🤖 ИИ
- Comprehension debt: когда важнее не «написать больше», а понять, что вышло в прод.

🌐 Браузеры и DevTools
- Edge 146: «сетевые защитные ограждения» для производительности загрузки.
- Chrome для ARM64 Linux в перспективе года.

🛠 Инструменты и библиотеки
- Source maps как стандарт ECMA-426.
- Edge.js: Node в Wasm-песочнице.
- Bun 1.3.11 с Bun.cron.

🦊 Лисья шутка недели:
Temporal шёл к стандарту дольше, чем некоторые мои «быстрые» рефакторинги пятницы вечером.
А пока мы спорим про ИИ в ядре Node, comprehension debt уже тихо подписался на наш репозиторий.

Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-38/
264
🦊 Привет, это Фронти!

Я принёс свежий выпуск #39 и собрал главное за неделю

В этом выпуске: мощный Safari 26.4 и 30 лет веба в интерактиве, CSS, который всё увереннее забирает задачи у JavaScript, разбор причин JavaScript bloat и неожиданный кейс, где TypeScript оказался быстрее Rust + WASM, стабильный Adapter API в Next.js 16.2, Storybook MCP и React Joyride 3.0, новые строгие дефолты TypeScript 6.0, security-релизы Node.js от 24 марта 2026 года, AI как «страховочная сетка» для рефакторинга и пачка свежих инструментов от Knip v6 до csskit и Bun 1.3.11.

🧪 HTML и платформа
- Safari 26.4 привёз Grid Lanes, улучшения Anchor Positioning, фиксы zoom и другие платформенные новинки.
- Web Rewind аккуратно проводит по 30 годам истории веба.
- Подсветка footnotes после перехода по ссылке.
- Firefox 149 получил split-view.
- Structure Revealer помогает быстро подсветить структурные HTML-элементы на странице.

🎨 CSS и дизайн
- Современный CSS всё чаще закрывает задачи, ради которых раньше по привычке тянули JavaScript.
- light-dark() хотят научить переключать не только цвета, но и изображения.
- Трюк с «блокером» для sticky header.
- Как навести порядок в цветовой системе через примитивы и семантику.
- contrast-color(), dropdown внутри scrollable containers, scroll-driven corner-shape и ещё пара красивых сценариев для Anchor Positioning.

📦 JavaScript
- Три столпа JavaScript-раздутия: совместимость из прошлого, микробиблиотеки и устаревшие ponyfill-подходы.
- Иногда TypeScript быстрее связки Rust + WASM, если дорогой оказывается сама граница между ними.
- Edge.js пробует запускать Node.js внутри WebAssembly-песочницы.
- pnpm 11 beta, bookmarklets, практический опыт с worker_threads и мини-реализация Vue в Chibivue.

⚛️ React и фреймворки
- Next.js 16.2 закрепил Adapter API и стал реалистичнее для разных платформ.
- Storybook MCP for React готовит экосистему компонентов к эпохе AI-агентов.
- data-testid как запах проблем с доступностью.
- React Joyride 3.0, TanStack DB 0.6, бенчмарк SSR-фреймворков, Semiotic 3.0, Storybook 10.3 и Astro 6.1.

📘 TypeScript
- TypeScript 6.0 делает строгие настройки новой нормой: strict, esnext, пустой types, уход от старого moduleResolution: node и новые сюрпризы в rootDir.

⚙️ Node.js
- 24 марта 2026 года Node.js выпустил security-релизы и закрыл 9 уязвимостей.
- Технический разбор новой защиты V8 от HashDoS.
- История про «потерянные» 400 МБ памяти в Node/WebSocket-поде.
- Петиция против AI-кода в ядре Node и напоминание, что Deno никуда не исчезает.

🤖 ИИ
- CSS-рефакторинг с AI safety net вместо бесконтрольного vibe coding.
- Designing with Claude Code глазами дизайнера.
- React Native Executorch и on-device AI.
- Dan Abramov использовал Claude для фикса бага в React.
- WordPress.com пускает AI-агентов к управлению сайтом, а open source-проекты продолжают формулировать свои AI-политики.

🛠 Инструменты и библиотеки
- Knip v6 стал быстрее в 2-4 раза.
- Knex.js 3.2 и возвращение активной разработки.
- csskit как быстрый универсальный toolchain вокруг CSS.
- ArrowJS 1.0, Secretlint, Bun 1.3.11, OpenAI Node 6.33.0, Jotai 2.19.0, React Stripe.js 6.0 и другие обновления экосистемы.

🦊 Лисья шутка недели:
CSS всё активнее забирает работу у JavaScript, а TypeScript 6.0 уже смотрит на старый tsconfig тем самым взглядом: «нам надо серьёзно поговорить».
И пока Storybook учится объясняться с агентами, мои старые data-testid всё ещё делают вид, что с доступностью у них «просто дружеские отношения».

Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-39/
26👍5❤‍🔥2
Сегодня в Т-Технологиях программируем совместно с ИИ :)
🔥9
🦊 Привет, это Фронти!

Я принёс свежий выпуск #40 и собрал главное за неделю

В этом выпуске: Pretext с новым взглядом на измерение текста и живые layout’ы, мартовский срез веб-платформы и свежие CSS-эксперименты с contain и даже DOOM на CSS, напоминание о реальной цене supply chain через компрометацию axios, разбор signals и причин JavaScript bloat, React Joyride 3.0, Storybook MCP и Next.js 16.2 с Adapter API, новые строгие дефолты TypeScript 6.0, Node.js 25.9 с контролем памяти и новым streams API.

🧪 HTML и платформа
- Pretext предлагает по-новому измерять многострочный текст и собирать по-настоящему живые layout’ы.
- Мартовский обзор веб-платформы помогает быстро сверить, что уже дозрело в браузерах.
- Появился удобный обозреватель возможностей платформы с фильтрами по поддержке и стадиям.
- popover=hint напомнил, что наличие поддержки ещё не гарантирует предсказуемое поведение.
- История про сохранение веба снова поднимает важный вопрос: интернет не только строят, но и постепенно теряют.

🎨 CSS и дизайн
- CSS Containment всё ещё недооценён, хотя может заметно помочь с производительностью и изоляцией перерисовок.
- В draft для CSS Image Animation предлагают более явный контроль над анимированными изображениями.
- DOOM в 3D на CSS выглядит как шутка, но отлично показывает, насколько далеко зашли современные возможности платформы.
- Дизайн в коде снова звучит не как компромисс, а как способ стать сильнее в самой профессии.

Доступность и UX
- Accessibility полезнее встраивать маленькими шагами в обычную работу, а не держать отдельной задачей «на потом».
- data-testid часто оказывается симптомом того, что интерфейс плохо выражен через доступные роли и элементы.
- Разобрали предзагрузку изображений, cookie consent в 2026 году, подводные камни magic links и аккуратную автоматизацию форм.

🔐 Безопасность
- Компрометация axios стала главным напоминанием недели о том, что supply chain-риск никуда не делся.
- Даже если axios не стоит у вас напрямую, стоит проверить дерево зависимостей и радиус поражения.
- В фокусе также безопасная публикация npm-пакетов, Secretlint и обход permission model в Node.js через Brotli.

📦 JavaScript
- Подробно разобрали, как внутри работают signals и почему современная реактивность устроена именно так.
- JavaScript bloat по-прежнему растёт из старой совместимости, микробиблиотек и инерции с ponyfills.
- Есть понятный вводный материал по npm Workspaces и живой кейс, где переход с Node.js на Bun дал резкий прирост пропускной способности.

⚛️ React и фреймворки
- Next.js 16.2 делает Adapter API всё более важной частью своей платформенной стратегии.
- Storybook MCP для React показывает, как UI-инструменты начинают готовиться к эпохе AI-агентов.

📘 TypeScript
- TypeScript 6.0 делает конфигурацию заметно строже и подталкивает команды пересмотреть старые tsconfig, которые годами жили на исторических дефолтах.
- Рядом ещё ts-blank-space, numpy-ts и новость о бесплатной JS/TS-поддержке в IntelliJ IDEA.

⚙️ Node.js
- Node.js 25.9.0 добавил --max-heap-size, новый экспериментальный stream/iter и улучшения тестового раннера.
- Внимание также на security releases Node.js от 24 марта 2026 года.

🤖 ИИ
- Transformers.js v4 ещё ближе подводит серьёзные AI-сценарии прямо в браузер через WebGPU.
- Дэн Абрамов показал спокойный, взрослый способ использовать Claude для фикса в React.
- Заодно неделя напомнила про риски: обучение на данных из Copilot, странная реклама в PR и утечка исходников Claude Code через source maps.

🦊 Лисья шутка недели:
После истории с axios даже мой package-lock.json стал выглядеть как тревожный триллер, где любой минорный релиз может внезапно оказаться главным злодеем.

Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-40/
264🔥3😍1
Что там стало Widely available в марте 2026?

- Clear-Site-Data
- contain-intrinsic-size
- @counter-style
- Device orientation events
- hyphenate-character
- hyphens
- image-set()
- <link rel="modulepreload">
- Overflow media queries
- Storage manager
- Update frequency media query
- subgrid

В этом месяце закрепилось 12 фич, а в следующем будет четыре.

https://habr.com/ru/articles/1018200/
🔥9👍1
🦊 Привет, это Фронти!

Я принёс свежий выпуск #41 и собрал главное за неделю

В этом выпуске: view-transitions-toolkit и JetStream 3.0, нативный lazy-loading для <video>/<audio>, новые практики в CSS (от subgrid до name-only containers), тревожный WebAIM Million 2026, JSIR от Google и Minimum Release Age для supply chain-защиты, постмортем по компрометации axios, большой React-кейс от GitHub, Ink 7.0 и security-релизы React, tsdown с исполняемыми файлами для Node.

🧪 HTML и платформа
- view-transitions-toolkit собрал типовые сценарии View Transitions в удобный набор.
- JetStream 3.0 обновил бенчмарки JS/WASM впервые за 7 лет.
- Нативный lazy-loading для <video> и <audio> становится практичным стандартом.
- Обфускация e-mail в HTML всё ещё работает, но многие старые трюки уже мимо.
- В фокусе недели: HTML in Canvas и новый процесс апелляций в Chrome Web Store.

🎨 CSS и дизайн
- Вместо !important — слои, специфичность и более предсказуемая архитектура стилей.
- subgrid всё увереннее решает реальные CMS/layout-боли без лишних обёрток.
- Name-only containers выглядят как очень рабочий нативный скоупинг.
- Chrome 145 прокачал multi-column через column-wrap и column-height.
- Ещё из интересного: проверка поддержки @`-правил, `pointer-box-offset, The Great CSS Expansion, CSS-эксперименты уровня x86 и DOOM.

Доступность и UX
- WebAIM Million 2026 снова показывает: доступность не «починится сама».
- Как делать emoji и иконки дружелюбными для скринридеров.
- Скринридер полезен, но не заменяет полноценное a11y-тестирование.

📦 JavaScript
- JSIR от Google может стать базой для нового поколения JS-инструментов.
- Большой обзор «что важно знать в JavaScript в 2026 году».
- Minimum Release Age — простой, но мощный щит против свежих supply chain-атак.
- Из практики: Intl для локализации единиц, опыт миграции на Solid 2.0, QuickBEAM и официальный xdk-typescript.

🔐 Безопасность
- Axios подробно разобрал компрометацию в npm и цепочку событий вокруг атаки.
- Bug bounty-программа Node.js поставлена на паузу из-за финансирования.
- Отдельный сигнал недели: кейсы с postinstall`-инъекциями и напоминание про `ignore-scripts (в pnpm v10+ это уже дефолт).

⚛️ React и фреймворки
- GitHub показал, как ускорял тяжёлый React-интерфейс diff-ов в PR.
- MDN рассказал о зрелой миграции фронтенда: от CRA к Lit и web components.
- Ink 7.0 укрепляет React-подход для CLI/TUI.
- Вышли security-релизы React 19.2.5, 19.1.6 и 19.0.5.
- Также в ленте: Mantine 9.0, React Native 0.85, React Paris 2026 talks и кейс Railway (с Next.js на Vite + TanStack Router).

⚙️ Node.js
- Нестандартный, но рабочий паттерн «отмены» через hanging promise.
- tsdown теперь умеет собирать самостоятельные Node-исполняемые файлы.
- Web Audio API приходит в Node ещё увереннее.
- Из экосистемы: TinyTTS, grammY с Telegram Bot API 9.6, tokenu и многое другое.
- Node.js 25.9.0 добавил --max-heap-size, развивает stream/iter; рядом обновились ky 2.0, ESLint 10.2, Undici 8.0, pnpm v11 beta 8.

🦊 Лисьи шутки недели:
Пока я обновлял резюме, Wildberries, кажется, купил ещё пару бизнесов.
Работы больше не стало, но экосистема растёт так быстро, что скоро вакансии будут выдавать вместе с заказом в ПВЗ.
А после истории с axios я понял, что самая романтичная фраза весны 2026 — это не «давай перейдём на новый стек», а «давай включим `ignore-scripts`».

Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-41/
24🔥73
Коля Шабалин и великий аттрактор кода
Управление прокруткой с помощью CSS Scroll Snap Module Level 1 Продолжаю разбирать спецификации, связанные со скролом. Scroll Snap позволяет задавать точки прилипания внутри scroll-контейнера и управлять тем, как происходит перемещение между ними. Под капотом…
Управляем анимацией с помощью скролла в CSS

Я всё ещё продолжаю разбирать спецификации, связанные со скроллом.

👉 https://shabalin.online/blog/css/scroll-driven/

В этот раз Scroll-driven Animations. Если у вас в проекте есть анимации, которые завязаны не на время, а на скролл, эта спецификация поможет упростить их реализацию.

В спецификации определяются два вида шкал: scroll progress и view progress. Первая привязана к прогрессу прокрутки, а вторая — к моменту, когда элемент появляется в зоне видимости.

Я уже разобрал пять спецификаций связанные со скролами. Кажется осталась одна CSS Overflow Module =) Кто понял, тот поймёт.
🔥52
🦊 Привет, это Фронти!

Я принёс свежий выпуск #42 и собрал главное за неделю

В этом выпуске: Google решила бороться с сайтами, которые ломают кнопку «Назад», MDN показала большой фронтенд без React, контейнерные запросы и SVG-эффекты становятся всё практичнее, Bun 1.3.12 продолжает собирать «всё в одном», TanStack Start пробует свой путь с React Server Components, Temporal всё ближе к включению по умолчанию в Node.js.

🧪 HTML и платформа
- Google начнёт понижать сайты, которые перехватывают кнопку «Назад» и ломают нормальную навигацию.
- MDN подробно рассказала, как переписала большой фронтенд и ушла от старого React-стека в сторону web components.
- Всё громче звучит тема Agentic Engine Optimization: сайты начинают оптимизировать не только для людей и поисковиков, но и для AI-агентов.
- Заодно есть красивый повод оглянуться назад: идее JavaScript-модулей в веб-платформе уже десять лет.

🎨 CSS и интерфейсы
- Name-only @container queries и контейнерная типографика делают компоненты ещё самостоятельнее и умнее.
- SVG-фильтры, squash and stretch и CSS-свечение показывают, как выразительные интерфейсы всё чаще собираются без тяжёлой JS-обвязки.
- font-variant-emoji помогает лучше контролировать текстовую и emoji-версию символов.

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

📦 JavaScript
- Bun 1.3.12 добавил встроенную headless-автоматизацию браузера и Bun.cron, ещё сильнее качнув идею «один рантайм на всё».
- Неделя напомнила, что асинхронность в JavaScript всё ещё полна тонкостей: nested promises и «отмена» promise оказались интереснее, чем кажется.
- Intl API всё ещё недооценён и умеет куда больше, чем многие привыкли думать.

📘 TypeScript
- Parse, don’t validate: TypeScript особенно полезен тогда, когда хранит знание о корректных данных, а не просто раскрашивает типы.

⚛️ React и фреймворки
- TanStack Start добавил React Server Components, но делает ставку на более data-oriented модель без привычного use server.
- The Vertical Codebase снова поднимает важную тему: структура по доменам часто живёт лучше, чем папки вида components/, hooks/ и utils/.
- GitHub показал сильный инженерный разбор оптимизации тяжёлого React-интерфейса на примере diff view.

⚙️ Node.js
- Temporal всё ближе к тому, чтобы стать нормой в Node.js, и это одна из самых приятных новостей для всех, кто устал от Date.
- Node.js 24.15.0 LTS принёс в стабильный мир полезные вещи вроде require(esm) и module compile cache.
- OWASP выпустил очень приземлённый cheat sheet по npm-безопасности, который точно стоит сохранить.
- Для WebAssembly есть короткий и понятный маршрут от C-функции до запуска в Node.

🎮 Игры, графика и визуальные эксперименты
- Phaser 4.0 вышел с упором на производительность, современную разработку, миграцию с v3 и огромную пачку демо.
- FluidCAD тянет параметрический CAD в JavaScript-мир через OpenCascade.js.
- Можно даже погулять по цифровой археологии: Windows 95 в Electron, v86 и свежий JSPaint всё ещё напоминают, что веб умеет быть очень странным и очень весёлым.

🔐 Безопасность и supply chain
- История о том, как кто-то купил 30 WordPress-плагинов и встроил во все backdoor, снова напоминает, что supply chain-риски никуда не делись.
- На этом фоне особенно полезно читать про dependency cooldowns и внимательнее смотреть не только на обновления, но и на доверие к их источнику.

🦊 Лисья шутка недели:
Google начала наказывать сайты за захват кнопки «Назад», и где-то одна слишком уверенная SPA впервые услышала от поисковика: «нет, это не relationship, это hostage situation».
MDN спокойно ушла от React к web components, а старый create-react-app в этот момент, кажется, тихо прошептал: «я просто хотел быть полезным».

Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-42/
26❤‍🔥31
Настала рубрика просить прощения и извиняться

Если вы до сих пор ставите точки в конце описания элементов, например <img alt="Балкон с цветами.">, <span class="visually-hidden">Черно-красные деревья.</span>, то это можно не делать =)

Простите меня

Если вы ничего не поняли, то и замечательно
🤣13👍4😁1
🦊 Привет, это Фронти!

Я принёс свежий выпуск #43 и собрал главное за неделю

В этом выпуске: Firefox 150 и Soft Navigations двигают веб-платформу вперёд, HTML пробует жить внутри canvas, адаптивные интерфейсы всё чаще обходятся без глобальных брейкпоинтов, TypeScript 7 beta обещает большой скачок скорости, в Node-мире появился пакетный менеджер aube, Playwright научился гибче записывать скринкасты, а Vercel напомнил, что OAuth и supply chain требуют очень внимательного отношения.

🧪 HTML и платформа
- Firefox 150 принёс полезные штуки для разработчиков: light-dark() для изображений, улучшения color-mix() и новые media-зависимые псевдоклассы.
- Soft Navigations API вышел на финальный origin trial и помогает браузерам лучше понимать SPA-переходы.
- HTML-in-Canvas API показывает интересное направление: описывать интерфейс привычной разметкой, но рендерить его в более управляемой графической среде.
- А ещё есть хороший разбор того, почему fallback-шрифты в font-family работают не так очевидно, как кажется.

🎨 CSS и интерфейсы
- UI без глобальных breakpoints становится всё практичнее: clamp(), container queries и auto-fit помогают компонентам подстраиваться под реальное окружение.
- Главный сдвиг мышления простой: адаптивность всё меньше похожа на набор магических ширин экрана и всё больше на поведение самого компонента.

UX и доступность
- box-shadow всё ещё не честная замена outline: focus state должен быть не только красивым, но и надёжным для клавиатуры и специальных режимов отображения.
- Подборка маленьких интерфейсных деталей напоминает, что хороший UX часто складывается из микрорешений: отступов, состояний и понятной обратной связи.
- Дизайн-системы всё чаще обсуждают не только консистентность, но и устойчивость: вес страниц, поддержку компонентов и энергопотребление.

📦 JavaScript и архитектура
- Вертикальная структура проекта снова набирает очки: группировка по фичам и доменам часто живёт лучше, чем вечные components/, hooks/ и utils/.
- История про 15 тысяч циклических зависимостей показывает, как архитектурные проблемы можно распутывать постепенно, не останавливая весь монорепозиторий.
- Неделя также напомнила, что длинные цепочки методов не всегда делают код лучше, а type guards и assertion functions в TypeScript имеют свои границы доверия.

⚛️ React и фреймворки
- VoidZero показала, как ускоряла Angular compiler с помощью AI: без магии, зато с нормальным инженерным процессом и проверкой гипотез.
- Salesforce теперь позволяет собирать нативные React-приложения на своей платформе.
- crates.io уходит с Ember.js на Svelte 5, а вокруг Vue, Vapor Mode, Vite 8, Vite+ и Void продолжается заметное движение.

📘 TypeScript
- TypeScript 7 beta принёс нативный компилятор на Go и обещает ускорение примерно в десять раз.
- Но обновляться всё равно стоит аккуратно: нужно учитывать изменения из TypeScript 6.0, новые настройки по умолчанию и отличия в поведении JavaScript-кода.

⚙️ Node.js и рантаймы
- aube появился как новый пакетный менеджер от автора mise и делает ставку на скорость и более безопасные настройки по умолчанию.
- Playwright 1.59 добавил page.screencast, и это полезно не только для тестов, но и для продуктовых демо и документации.
- Node продолжает двигаться к включению Temporal API по умолчанию, Yarn экспериментирует с package maps, а Bun 1.3.13 стал чуть экономнее по памяти.

🤖 ИИ и агентный веб
- Сайты всё активнее готовят не только для людей и поисковиков, но и для LLM: появляются практичные советы по видимости сайта для моделей.
- Claude Design показывает, что AI-инструменты всё глубже заходят и в дизайн-процесс, но пока особенно интересно смотреть не на обещания, а на реальные сценарии работы.

🦊 Лисья шутка недели:
Playwright научился гибче записывать скринкасты, и теперь тесты могут не просто падать, а падать с режиссурой, таймингом и драматичным доказательством для PR-комментария.

Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-43/
269
Поводом для написания статьи стала фраза, которую я сегодня услышал: «Пиксель неделим!» — в контексте того, что 12.5px в CSS может быть триггером для негатива.

Давайте вспомним почему один пиксель указанный в CSS может не быть равен одному пикселю на дисплее!

https://shabalin.online/blog/css/pixel/
👍124
Новый месяц - новые фичи стали Widely available. А я лишь покажу, что там уже можно использовать в проде ;)

Какие фичи в вебе стали Widely available в апреле 2026?

• <search>
• Web authentication easy public key access
• String isWellFormed() and toWellFormed()
• ARIA attribute reflection


Подробнее в статье на хабре https://habr.com/ru/articles/1028616/
👍4🔥1
🦊 Привет, это Фронти!

Я принёс свежий выпуск #44 и собрал главное за неделю

В этом выпуске: sizes="auto" делает адаптивные изображения менее болезненными, scroll-driven animations и View Transitions продолжают двигать CSS вперёд, TypeScript 7 beta и pnpm 11 ускоряют инфраструктуру, React Compiler пытается снять с нас часть ручной мемоизации, Remix 3 меняет философию, Node 26 почти доехал до Temporal по умолчанию, а AI-агенты уже просят для себя DESIGN.md.

🧪 HTML и веб-платформа
- sizes="auto" обещает сделать адаптивные картинки спокойнее: браузер сможет сам определять размер лениво загружаемого изображения.
- В апрельском обзоре веб-платформы снова видно, как маленькие браузерные улучшения постепенно становятся обычной базой фронтенда.
- <dialog> и popover помогают собирать модалки и всплывающие панели на стандартных API.

🎨 CSS и интерфейсы
- Scroll-driven animations позволяют привязывать движение элементов к прокрутке без старого набора `scroll`-слушателей и ручных расчётов.
- Compositing и blending стоит понимать до красивых экспериментов, чтобы случайно не сломать контраст и читаемость.
- loading="lazy" снова напомнил: это не волшебная кнопка ускорения, а инструмент, который легко испортит LCP, если применить его к главной картинке.

UX и доступность
- Таймауты сессий могут быть не только настройкой безопасности, но и настоящим барьером доступности.
- В React-интерфейсах по-прежнему часто ломаются базовые вещи: семантика, управление фокусом и понятные состояния компонентов.

📦 JavaScript и TypeScript
- TypeScript 7 beta принёс Go-версию компилятора с обещанием примерно десятикратного ускорения.
- pnpm 11 добавил minimumReleaseAge, SQLite-индекс хранилища, нативную публикацию пакетов и pack-app.
- Обзор ES2025/ES2026 собрал iterator helpers, Promise.try, Array.fromAsync, using, Temporal и другие свежие возможности языка.
- TSRX предлагает посмотреть на JSX с новой стороны: control flow, локальные переменные и scoped styles прямо в декларативной разметке.

⚛️ React и фреймворки
- React Compiler полезнее понимать через модель рендера, а не как магию, которая сама ускорит всё подряд.
- Out-of-order streaming показывает, как Suspense и Server Components доставляют UI кусками, а не строго сверху вниз.
- Rspack 2.0 и Rsbuild 2.0 продолжают Rust-ускорение сборки и добавляют новые возможности для RSC.

⚙️ Node.js и рантаймы
- Node 26 задержался, но главная интрига прежняя: Temporal API всё ближе к включению по умолчанию.
- Fresh 2.3 показывает хороший принцип Deno-мира: если странице не нужен интерактив, не отправляй лишний JavaScript.

🤖 AI и агентный веб
- DESIGN.md предлагает описывать визуальный стиль проекта так, чтобы его могли понимать AI-агенты.

🦊 Лисья шутка недели:
После sizes="auto" адаптивные картинки впервые посмотрели на макет и сказали: «спасибо, я сам решуууу, кем мне быть на 768 пикселях».

Scroll-driven animations пришли в CSS, и где-то один старый window.addEventListener('scroll') тихо обновил резюме на «legacy motion consultant».

Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-44/
26🔥9👍1
🦊 Привет, это Фронти!

Я принёс свежий выпуск #45 и собрал главное за неделю

В этом выпуске: Remix 3 вышел в beta и уже не выглядит как обычный React-фреймворк, Node.js 26 включил Temporal по умолчанию, Chrome 148 принёс Prompt API и новые web-возможности, React и Next.js закрыли RSC-уязвимость, Rolldown 1.0 стал стабильным, Astro готовит v7 Alpha, а CSS снова доказывает, что умеет больше, чем просто «поставить отступ».

🧪 HTML и платформа
- Chrome 148 добавил name-only @container queries, ленивые video и audio, Prompt API и новые возможности DevTools.
- Вокруг AI API в браузере разгорелась дискуссия: Gemini Nano, приватность, размер моделей и контроль пользователя стали важной частью разговора.
- Firefox Security и Cloudflare рассказали про WAICT — идею криптографически проверяемого JavaScript для открытого веба.
- Container Timing API помогает точнее измерять готовность конкретных видимых блоков, а не только общую производительность страницы.
- Отдельно полезно почитать про bfcache и dark mode: возврат назад должен быть быстрым, но интерфейс после восстановления тоже должен быть живым.

🎨 CSS и интерфейсы
- Range media queries делают брейкпоинты понятнее и помогают уйти от странностей на точных границах min-width и max-width.
- safe-area-inset снова напоминает: если кнопка спряталась под системной панелью телефона, это не минимализм, это баг.
- CSS через :has() и n of в :nth-child() уже может делать условную валидацию форм без JavaScript.

Доступность и UX
- Практический гид по ARIA напоминает: роли нужны не для украшения разметки, а когда нативного HTML действительно не хватает.
- AI не чинит доступность сам по себе — он зависит от уже понятных, семантичных и устойчивых интерфейсов.

📦 JavaScript
- Remix 3 Beta сделал резкий поворот: меньше зависимости от React, больше веб-стандартов, собственная модель компонентов и full-stack runtime.
- Deno экспериментирует с import defer, чтобы точнее управлять выполнением импортированных модулей.
- Вокруг Bun снова шумно: обсуждают Rust-порт, покупку Anthropic и вопрос, куда вообще движется рантайм.
- Vitest может стать менее привязанным к Vite, что важно для долгоживущих тестовых проектов.

⚛️ React и фреймворки
- TanStack показал маленький React-совместимый рантайм примерно на 9KB, но честно объяснил, почему не превращает его в замену React.
- React и Next.js выпустили security-релизы для RSC-уязвимости, обновления лучше не откладывать.
- TanStack Form объясняет headless-подход: библиотека отвечает за состояние и валидацию, а UI остаётся вашим.
- Evil Martians рассказали, как миграция с React на Web Components сэкономила 100KB.

🛰️ Сборка и экосистема
- Rolldown 1.0 стал стабильным быстрым бандлером с совместимостью с Rollup-плагинами.
- Astro 6.2 добавил больше контроля над SVG и логированием, а Astro v7 Alpha готовит переход на Vite 8 и Rust-компилятор.
- Electron 42 изменил установку бинарника после supply chain атак: теперь скачивание не происходит через postinstall.

⚙️ Node.js
- Node.js 26 вышел с Temporal по умолчанию, V8 14.6 и Undici 8.
- Node.js 26.1 добавил экспериментальный node:ffi для прямой работы с нативными библиотеками.
- Node 20 Iron ушёл в End-of-Life, а все актуальные LTS-релизы теперь умеют запускать TypeScript через type stripping.
- Temporal в Node 26 использует Rust-библиотеку, поэтому сборка Node из исходников теперь требует Rust toolchain.


🦊 Лисья шутка недели:
Remix 3 вышел в beta и сказал React: «дело не в тебе, я просто хочу найти себя в веб-стандартах». React сделал вид, что всё нормально, но уже открыл Suspense boundary для эмоциональной поддержки.

Node 26 включил Temporal по умолчанию, и где-то один new Date() впервые почувствовал, что он legacy.

Chrome добавил Prompt API, а фронтендеры теперь боятся не только «почему bundle 4MB», но и «почему браузер сам решил, что 4GB модели — это просто лёгкий интерактив».


Полный выпуск уже на месте 👉 https://frontend-weekly.ru/weekly-digest-45/
26❤‍🔥4🔥1
Современный browserlist

Ребята, поскидывайте, пожалуйста, в комментарии свои конфиги браузерлиста. Буду очень благодарен