Just-in-Time: Следующее поколение Tailwind CSS
Tailwind CSS на GitHubTailwind CSS в Telegram

Анимация

Утилиты для анимации элементов с помощью CSS-анимации.

Справочник классов по умолчанию

Класс
Свойства
animate-noneanimation: none;
animate-spinanimation: spin 1s linear infinite; @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
animate-pinganimation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; @keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } }
animate-pulseanimation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }
animate-bounceanimation: bounce 1s infinite; @keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); } 50% { transform: translateY(0); animation-timing-function: cubic-bezier(0, 0, 0.2, 1); } }

Вращение

Добавьте утилиту animate-spin, чтобы добавить анимацию линейного вращения к таким элементам, как индикаторы загрузки.

<button type="button" class="bg-rose-600 ..." disabled>
  <svg class="animate-spin h-5 w-5 mr-3 ..." viewBox="0 0 24 24">
    <!-- ... -->
  </svg>
  Обработка
</button>

Пинг

Добавьте утилиту animate-ping, чтобы масштабировать элемент и исчезать, как пинг радара или рябь воды - полезно для таких вещей, как значки уведомлений.

<span class="flex h-3 w-3">
  <span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-purple-400 opacity-75"></span>
  <span class="relative inline-flex rounded-full h-3 w-3 bg-purple-500"></span>
</span>

Пульс

Добавьте утилиту animate-pulse, чтобы элемент плавно появлялся и исчезал - полезно для таких вещей, как загрузчики скелетов.

<div class="border border-blue-300 shadow rounded-md p-4 max-w-sm w-full mx-auto">
  <div class="animate-pulse flex space-x-4">
    <div class="rounded-full bg-blue-400 h-12 w-12"></div>
    <div class="flex-1 space-y-4 py-1">
      <div class="h-4 bg-blue-400 rounded w-3/4"></div>
      <div class="space-y-2">
        <div class="h-4 bg-blue-400 rounded"></div>
        <div class="h-4 bg-blue-400 rounded w-5/6"></div>
      </div>
    </div>
  </div>
</div>

Прыжок

Добавьте утилиту animate-bounce, чтобы элемент подпрыгивал вверх и вниз - полезно для таких вещей, как индикаторы “прокрутки вниз”.

<svg class="animate-bounce w-6 h-6 ...">
  <!-- ... -->
</svg>

Предпочтительно ограниченное движение

Вы можете условно применять анимацию и переходы, используя варианты motion-safe и motion-reduce:

<button type="button" class="bg-indigo-600 ..." disabled>
  <svg class="motion-safe:animate-spin h-5 w-5 mr-3 ..." viewBox="0 0 24 24">
    <!-- ... -->
  </svg>
  Обработка
</button>

Эти варианты не включены по умолчанию, но вы можете включить их в разделе variants вашего файла tailwind.config.js:

// tailwind.config.js
module.exports = {
  // ...
  variants: {
    animation: ['responsive', 'motion-safe', 'motion-reduce']
  }
}

Подробнее читайте в документации состояния вариантов.

Адаптивность

Чтобы изменить или отключить анимацию в определенной контрольной точке, добавьте префикс {screen}: к любой существующей утилите анимации. Например, используйте md:animate-none, чтобы применить утилиту animate-none только при средних размерах экрана и выше.

<div class="animate-spin md:animate-none ...">
  <!-- ... -->
</div>

Для получения дополнительной информации о функциях адаптивного дизайна Tailwind ознакомьтесь с документацией Адаптивного дизайна.

Кастомизация

Анимация по самой своей природе, как правило, очень привязана к проекту. Анимации, которые мы включаем по умолчанию, лучше всего рассматривать как полезные примеры, и вам предлагается настроить анимацию в соответствии с вашими потребностями.

По умолчанию Tailwind предоставляет утилиты для четырех различных примеров анимации, а также утилиту animate-none. Вы изменяете, добавляете или удаляете их, настраивая раздел animation в конфигурации вашей темы.

  // tailwind.config.js
  module.exports = {
    theme: {
      extend: {
        animation: {
+         'spin-slow': 'spin 3s linear infinite',
        }
      }
    }
  }

Чтобы добавить новую анимацию @keyframes, используйте раздел keyframes конфигурации вашей темы:

  // tailwind.config.js
  module.exports = {
    theme: {
      extend: {
        keyframes: {
+         wiggle: {
+           '0%, 100%': { transform: 'rotate(-3deg)' },
+           '50%': { transform: 'rotate(3deg)' },
+         }
        }
      }
    }
  }

Затем вы можете ссылаться на эти ключевые кадры по имени в разделе animation конфигурации вашей темы:

  // tailwind.config.js
  module.exports = {
    theme: {
      extend: {
        animation: {
+         wiggle: 'wiggle 1s ease-in-out infinite',
        }
      }
    }
  }

Дополнительные сведения о настройке темы по умолчанию смотрите в документации по настройке темы.

Варианты

По умолчанию, только responsive варианты создаются для утилит animation.

Вы можете контролировать, какие варианты создаются для утилит animation для изменения свойства animation в разделе variants Вашего файла конфигурации tailwind.config.js.

Например, эта конфигурация также будет генерировать варианты hover и focus:

  // tailwind.config.js
  module.exports = {
    variants: {
      extend: {
        // ...
+       animation: ['hover', 'focus'],
      }
    }
  }

Отключение

Если Вы не планируете использовать в своем проекте утилиты для изменения animation, Вы можете полностью отключить их, установив для animation свойство значение false в разделе corePlugins Вашего файла конфигурации:

  // tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+     animation: false,
    }
  }