Коллекция лёгких UI-эффектов: плавное появление блоков и текста, аккуратный hover, зум изображений, слайдер «до/после» и плавный скролл — всё на CSS-transitions, без тяжёлых библиотек.
opacity + translateY + blur — более мягкий вариант фейда, который выглядит дороже простого fade-in.Лёгкий подъём, тень и микроповорот иконки при наведении — без резких скачков.
transform и box-shadow — свойства, не вызывающие пересчёт layout (reflow), поэтому эффект не "тормозит" даже на слабых устройствах.Блоки появляются при скролле через IntersectionObserver — без нагрузки на CPU.
Тонкий подъём, тень и смена цвета вместо резкого «мигания».
Лёгкое масштабирование 1.0 → 1.08 с контролем overflow в контейнере.
Бургер-меню с плавным выездом и затемнением фона.
При наведении изображение немного увеличивается, а подпись плавно появляется снизу.
overflow:hidden, а само изображение масштабируется через transform:scale(1.08) — масштаб умеренный, чтобы не "вылезать" за пределы карточки и не выглядеть дёшево.Тяните за кружок или ползунок ниже, чтобы сравнить два изображения.
clip-path: inset(), позиция границы синхронизирована и с drag (pointer events), и с ползунком <input type="range"> — удобно и на десктопе, и на мобильном.Карточка слегка наклоняется в направлении мыши, создавая ощущение объёма без лишнего "эффекта присутствия".
transform: rotateX/rotateY. Расчёт лёгкий, но на реальных проектах рекомендуется вызывать через requestAnimationFrame для максимальной плавности.Наведите и двигайте курсор — наклон следует за позицией.
Эффект мгновенно возвращается в нейтральное положение.
Подходит для preview-карточек продуктов или портфолио.
Числа плавно "накручиваются" от нуля до финального значения, когда блок попадает в зону видимости.
IntersectionObserver запускает requestAnimationFrame-цикл, который интерполирует число по easing-функции (easeOutCubic) — движение замедляется к концу, что выглядит естественнее линейного счёта.Вопросы-ответы, где высота блока анимируется вместо мгновенного show/hide.
max-height анимируется через transition, а реальное значение высоты берётся из scrollHeight элемента в момент открытия — это позволяет контенту разной длины корректно раскрываться.prefers-reduced-motion — пользователям, отключившим анимации в системных настройках, все эффекты показываются мгновенно, без движения.Контент под активной вкладкой меняется с лёгким фейдом и сдвигом, а не скачком.
scaleX на псевдоэлементе ::after, а содержимое панели — через короткий opacity + translateY при каждом переключении.Полоски прогресса "заполняются" плавно, когда блок появляется в вьюпорте — хорошо для навыков, статистики или загрузок.
0%, а финальное значение берётся из data-percent и устанавливается только после срабатывания IntersectionObserver — это и запускает CSS transition по width.CTA-кнопка с аккуратной пульсирующей тенью — привлекает внимание, но не раздражает.
box-shadow через keyframes, который расширяется и исчезает — при hover пульсация приостанавливается (animation-play-state:paused), чтобы не мешать чтению текста кнопки.