Генератор спиннера для кнопки в CSS

Далее

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

Как сделать спиннер для кнопки

  1. 1

    Используйте маленький размер

    Введите 16 или 18 в поле Размер (пикселей), чтобы кольцо соответствовало высоте текста кнопки.

  2. 2

    Сделайте кольцо тонким

    Установите Толщину 2, чтобы дуга оставалась четкой при таком размере.

  3. 3

    Подберите цвет

    Выберите Цвет движущейся дуги, например белый для темной кнопки.

  4. 4

    Немного ускорьте и скопируйте

    Попробуйте 0,8 секунды на один оборот, затем скопируйте CSS.

Пример шаг за шагом

Допустим, у вас темно-синяя кнопка «Сохранить» с белым текстом. В генераторе введите размер 16, толщину 2, цвет #ffffff и скорость 0,8. Инструмент создаст:

.loader {
  width: 16px;
  height: 16px;
  border: 2px solid #eee;
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

Трек кольца имеет фиксированный светло-серый цвет, который хорошо виден на темной кнопке. Если нужен более тонкий трек, замените #eee на полупрозрачное значение, например rgba(255, 255, 255, 0.3), в скопированном CSS. Цвет дуги останется тем, который вы выбрали.

Размещение внутри кнопки

Поместите элемент спиннера перед подписью и сделайте кнопку строкой flex, чтобы они стояли в одну линию с промежутком:

<button class="save" type="submit" disabled>
  <span class="loader" role="status" aria-label="Сохранение"></span>
  Сохранение
</button>
.save {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

Добавляйте спиннер и состояние disabled только на время выполнения запроса. Удаляйте оба, когда он завершится. Отключение кнопки предотвращает повторную отправку, а спиннер объясняет причину.

Размер и толщина для кнопок

Размер текста кнопки Размер спиннера Толщина
14 px 14 px 2 px
16 px 16–18 px 2 px
18–20 px 20–24 px 3 px

Примечания

  • Генератор создает одно круглое кольцо. Он не создает кнопку, поэтому стили кнопки остаются вашими.
  • Кольцо толще четверти диаметра заполняется и выглядит как диск, поэтому при малых размерах используйте тонкие значения.
  • Оставляйте подпись рядом со спиннером. Спиннер без текста может быть непонятен части пользователей.

Избегайте скачков верстки

Если спиннер появляется и кнопка внезапно становится шире, верстка сдвигается, и область нажатия смещается. Помогут два простых способа. Задайте кнопке минимальную ширину, которой хватит и для спиннера, и для более длинной подписи. Или заранее зарезервируйте место под спиннер, показывая пустой плейсхолдер 16 px перед подписью. Поскольку сгенерированное кольцо имеет фиксированную ширину и высоту в пикселях, легко зарезервировать именно то место, которое ему нужно.

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

Примерно такой же высоты, как текст кнопки, обычно от 14 до 20 пикселей. Так кнопка не будет увеличиваться при появлении спиннера.

В большинстве форм да. Отключение предотвращает повторную отправку, а спиннер объясняет посетителю, почему ничего другого нельзя нажать.

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

Нет. Генератор выводит только CSS кольца. Оставлять, менять или скрывать подпись решает ваша разметка.

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

Генератор вымышленных телефонных номеров

Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.

Генератор конфигурации webpack

Создайте webpack.config.js для webpack 5 под чистый JavaScript, React или Vue: TypeScript, Babel, CSS или Sass, изображения, HtmlWebpackPlugin, dev-сервер и команда npm install.

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

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

Валидатор XSD

Проверьте XML-документ в соответствии с схемой XSD и выявите несоответствия между элементами и их типами, указав точные номера строк.

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

Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.

Конвертер размера файлов

Преобразуйте значения между байтами, КБ, МБ, ГБ, ТБ и двоичными единицами IEC (KiB, MiB, GiB, TiB), свободно сочетая десятичные и двоичные единицы.

Инструмент доступен на других языках

Руководства и сценарии использования