Генератор CSS-кнопок

Текст кнопки

Текст кнопки

Введите надпись обычным текстом. Похожие на HTML символы экранируются в созданном фрагменте.

Создайте кнопку и проверьте её обычное состояние, наведение, фокус с клавиатуры, нажатие, отключённое состояние и загрузку. Настройте сплошной фон или градиент из двух цветов, границу, отступы, скругление, тень и цвета состояний. Генератор экранирует текст кнопки, хранит дизайн в браузере и создаёт семантический HTML с CSS в заданных безопасных пределах.

Как создать CSS-кнопку

  1. 1

    Введите текст

    Укажите обычный текст для видимой надписи. Символы, похожие на HTML, сохраняются как текст и не выполняются.

  2. 2

    Настройте основной вид

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

  3. 3

    Задайте состояния

    Настройте цвета и смещение для наведения, нажатия и фокуса. Правила для отключённого состояния и загрузки добавляются автоматически.

  4. 4

    Проверьте рекомендации

    Оцените минимальный контраст текста, контраст индикатора фокуса и обязательный минимальный размер области нажатия перед экспортом.

  5. 5

    Скопируйте или скачайте

    Скопируйте экранированные HTML и CSS вместе или скачайте автономный HTML-файл в UTF-8 для просмотра.

Что входит в сгенерированный код

В HTML используется настоящий элемент <button type="button">, а видимая надпись помещается внутрь span. CSS охватывает шесть полезных состояний:

  • Обычное для исходного вида кнопки
  • Наведение для устройств с указателем
  • Фокус с клавиатуры через :focus-visible
  • Нажатие в момент активации элемента
  • Отключено через стандартное свойство disabled
  • Загрузка через aria-busy="true"

Ваше приложение само определяет, когда кнопка отключена или занята. Генератор создаёт правила оформления, но не придумывает состояние приложения и не назначает обработчик нажатия.

Проверка контраста не является сертификатом

Редактор вычисляет наименьший контраст текста среди основного цвета, конечного цвета градиента, цвета при наведении и цвета при нажатии. Для обычного текста ориентир составляет 4,5:1. Контур фокуса также сравнивается со светлой поверхностью предпросмотра, а ориентир для нетекстового элемента составляет 3:1.

Эти значения помогают выявить распространённые проблемы, однако на готовой странице кнопка может находиться на другом фоне. Повторно проверьте контраст фокуса и границы в реальном макете. Отключённые элементы показаны с меньшей непрозрачностью; если их назначение неочевидно, добавьте понятное пояснение рядом.

Размер области нажатия и движение

Экспортируемое правило задаёт минимальную ширину и высоту 44 px. Такой размер удобен для многих сенсорных интерфейсов и превышает минимум 24 CSS px из критерия успешности 2.5.8 WCAG 2.2. В готовом продукте всё равно нужно учитывать компоновку, расстояния, исключения и рекомендации платформы.

Смещение при наведении и нажатии отключается, если пользователь предпочитает уменьшенную анимацию. Индикатор загрузки замедляется, а не исчезает, поэтому занятое состояние остаётся заметным.

Границы безопасного вывода

Видимая надпись нормализуется, ограничивается 120 графемными кластерами, очищается от невидимых управляющих символов направления и экранируется в HTML-фрагменте и скачиваемом файле. Цвета должны быть шестизначными шестнадцатеричными значениями. Каждая числовая настройка округляется и ограничивается диапазоном, указанным рядом с полем.

Полный редактор работает в памяти браузера. В дополнительном четырёхстраничном режиме версия дизайна хранится в sessionStorage текущей вкладки. Текст и параметры дизайна не добавляются в URL этапов и не передаются на наши серверы.

Использование состояния загрузки

Устанавливайте и удаляйте атрибут занятости из кода приложения:

<button type="button" class="generated-button" aria-busy="true" disabled>
  <span class="generated-button__label">Сохранение</span>
</button>

aria-busy сообщает, что обновление ещё выполняется. Добавьте также disabled, если нужно предотвратить повторную активацию. После завершения операции удалите оба атрибута и выведите важное сообщение об успехе или ошибке в подходящей области состояния.

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

Нет. Он предоставляет расчёты контраста, видимое правило фокуса, поддержку уменьшенной анимации, семантический HTML и минимальную область нажатия 44 px. Соответствие зависит от готовой страницы, окружающих цветов, содержимого, поведения и тестирования.

Нет. Редактор хранит надпись и дизайн в памяти браузера. Дополнительный многостраничный режим использует хранилище сеанса в той же вкладке и не добавляет введённые значения в URL и запросы на сервер.

Кнопка подходит для действий: отправки формы, открытия окна или переключения состояния. Для перехода используйте ссылку с настоящим href, а затем примените созданный класс, если ссылка должна выглядеть так же.

Редактор сообщит об ошибке и оставит полный результат выделенным в доступном для чтения текстовом поле, чтобы его можно было скопировать вручную. Сообщение об успехе появляется только после завершения Clipboard API.

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

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

Создавайте до 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), свободно сочетая десятичные и двоичные единицы.

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