Фронте́нд под LLM сыпется быстрее бэкенда — Автор потрогал пет-проект двумя месяцами vibe coding с LLM-агентом: пять разных кнопок, четыре спиннера, модалка выдает другой баланс, чем шапка показывает. Разбирает почему JSX — идеальная бурда для генерации кодом — обучающая выборка миксует три поколения React, разметка/логика/состояние живут в одном файле. Как Feature-Sliced Design (три слоя + dependency-cruiser) спас положение — и какие ограничения остаются.
Закодировав инварианты состояния как тип, а не флаг — Четыре булевых флага isLoading/isLoaded/hasError/isSuccess дают 16 комбинаций — валидных лишь шесть. Остальные компилятор пропустит, но бизнес-логика упадёт. Флоуэр предлагает заменить это на discriminated union: один литеральный status как source of truth, switch exhaustive по всем веткам. Добавишь новый вариант — каждый обработчик становится compile-time error вместо silent runtime bug.
CSS
Динамический макет с плавной перестановкой карточек — display: grid теперь поддерживает masonry через grid-lanes, а если добавить якорное позиционирование (inset: anchor(inside)), можно анимировать переходы между раскладами — перемещаются внутренние слои карточек, а не сами элементы. Чистый CSS, ни строчки JavaScript.
SVG-фильтры для восстановления исторических типографских эффектов — Кармен Ансио демонстрирует, как примитивы feMorphology, feOffset, feSpecularLighting и feDisplacementMap создают золочёные буквицы, хроматические сдвиги, неоновое свечение и объёмный рельеф букв. С заметками про sRGB и производительность рендера.