Как чинить Dropdown-меню внутри скролл-контейнеров
Когда dropdown оказывается в блоке с
https://www.smashingmagazine.com/2026/03/dropdowns-scrollable-containers-why-break-how-fix/
Когда dropdown оказывается в блоке с
overflow, он может обрезаться, “уезжать” при прокрутке или прятаться под соседними слоями. Разбираем причины по шагам и показываем стабильные решения.https://www.smashingmagazine.com/2026/03/dropdowns-scrollable-containers-why-break-how-fix/
1👎6👍4❤2
Forwarded from Web Stack
Тихие блокеры в robots.txt: как ошибки могут незаметно убрать сайт из Google
Неправильный .robots.txt может остановить обход страниц или скрыть важные директории, из-за чего контент не попадает в поиск. Разбираем типовые ошибки вроде Disallow: /, блокировок ресурсов и синтаксических опечаток, и проверяем конфиг через инструменты Google.
https://dev.to/freedevkit/the-silent-blockers-how-robotstxt-mistakes-can-ghost-your-site-from-google-12h0
Неправильный .robots.txt может остановить обход страниц или скрыть важные директории, из-за чего контент не попадает в поиск. Разбираем типовые ошибки вроде Disallow: /, блокировок ресурсов и синтаксических опечаток, и проверяем конфиг через инструменты Google.
https://dev.to/freedevkit/the-silent-blockers-how-robotstxt-mistakes-can-ghost-your-site-from-google-12h0
❤8👍2😐1
Codemod в JavaScript: меняйте сотни файлов без боли с jscodeshift
Когда в проекте постоянно меняются API, синтаксис и UI-kit, спасает подход “меняем код машиной”: jscodeshift строит AST и позволяет делать предсказуемые трансформации сразу по всем файлам — вместо опасного поиска-замены и regex.
https://habr.com/ru/companies/banki/articles/1011580
Когда в проекте постоянно меняются API, синтаксис и UI-kit, спасает подход “меняем код машиной”: jscodeshift строит AST и позволяет делать предсказуемые трансформации сразу по всем файлам — вместо опасного поиска-замены и regex.
https://habr.com/ru/companies/banki/articles/1011580
🔥6❤2
Masonry на Flexbox: раскладываем элементы по строкам с точной математикой
Разбираем, как Flexbox распределяет свободное место между flex-элементами (grow/shrink), чтобы собрать “мозаичный” layout из карточек разной высоты при известном aspect ratio. Освоим логику расчёта для каждой строки и сможем воспроизвести masonry-эффект без тяжёлых фреймворков.
https://frontendmasters.com/blog/flexbox-masonry-layout-explained-with-math/
Разбираем, как Flexbox распределяет свободное место между flex-элементами (grow/shrink), чтобы собрать “мозаичный” layout из карточек разной высоты при известном aspect ratio. Освоим логику расчёта для каждой строки и сможем воспроизвести masonry-эффект без тяжёлых фреймворков.
https://frontendmasters.com/blog/flexbox-masonry-layout-explained-with-math/
❤10👍3🔥1
Event Loop для начинающих — разбор без страха
JavaScript выполняется в одном потоке, но браузер/окружение берут на себя асинхронщину: таймеры, клики, сети и Promise. Разберём, как Event Loop управляет очередями задач и микрозадачами, почему стек вызовов работает по принципу LIFO и как микрозадачи могут блокировать рендер.
https://habr.com/ru/articles/1011258
JavaScript выполняется в одном потоке, но браузер/окружение берут на себя асинхронщину: таймеры, клики, сети и Promise. Разберём, как Event Loop управляет очередями задач и микрозадачами, почему стек вызовов работает по принципу LIFO и как микрозадачи могут блокировать рендер.
https://habr.com/ru/articles/1011258
🔥5👍3❤2
Собрали open-source SVG-библиотеку брендов с 4 700+ иконками
Единый источник SVG-логотипов и облачных диаграмм: поиск, версии, CDN/CLI/API и типизированные пакеты для React/Vue/Svelte. Импортируйте только нужные иконки, используйте варианты (color/mono/light/dark/wordmark) и интегрируйте в приложения без боли.
https://github.com/glincker/thesvg
Единый источник SVG-логотипов и облачных диаграмм: поиск, версии, CDN/CLI/API и типизированные пакеты для React/Vue/Svelte. Импортируйте только нужные иконки, используйте варианты (color/mono/light/dark/wordmark) и интегрируйте в приложения без боли.
https://github.com/glincker/thesvg
❤14👍4🔥2🥴1
Гибридный поиск: объединяем semantic и lexical, чтобы находить точные вещи и смысл одновременно
Использование одной семантики ведет к промахам по точным названиям, API и ключевым терминам . Решение: параллельный запуск lexical и semantic поиска.
https://kentcdodds.com/blog/implementing-hybrid-semantic-lexical-search
Использование одной семантики ведет к промахам по точным названиям, API и ключевым терминам . Решение: параллельный запуск lexical и semantic поиска.
https://kentcdodds.com/blog/implementing-hybrid-semantic-lexical-search
Kentcdodds
Implementing Hybrid Semantic + Lexical Search
Semantic search alone wasn't good enough. Here's how I improved search on kentcdodds.com through three rounds of iteration with Cursor and GPT-5.4, each time learning something that the previous design missed.
👍4❤3
!important #7: random(), folded corners, anchored container queries
CSS-дайджест с практичными фишками: генерация значений через
https://css-tricks.com/whats-important-7/
CSS-дайджест с практичными фишками: генерация значений через
random()/random-item(), «сложенные» углы через clip-path, фоновые эффекты backdrop-filter, стабильные числа font-variant-numeric: tabular-numshttps://css-tricks.com/whats-important-7/
👍5❤2⚡2
Прекратите войну с валидацией форм: JSON Schema как единый источник правды
Дублирование проверок между фронтендом и бэкендом ломает UX и порождает регрессии. Подход schema-driven переносит правила, сообщения и условия показа полей в одну JSON-схему: форма рендерится, валидирует и согласованно проверяется на сервере.
https://blog.logrocket.com/stop-fighting-schema-driven-form-validation/
Дублирование проверок между фронтендом и бэкендом ломает UX и порождает регрессии. Подход schema-driven переносит правила, сообщения и условия показа полей в одну JSON-схему: форма рендерится, валидирует и согласованно проверяется на сервере.
https://blog.logrocket.com/stop-fighting-schema-driven-form-validation/
👍8❤2👌2😁1🤯1🤮1
ESLint пора на пенсию: миграция на Oxlint для скорости и удобства
ESLint в больших репозиториях превращается в узкое горлышко: медленно прогоняет проверки и требует сложной настройки. Oxlint — быстрый линтер на Rust с большим числом правил по умолчанию и поддержкой type-aware linting, так что CI и локальная разработка ускоряются, а порог входа заметно снижается.
https://blog.logrocket.com/retire-eslint-migrate-oxlint/
ESLint в больших репозиториях превращается в узкое горлышко: медленно прогоняет проверки и требует сложной настройки. Oxlint — быстрый линтер на Rust с большим числом правил по умолчанию и поддержкой type-aware linting, так что CI и локальная разработка ускоряются, а порог входа заметно снижается.
https://blog.logrocket.com/retire-eslint-migrate-oxlint/
👍11👎1🔥1
Нативные JSON-модули наконец-то заработали по-настоящему
Теперь JSON можно импортировать как полноценные ES-модули:
Разбор происходит в runtime, включается стандартный кэш ESM и исчезают лишние трансформации/loader’ы — а сборщики становятся опциональными.
https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/
Теперь JSON можно импортировать как полноценные ES-модули:
import config from "./config.json" with { type: "json" }. Разбор происходит в runtime, включается стандартный кэш ESM и исчезают лишние трансформации/loader’ы — а сборщики становятся опциональными.
https://allthingssmitty.com/2026/03/16/native-json-modules-are-finally-real/
🔥4❤2
focusgroup в HTML: декларативная навигация стрелками без роувинг-tabindex
focusgroup — атрибут, который добавляет arrow-key навигацию для составных виджетов (toolbar, tablist, menu и т.д.) без ручной настройки tabindex. В браузере остаются только ваши прикладные состояния, а направление, и восстановление фокуса берёт на себя платформа.
https://developer.chrome.com/blog/focusgroup-rfc
focusgroup — атрибут, который добавляет arrow-key навигацию для составных виджетов (toolbar, tablist, menu и т.д.) без ручной настройки tabindex. В браузере остаются только ваши прикладные состояния, а направление, и восстановление фокуса берёт на себя платформа.
https://developer.chrome.com/blog/focusgroup-rfc
🔥4❤1