Навыки для AI кодинг агентов: как вернуть спецификации, тесты и review в процесс
AI coding agents часто идут по кратчайшему пути к готовому коду и пропускают спецификации, тесты и проверку, из за чего качество падает на масштабе. Проект предлагает оформлять best practices не как эссе, а как пошаговые skills с чекпоинтами и критериями выхода, чтобы агент следовал жизненному циклу разработки как у зрелой инженерной команды.
https://addyosmani.com/blog/agent-skills/
AI coding agents часто идут по кратчайшему пути к готовому коду и пропускают спецификации, тесты и проверку, из за чего качество падает на масштабе. Проект предлагает оформлять best practices не как эссе, а как пошаговые skills с чекпоинтами и критериями выхода, чтобы агент следовал жизненному циклу разработки как у зрелой инженерной команды.
https://addyosmani.com/blog/agent-skills/
❤6🔥4
Считаем скидку и показываем итоговую цену прямо в CSS
Можно хранить базовую цену и процент скидки в data-* атрибутах, а затем через attr() и CSS math вычислять итоговую стоимость и сразу рисовать зачеркнутую цену плюс новую. Для прода в крупных компаниях так себе вариант, но для своего магазина можно попробовать 😊
https://css-tricks.com/computing-and-displaying-discounted-prices-in-css/
Можно хранить базовую цену и процент скидки в data-* атрибутах, а затем через attr() и CSS math вычислять итоговую стоимость и сразу рисовать зачеркнутую цену плюс новую. Для прода в крупных компаниях так себе вариант, но для своего магазина можно попробовать 😊
https://css-tricks.com/computing-and-displaying-discounted-prices-in-css/
👍8🤡6🔥2😁1
Граница между CSS-состояниями и событиями JavaScript сдвигается
Псевдоклассы вроде
Отдельный вектор — будущий event-trigger, который должен запускать анимации по событиям (например, по click) прямо в CSS, делая анимации более декларативными.
https://css-tricks.com/css-states-and-javascript-events/
Псевдоклассы вроде
:hover, :active, :focus-visible, :focus-within, :checked, :valid/:invalid позволяют описывать реакцию интерфейса без обработчиков в JS.Отдельный вектор — будущий event-trigger, который должен запускать анимации по событиям (например, по click) прямо в CSS, делая анимации более декларативными.
https://css-tricks.com/css-states-and-javascript-events/
❤5🔥2🤔1
Как запустить GTA San Andreas на своём движке в браузере
История о том, как с нуля собрали браузерный рантайм OpenSA, который умеет читать форматы RenderWare и запускать игру через вашу легальную копию, без распространения ассетов. Ключевые фишки — in-game map debugger/редактор, адаптерная архитектура, физика и управление через Rapier, а также оптимизация загрузки чанками с CDN и VFS.
Сложно, сложно, оч сложно)
https://habr.com/ru/articles/1051828/
История о том, как с нуля собрали браузерный рантайм OpenSA, который умеет читать форматы RenderWare и запускать игру через вашу легальную копию, без распространения ассетов. Ключевые фишки — in-game map debugger/редактор, адаптерная архитектура, физика и управление через Rapier, а также оптимизация загрузки чанками с CDN и VFS.
Сложно, сложно, оч сложно)
https://habr.com/ru/articles/1051828/
👍14😁3🔥1
Минимальная одностраничная фотогалерея для Astro
Адаптивная сетка собирается чистым CSS без JS-логики позиционирования и перерасчётов. Для просмотра предусмотрен lightbox на Fancybox: полноэкранный режим с свайпом, перетаскиванием, pinch-to-zoom и настраиваемой панелью. Картинки оптимизируются через Astro
https://github.com/kydecker/astro-photo-grid
Адаптивная сетка собирается чистым CSS без JS-логики позиционирования и перерасчётов. Для просмотра предусмотрен lightbox на Fancybox: полноэкранный режим с свайпом, перетаскиванием, pinch-to-zoom и настраиваемой панелью. Картинки оптимизируются через Astro
<Image />, а элементы за пределами первого экрана подгружаются лениво.https://github.com/kydecker/astro-photo-grid
❤8🔥4⚡1🙏1
Компиляция Zod-схем в оптимизированные валидаторы на этапе сборки
Сохраняете обычные Zod-схемы и получаете ускорение валидации без правок в коде:
https://github.com/gajus/zod-compiler
Сохраняете обычные Zod-схемы и получаете ускорение валидации без правок в коде:
parse/safeParse/parseAsync остаются теми же, плюс появляется быстрый guard .is(). Поддерживаются разные режимы подключения: автоматическая компиляция всех экспортов или явная, а также CLI-генерация файлов и режим compacthttps://github.com/gajus/zod-compiler
👍6❤3
Микрофронтенды: стабильная интеграция нескольких SPA-приложений, часть 1
Разбираемся, как собрать платформу и подключать независимые SPA-модули в единый UI без потери скорости релизов, но с контролем совместимости. Рассматриваются варианты оркестрации и загрузки: от SystemJS-«разрезанного монолита» и single-spa до модульной федерации и айфреймов, с ключевым выводом про риск синхронных релизов и несовпадение версий библиотек
https://habr.com/ru/companies/infowatch/articles/1053506/
Разбираемся, как собрать платформу и подключать независимые SPA-модули в единый UI без потери скорости релизов, но с контролем совместимости. Рассматриваются варианты оркестрации и загрузки: от SystemJS-«разрезанного монолита» и single-spa до модульной федерации и айфреймов, с ключевым выводом про риск синхронных релизов и несовпадение версий библиотек
https://habr.com/ru/companies/infowatch/articles/1053506/
👍5😴2🔥1🙏1
FM-синтез звука в браузере. Часть 1
Рассмотрим возможности браузеров по синтезу звука. Разберём основы и в качестве практического применения сделаем эмулятор синтезатора Yamaha DX7.
Сложно, сложно
https://habr.com/ru/articles/1052640
Рассмотрим возможности браузеров по синтезу звука. Разберём основы и в качестве практического применения сделаем эмулятор синтезатора Yamaha DX7.
Сложно, сложно
https://habr.com/ru/articles/1052640
👍5❤1🔥1
Rattribute.js — генерация адаптивных атрибутов для любых HTML-элементов.
Лёгкая библиотека без зависимостей, которая на основе брейкпоинтов автоматически проставляет нужные атрибуты (по умолчанию размеры как у Bootstrap: xs–xxl и доп. xxxl, плюс можно задавать свои). Поддерживаются переключение адаптивности, авто-подхват элементов при добавлении в DOM сторонними библиотеками и исключение элементов через
https://github.com/williamtroup/Rattribute.js
Лёгкая библиотека без зависимостей, которая на основе брейкпоинтов автоматически проставляет нужные атрибуты (по умолчанию размеры как у Bootstrap: xs–xxl и доп. xxxl, плюс можно задавать свои). Поддерживаются переключение адаптивности, авто-подхват элементов при добавлении в DOM сторонними библиотеками и исключение элементов через
data-rattribute-js-ignorehttps://github.com/williamtroup/Rattribute.js
👍4❤3🤔1
Путеводитель по grid-lanes: как строить сложные раскладки на чистом CSS.
Это подходит для progressive enhancement: начинайте с базовой разметки и улучшайте визуальную и навигационную часть средствами HTML/CSS.
https://master.dev/blog/the-field-guide-to-grid-lanes/
display: grid-lanes позволяет делать masonry с произвольной шириной колонок и при этом сохранять корректный порядок табуляции — без JS.Это подходит для progressive enhancement: начинайте с базовой разметки и улучшайте визуальную и навигационную часть средствами HTML/CSS.
https://master.dev/blog/the-field-guide-to-grid-lanes/
❤8👍4
HTTP получил метод QUERY: зачем понадобился безопасный запрос с телом
В HTTP стандартизировали
https://habr.com/ru/articles/1055310/
В HTTP стандартизировали
QUERY — безопасный и идемпотентный метод чтения, где сложные параметры передаются в теле запроса, а не в URI.https://habr.com/ru/articles/1055310/
👍18❤11
Проверка вакансий и рекрутеров на мошенничество с помощью OSINT для Claude.
JobVerify помогает за секунды отличать реальные предложения от скама: вы вставляете сообщение рекрутера, название компании, ссылку на вакансию или email, а инструмент собирает публичные сигналы и выдает понятный вердикт. Он сверяет регистрацию компании, домены и возраст сайтов, подозрительные паттерны (предоплата, “задачи”, крипта, перевод в Telegram/WhatsApp), проверяет ссылки, почту/телефон и даже историю через Internet Archive — без API-ключей и без хранения ваших данных.
https://github.com/yessGlory17/job-verify
JobVerify помогает за секунды отличать реальные предложения от скама: вы вставляете сообщение рекрутера, название компании, ссылку на вакансию или email, а инструмент собирает публичные сигналы и выдает понятный вердикт. Он сверяет регистрацию компании, домены и возраст сайтов, подозрительные паттерны (предоплата, “задачи”, крипта, перевод в Telegram/WhatsApp), проверяет ссылки, почту/телефон и даже историю через Internet Archive — без API-ключей и без хранения ваших данных.
https://github.com/yessGlory17/job-verify
❤15👍2💩1
Как протестировать более 40 UI-компонентов за минуту: ускоряем скриншот-тесты
Как вместо сапёра с визуальными багами внедрили визуальные регрессионные тесты на связке Storybook + Playwright + Jest, которые прогоняют десятки сценариев и сравнивают скриншоты пиксель-в-пиксель. Чтобы стабилизировать диффы, в тестах отключают загрузку реальных картинок в галереях, делают снимок строго элемента
https://habr.com/ru/companies/domclick/articles/1050424
Как вместо сапёра с визуальными багами внедрили визуальные регрессионные тесты на связке Storybook + Playwright + Jest, которые прогоняют десятки сценариев и сравнивают скриншоты пиксель-в-пиксель. Чтобы стабилизировать диффы, в тестах отключают загрузку реальных картинок в галереях, делают снимок строго элемента
[data-test="product-snippet"], и задают допуски к микро-шуму рендеринга (threshold/blur/failureThreshold).https://habr.com/ru/companies/domclick/articles/1050424
👍6❤3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Редактор дизайна для Claude Code и Cursor: «Figma Comments» прямо в браузере
Drawbridge — это Chrome-расширение, которое позволяет кликать по интерфейсу в запущенном приложении, оставлять Figma-style комментарии и заметки с прямоугольниками, а затем превращать их в локальные task-файлы для AI-инструментов.
https://github.com/breschio/drawbridge
Drawbridge — это Chrome-расширение, которое позволяет кликать по интерфейсу в запущенном приложении, оставлять Figma-style комментарии и заметки с прямоугольниками, а затем превращать их в локальные task-файлы для AI-инструментов.
https://github.com/breschio/drawbridge
❤6🔥4
Декорирование gap в CSS: играем линиями между элементами
Gap Decorations позволяет украшать промежутки между элементами в
https://master.dev/blog/lets-play-with-gap-decorations/
Gap Decorations позволяет украшать промежутки между элементами в
grid, flex и multi-column, используя gap + rule. Псевдоэлементы внутри контейнера превращают gap в полотно для подчеркиваний, горизонтальных/вертикальных разделителей и даже паттернов с разной толщиной/цветом через rule-width, rule-color и repeat().https://master.dev/blog/lets-play-with-gap-decorations/
🔥8❤1
Нужен ли здесь `useEffect`? 12 сценариев из React-код-ревью — от производного состояния до React 19.2
На code review я регулярно встречаю один и тот же вопрос, только записанный разным кодом: «Как правильно синхронизировать эти значения через useEffect?» Со временем я понял, что чаще полезнее спросить иначе: а эффект здесь вообще нужен? В статье разбираю 12 типичных сценариев из React-код-ревью.
https://habr.com/ru/articles/1055486/
На code review я регулярно встречаю один и тот же вопрос, только записанный разным кодом: «Как правильно синхронизировать эти значения через useEffect?» Со временем я понял, что чаще полезнее спросить иначе: а эффект здесь вообще нужен? В статье разбираю 12 типичных сценариев из React-код-ревью.
https://habr.com/ru/articles/1055486/
❤10🤔2😁1
Построение скролл-зависимой 3D-галереи по пути камеры из Blender с Three.js и GSAP
Рисуем кривую в Blender, экспортируем точки в JSON с учётом различий координат, а затем в Three.js восстанавливаем путь через
Демо | Github
https://tympanus.net/codrops/2026/07/07/building-a-scroll-driven-3d-gallery-using-a-blender-camera-path-with-three-js-and-gsap/
Рисуем кривую в Blender, экспортируем точки в JSON с учётом различий координат, а затем в Three.js восстанавливаем путь через
THREE.CatmullRomCurve3 и раскладываем вдоль него сотни plane-картинок с рандомными смещениями.Демо | Github
https://tympanus.net/codrops/2026/07/07/building-a-scroll-driven-3d-gallery-using-a-blender-camera-path-with-three-js-and-gsap/
❤11❤🔥4👍1
Стили в CSS с учетом границ
Функция
https://master.dev/blog/boundary-aware-styling-in-css/
Функция
view() позволяет привязывать прогресс анимации к видимости элемента в ближайшем scroll-контейнере: цвет/размер/поворот меняются, когда объект приближается к краям или уходит за них. На практике так раскрашивают элементы в сетке по горизонтальному положению, меняют тон при перетаскивании и подсвечивают ползунки по мере движения.https://master.dev/blog/boundary-aware-styling-in-css/
🔥6❤1👍1
Как сделать интерактивный элемент невидимым, но доступным
Используйте
https://master.dev/blog/how-to-make-an-interactive-element-invisible-but-accessible/
Используйте
hidden="until-found" для скрытия контента с сохранением доступности (поиск по странице и навигация по фрагментам работают, элемент остаётся фокусируемым), а затем компенсируйте отсутствие ховера/видимости через contain-intrinsic-size: auto none, чтобы не было layout shift.https://master.dev/blog/how-to-make-an-interactive-element-invisible-but-accessible/
❤10⚡4🔥1
Как мы во фронтенд-команде ПСБ прокачали релизный цикл npm-пакетов.
Внутренние библиотеки и микрофронты собрали в пакетный процесс с SemVer, обязательным migration guide для breaking changes и публикацией через CI, чтобы исключить разъезд окружений и человеческий фактор. Более подробно - в статье.
https://habr.com/ru/companies/psb/articles/1055888/
Внутренние библиотеки и микрофронты собрали в пакетный процесс с SemVer, обязательным migration guide для breaking changes и публикацией через CI, чтобы исключить разъезд окружений и человеческий фактор. Более подробно - в статье.
https://habr.com/ru/companies/psb/articles/1055888/
🔥5💩3👍2❤1🥱1