Генератор CSS-загрузчиков

Далее

Спиннер сообщает пользователю, что что-то происходит. Этот генератор создаёт один круговой спиннер на CSS: задайте диаметр, толщину рамки, акцентный цвет и скорость вращения, посмотрите живой предпросмотр и скопируйте код. Всё на чистом CSS, без SVG, без JavaScript и без внешних библиотек.

Как пользоваться генератором

  1. 1

    Задайте размер

    Диаметр спиннера в пикселях. Диапазон 40-80 px подходит для большинства кнопок и областей контента.

  2. 2

    Задайте толщину рамки

    Кольцо, это рамка, нарисованная по кругу. Чем толще рамка, тем заметнее дуга; при диаметре 60 px хорошо смотрится 4-8 px.

  3. 3

    Выберите цвет

    Акцентный цвет вращающейся дуги. Остальная часть кольца остаётся светло-серой, чтобы дуга выделялась.

  4. 4

    Задайте скорость и скопируйте CSS

    Время одного полного оборота в секундах. Около 1 секунды, обычный оптимум: меньше 500 мс выглядит суетливо, больше 2 секунд вяло.

Как устроен сгенерированный CSS

.loader {
  width: 60px;
  height: 60px;
  border: 6px solid #eee;
  border-top-color: #10b981;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

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

Спиннер, это круг, нарисованный толстой рамкой. Свойство border-top-color окрашивает только верхнюю часть кольца акцентным цветом, поэтому кольцо читается как дуга, а правило @keyframes spin вращает её вокруг центра. Вращение через transform: rotate() остаётся лёгким, потому что браузер двигает элемент на композиторе, а не перерисовывает его кадр за кадром.

Чтобы показать спиннер на странице, добавьте один элемент и подключите CSS:

<div class="loader" role="status" aria-label="Загрузка"></div>

Позаботьтесь о доступности

  • Добавьте role="status", чтобы программы чтения с экрана озвучивали спиннер.
  • Укажите aria-label с текстом состояния, например «Загрузка».
  • Не прячьте контент за спиннером дольше нескольких секунд без запасного варианта по тайм-ауту.
  • Уважайте prefers-reduced-motion. Тем, кто отключил анимации, вместо вращения покажите простое затухание или статичный текст «Загрузка…»:
@media (prefers-reduced-motion: reduce) {
  .loader { animation: none; background: currentColor; opacity: .4; }
}

Когда использовать спиннер, а когда оптимистичный интерфейс

  • Ответ быстрее 100 мс: спиннер не нужен; глаз почти не замечает задержку.
  • 100 мс – 1 с: ненавязчивый спиннер (маленькое кольцо, текст кнопки «Загрузка…») предотвращает двойные клики.
  • 1 с – 10 с: заметный спиннер, в идеале с прогрессом, если его можно измерить.
  • > 10 с: это уже не проблема спиннера; выясните, что тормозит, и исправьте.

При отправке форм и нажатиях на кнопки спиннер внутри кнопки обычно лучше, чем оверлей на весь экран.

Часто задаваемые вопросы

CSS подходит для простых спиннеров из одного элемента (приём с вращением четырёх границ). SVG нужен, когда требуется сужающийся хвост, несколько анимаций stroke-dasharray или залитые сегменты, похожие на мазки кистью. CSS меньше и проще, SVG гибче.

Скорее всего, вы вращаете крупный элемент или анимируете некомпозируемое свойство. Держите спиннер небольшим, используйте transform: rotate() (а не top/margin) и не запускайте его, пока идут другие тяжёлые анимации.

Почти всегда по часовой. Вращение против часовой стрелки ощущается едва уловимо неправильным, потому что большинство реальных подсказок о вращении (часы, ветряные мельницы) идут по часовой стрелке. Следуйте этому соглашению, если у вас нет особой причины поступить иначе.

С помощью setTimeout(..., 300) в JavaScript, который добавляет класс загрузчика, и clearTimeout, если операция завершится раньше. Это убирает мерцание при быстрых ответах, не скрывая при этом реальные задержки.

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

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

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор цветовой палитры

Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.