CSS Бесплатно, без регистрации

Генератор SVG-анимации

Выберите фигуру, цвета и эффект — анимированный SVG играет в превью, а ниже вы получаете разметку inline SVG и CSS @keyframes, которые можно сразу вставить на страницу.

Результат
Готовый CSS-код
<svg viewBox="0 0 100 100" width="160" height="160" aria-hidden="true">
  <polygon
    class="shape"
    points="50,20.2 58.5,41.4 81.4,43 63.8,57.6 69.4,79.8 50,67.7 30.6,79.8 36.2,57.6 18.6,43 41.5,41.4"
    fill="#fbbf24"
    stroke="#b45309"
    stroke-width="4"
    stroke-linejoin="round"
    stroke-linecap="round"
  />
</svg>

.shape {
  transform-box: fill-box;
  transform-origin: 50% 55%;
  animation: spin 2s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .shape {
    animation: none;
  }
}

Как пользоваться

  1. Выберите фигуру — круг, квадрат, звезду, сердце или галочку — и задайте цвет заливки, цвет и толщину контура.
  2. Выберите эффект: вращение (rotate), пульсацию (scale), прыжок, затухание, рисование контура через stroke-dasharray или смену цвета (заливка и контур меняются местами).
  3. Настройте длительность, задержку, число повторов, функцию времени и направление. Кнопки «Пауза» и «Заново» в превью помогают рассмотреть анимацию.
  4. Нажмите «Копировать» и вставьте SVG в HTML, а CSS — в таблицу стилей. Блок prefers-reduced-motion уже включён.

Как это работает

Зачем анимировать SVG через CSS

Элементы inline SVG входят в DOM, поэтому их можно стилизовать и анимировать обычными свойствами animation и @keyframes — без JavaScript и библиотек. Это работает для <circle>, <rect>, <path> и других фигур, но не для SVG, подключённого через <img> или background-image: CSS страницы до такого файла не дотянется, анимацию нужно писать внутри самого SVG.

transform-box и transform-origin

В SVG точка трансформации по умолчанию — левый верхний угол всего рисунка (0 0), поэтому вращение раскачивает фигуру вокруг неверной точки. transform-box: fill-box привязывает начало координат к рамке самой фигуры, а transform-origin: center ставит его в середину. Пятиконечная звезда «тяжелее» снизу: её визуальный центр находится примерно на 55% высоты рамки, поэтому для неё генератор использует 50% 55%.

.shape {
  transform-box: fill-box;
  transform-origin: center;
}

Рисование контура: dasharray и dashoffset

stroke-dasharray задаёт длину штрихов и промежутков, stroke-dashoffset сдвигает этот узор. Если штрих равен длине всего контура, а смещение равно ей же, линия невидима; анимация смещения до 0 её «дорисовывает». Длина измеряется в пользовательских единицах: генератор берёт значение чуть больше длины контура, чтобы в конце не оставалась точка. Для своей фигуры длину можно получить через getTotalLength(). У залитых фигур генератор ещё плавно проявляет заливку через fill-opacity.

@keyframes draw {
  from { stroke-dashoffset: 177; }
  to { stroke-dashoffset: 0; }
}

Уважайте prefers-reduced-motion

Постоянное движение может вызывать дискомфорт у людей с вестибулярными нарушениями, поэтому в системах есть настройка «уменьшить движение». Генератор добавляет блок @media (prefers-reduced-motion: reduce), который отключает анимацию; базовые стили остаются полностью видимыми, так что ничего не пропадает. Декоративному SVG стоит добавить aria-hidden="true".

@media (prefers-reduced-motion: reduce) {
  .shape { animation: none; }
}

Частые вопросы

Можно ли анимировать SVG, подключённый через img?

Стилями страницы — нет: CSS страницы не видит содержимое <img>. Поместите <style> с @keyframes в сам SVG-файл или вставьте SVG прямо в HTML.

Почему SVG вращается вокруг неверной точки?

Потому что по умолчанию точка трансформации — левый верхний угол рисунка. Добавьте transform-box: fill-box и transform-origin: center.

Что лучше: CSS-анимация или SMIL (тег animate)?

CSS проще сочетать с остальными стилями, он реагирует на медиазапросы, в том числе на prefers-reduced-motion. SMIL живёт внутри SVG и тоже работает во всех современных браузерах, но используется реже.

Тяжела ли SVG-анимация для браузера?

Анимация transform и opacity обходится дёшево. Анимация атрибута d, фильтров или сотен элементов одновременно нагружает сильнее — проверяйте на слабых телефонах.

Эта тема в курсе HTML и CSS

Другие CSS-инструменты

Генератор CSS-градиента Linear, radial и conic градиенты: выберите цвета, угол и точки — скопируйте готовый код. Генератор и песочница Flexbox Пробуйте flex-свойства контейнера и элементов: направление, выравнивание, отступы и готовый CSS. Генератор CSS Grid Задайте колонки и строки, отступы и выравнивание — скопируйте готовый код сетки. Генератор CSS box-shadow Тени для блоков: смещение, размытие, цвет и слои — скопируйте готовый код box-shadow. Генератор cubic-bezier Перетащите точки кривой easing и скопируйте готовый CSS-код transition. Калькулятор специфичности CSS Впишите селекторы — увидите вес (a,b,c), цветной разбор и то, какое правило победит. Визуализатор блочной модели CSS Content, padding, border и margin в виде схемы как в DevTools — и готовый CSS-код. Генератор CSS transform Сдвиг, поворот, масштаб и наклон элемента с исходной позицией на превью — и готовый код. Калькулятор CSS clamp() Введите мин. и макс. размер шрифта и ширину экрана — получите готовый clamp() для плавной типографики. Проверка контраста цветов (WCAG) Проверьте контраст текста и фона по WCAG AA и AAA и исправьте неподходящую пару цветов. Генератор CSS clip-path Полигоны, срезанные углы, стрелки и круги: перетаскивайте точки на превью и копируйте готовый CSS. Генератор CSS Glassmorphism Эффект матового стекла: backdrop-filter blur, насыщенность, световая грань и готовый CSS. Генератор CSS border-radius (Blob) Органические формы и 8-значный border-radius: настраивайте горизонтальные и вертикальные радиусы. Визуализатор CSS Stacking Context и z-index Почему z-index: 9999 не работает? Наглядный 3D-разбор контекстов наложения, opacity, transform и isolation. Генератор CSS aspect-ratio и object-fit Конец сплющенным картинкам и прыжкам верстки (CLS): подбор пропорций aspect-ratio и точка фокуса object-fit. Студия CSS-фильтров Фотоэффекты без графических редакторов: blur, contrast, hue-rotate, sepia и трендовые Instagram-пресеты. Генератор OKLCH и палитр CSS Color 4 Идеально равномерная яркость для глаз и сочные цвета Display P3: подбор OKLCH, шкалы дизайн-систем и конвертация. Генератор CSS Scroll-driven Animations Анимации при скролле без JavaScript: свойства animation-timeline scroll() и view(), полоса чтения и плавное появление карточек. Генератор CSS Container Queries (@container) Конец привязке к экрану: компонент адаптируется к ширине своего родителя. Ресайз контейнера и правила @container вживую.
WhatsApp