css.card {
transition: opacity .3s ease;
transition-delay: calc(sibling-index() * 100ms);
@starting-style {
opacity: 0;
}
}Каждый элемент знает свою позицию среди соседей → автоматический stagger.
— появление списков карточек
— меню, таймлайны
— простые sequence-анимации
— старые браузеры
— сложная логика (условия, пересчёты)
⚠️ Experimental / syntax может измениться
Chrome 130+, Safari 18+
Firefox — в планах
#readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🥰2❤1
Про замыкания слышали все. Но чаще всего их объясняют упрощённо — так, что потом возникают ошибки в коде и вопросы на собеседованиях.
В карточках выше — что такое замыкание, где оно реально используется и как влияет на память.
— современные JS-движки (V8, SpiderMonkey, JavaScriptCore) пытаются сохранять в памяти только те значения, к которым есть доступ
— но спецификация ECMAScript этого не гарантирует
— поэтому в сложных случаях замыкание может удерживать больше данных, чем ожидается
#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2🥰2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
🤔4🥰2😁2
В новом React коде классы считаются легаси-подходом. Они не запрещены, но в новых компонентах и при плановом рефакторинге рекомендуется использовать функциональные компоненты с хуками.
— меньше шаблонного кода (constructor, bind)
— проще читать и поддерживать
— корректно работает с современными фичами React
#hot_fix
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥3🥱3🥰1
JavaScript Set Operations.jpeg
125.6 KB
union, intersection, difference, isSubsetOf и другие методы уже давно в языке, но до сих пор используются редко. Чаще по привычке — массивы, фильтры и ручная логика.
Если работаете с наборами данных — Set должен быть базовым инструментом.
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤2🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
В 144-й версии DevTools без революций, но с точечными улучшениями, которые реально упрощают отладку:
Network request blocking переименовали и прокачали — теперь можно троттлить отдельные запросы, а не весь Network целиком. Удобно для edge-кейсов и нестабильных API.
Появился auto connection: можно подключиться к уже открытому браузерному сеансу и продолжить отладку с того же места. Меньше ресетов — быстрее дебаг.
@font-face и @font-feature-values теперь редактируются прямо в Styles. Без прыжков между панелями.В Elements теперь видно adopted stylesheets под shadow roots и document root. Полезно, если стили «не применяются и непонятно почему».
#release_digest
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2🥰2
⚠️ sort() ломает state (тихий баг)
На вид — нормально.
На деле:
ℹ️ Почему это происходит:
sort() — in-place операция. Она меняет существующий массив, а не создаёт новый.
Как делать безопасно:
🟣 Современный способ (ES2023)
🟣 toSorted() поддерживается:
🟣 Для старых браузеров работает везде:
🟣 Если нужен deep copy
🐸 Библиотека фронтендера
#hotfix #js
const sorted = data.sort(byDate);
На вид — нормально.
На деле:
• sort() мутирует data
• ссылка на массив не меняется
• React / Zustand / Redux не видят изменений
• UI начинает вести себя случайно
sort() — in-place операция. Она меняет существующий массив, а не создаёт новый.
Как делать безопасно:
const sorted = data.toSorted(byDate);
Chrome 110+, Safari 16+, Firefox 115+
const sorted = [...data].sort(byDate);
const sorted = structuredClone(data).sort(byDate);
#hotfix #js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍4🥰2🥱1
Chrome 144 продолжает аккуратно прокачивать WebGPU: меньше костылей, больше прямого контроля над GPU.
Появился доступ к ID сабгруппы и их количеству внутри workgroup.
Раньше это приходилось восстанавливать через атомики — теперь есть нативные built-in. Основа для более эффективных compute-шейдеров и тонкой работы с памятью.
Uniform-буферы больше не требуют 16-байтных паддингов.
Можно шарить одинаковые структуры между uniform и storage buffers без лишних полей и
@align.Начался постепенный rollout: сначала Intel Gen12+, дальше планируют AMD и NVIDIA.
Под капотом — WebGPU через Vulkan, Chromium остаётся на OpenGL.
Оптимизации дали до 2× прироста производительности при копировании данных. Важно для стриминга и real-time графики.
Вышла alpha Kotlin-биндингов WebGPU через Jetpack (androidx.webgpu).
Современный GPU-API без боли OpenGL и сложности Vulkan.
#release_digest
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👾3
Roadmap: ИИ-агенты для Frontend-разработчика
Будущее интерфейсов — это
Что нужно выучить:
🔸 основы взаимодействия с
🔸 проектирование интерфейсов для управления автономными агентами;
🔸 работа с фреймворками для создания ИИ-цепочек;
🔸 визуализация процесса мышления ИИ в реальном времени.
На курсе «Разработка ИИ-агентов» вы научитесь создавать не просто формы, а интеллектуальных помощников.
👉 Начать обучение
🔥 Акция «3 в 1»: купите курс до 19 января и получите ещё два курса в подарок!
Будущее интерфейсов — это
Agentic UI, где ИИ понимает намерения пользователя и сам взаимодействует с системой.Что нужно выучить:
🔸 основы взаимодействия с
LLM на клиенте и сервере;🔸 проектирование интерфейсов для управления автономными агентами;
🔸 работа с фреймворками для создания ИИ-цепочек;
🔸 визуализация процесса мышления ИИ в реальном времени.
На курсе «Разработка ИИ-агентов» вы научитесь создавать не просто формы, а интеллектуальных помощников.
👉 Начать обучение
🔥 Акция «3 в 1»: купите курс до 19 января и получите ещё два курса в подарок!
😁6🤩3❤2🥱1
За последние месяцы я целенаправленно выносил код из Next.js. Не потому что он плохой — а потому что его сложность перестала оправдываться.
Next.js даёт быстрый старт и мощные возможности из коробки. Он отлично подходит для сложных fullstack-сценариев и больших систем. Но дальше начинается проблема.
App Router, магия файлов, директивы, экспериментальные флаги.
Трудно понять:
• где заканчивается React и начинается Next.js
• по какому пути реально идёт код
• почему поведение меняется после «невинного» экспорта
Без постоянного чтения документации работать становится сложно.
Кэш, кэш, ещё один кэш. Поведение меняется — причины неочевидны. Стек-трейсы плохо отражают реальность, а абстракций больше, чем точек контроля.
Долгие сборки, медленные перезагрузки, ощущение «тяжёлого» окружения. После этого возвращаться к Vite — как снять рюкзак с камнями.
Что оказалось проще и честнее:
TanStack + Vite дали ровно то, что я ожидал от современного фронтенд-стека:
• понятный флоу данных и роутинга
• минимум магии
• typesafe-роутинг и работа с данными «в лоб»
• быстрый dev-сервер
• отладка без шаманства
Ты видишь, что происходит, и можешь это контролировать.
Для моих задач и команды TanStack + Vite оказались просто спокойнее и быстрее в разработке.
Если Next.js работает у вас — отлично. Для меня — нет.
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🥰2
Большинство дизайн-систем ломаются в одном месте — при смене базового цвета. Есть foundation, есть тени, светлые версии, акценты. Меняете один цвет — пересчитываете всё руками.
CSS Relative Colour в пространстве OKLCH решает эту проблему.
Цвет — это не список значений, а формула.
oklch(from <color> <L> <C> <H>)
Берём базовый цвет и вычисляем все остальные относительно него.
Базовые правила:
• Lightness — двигаем (add / subtract)
• Chroma — масштабируем (multiply)
• Hue — вращаем (градусы)
— одна точка управления цветом
— автоматический пересчёт всей палитры
— устойчивые темы и состояния UI
— смена настроения без пересборки
Палитра перестаёт быть набором оттенков и становится системой.
#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Нужно показать фронт с localhost — без деплоя и с HTTPS? Делается одной командой:
brew install cloudflared
cloudflared tunnel --url http://localhost:3000
Что получаете:
— публичный HTTPS-адрес
— работает для OAuth, cookies и mobile-тестов
— без регистрации и бесплатно
Удобная альтернатива ngrok для демо и локальной разработки фронта
#stack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14🥰4❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16🥰3
lsof -i :3000
Показывает какой процесс держит порт 3000: команду и PID.
— dev-сервер не стартует
— ошибка EADDRINUSE
— порт «занят», но непонятно кем
node 48231 user TCP *:3000 (LISTEN)
node — процесс
48231 — PID
LISTEN — порт реально используется
kill 48231
#readme
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰5👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Вместо скучного резюме — интерактивная игра, где посетитель управляет персонажем, который ходит по виртуальному дому и изучает ваши проекты.
— Персонаж перемещается по комнатам
— Подходит к объектам (компьютер, книжная полка, постеры)
— При взаимодействии появляется информация: навыки, описание проектов, ссылки на GitHub
Используется стек: JavaScript, Kaboom.js, Vite, HTML/CSS. Автор разбирает: настройку проекта, карту, коллизии, анимации, диалоги.
#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6❤4🥰2