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

Генератор CSS-кнопок превращает визуальные настройки в готовое правило, которое можно вставить в проект. Кнопке нужны только background-color, color, padding и border-radius; рамка необязательна, а padding пишется сначала по вертикали, затем по горизонтали. Пример: padding: 12px 24px; border-radius: 8px; background-color: #2563eb; color: #ffffff даёт скруглённую синюю кнопку, надпись которой проходит уровень AA WCAG с показателем 5,17:1.

Предпросмотр

Проверка доступности

Контраст текста

Итоговый размер
px в высоту

Настроить

Быстрые Шаблоны

Сгенерированный Код

Встроить этот инструмент на ваш сайт

× px

                        

💡 Совет по интеграции

Скопируйте код для вставки и вставьте его в HTML вашего сайта. Адаптивная версия автоматически подстраивается под все размеры экрана.

0 оценок
✓

Популярные

Больше нет инструментов
Все инструменты

Как сделать кнопку на CSS?

Сначала выберите размер шрифта, а всё остальное выведите из него. Вертикальный отступ задаёт высоту (высота = 2 x вертикальный отступ + 2 x толщина рамки + 1,2 x размер шрифта, тот межстрочный интервал, который генератор записывает в каждое создаваемое правило), горизонтальный отступ задаёт ширину, а border-radius скругляет углы. Пять рецептов ниже идут без рамки, поэтому слагаемое рамки равно нулю; с рамкой в 2px каждая высота в таблице вырастет на 4px. Эти пять рецептов покрывают почти все кнопки обычной страницы.

Распространённые размеры CSS-кнопок, объявления, которые создают ползунки, и высота отрисовки каждого варианта без рамки.
Рецепт font-size padding border-radius Высота Типичное применение
Маленькая 14px 6px 12px 6px 29 px Действия в строках таблицы и плотные панели инструментов
Средняя (по умолчанию) 16px 12px 24px 8px 43 px Формы, карточки и большинство действий на странице
Большая 18px 16px 32px 10px 54 px Призывы к действию в шапке и на странице тарифов
Пилюля 16px 12px 28px 50px 43 px Фильтры-чипы и маркетинговые бейджи. Любое скругление больше половины высоты даёт ту же форму - отсюда написанное вручную 999px.
Только значок 16px 12px 12px 8px 43 px Элемент только со значком: задайте ширину, равную высоте, чтобы он остался квадратным, и добавьте aria-label

Высоты сходятся, потому что правило фиксирует line-height: 1.2; кнопка, унаследовавшая больший межстрочный интервал от окружающей страницы, окажется выше, чем обещает рецепт. Критерий 2.5.8 «Размер цели (минимум)» WCAG 2.2 требует 24 x 24 CSS-пикселя, но перечисляет пять исключений - достаточный интервал вокруг цели, равнозначный элемент управления размером не менее 24 px в другом месте страницы, цель внутри строки текста, размер, заданный браузером, и размер, существенный для передаваемой информации, - а критерий 2.5.5 поднимает усиленную цель до 44 x 44. Поэтому рецепт «Маленькая» с 29 px - это нижняя граница, а не безопасное значение по умолчанию.

Как оформить кнопку при наведении, нажатии и в отключённом состоянии?

У кнопки пять состояний, которые стоит оформить, и каждое - отдельный селектор на одном и том же классе. Правила покоя, наведения и нажатия всегда есть в выводе; оставьте флажок «Включить состояния focus и disabled в код» установленным, и генератор добавит два оставшихся ниже.

CSS-селекторы для каждого состояния кнопки и объявления, которые генератор пишет для него с цветами по умолчанию. Строка покоя перечисляет только два цветовых объявления; полное правило .btn в сгенерированном коде добавляет шрифт, высоту строки, отступы, радиус, рамку, тень, display, cursor, transition и text-decoration.
Состояние Селектор Сгенерированное объявление Зачем
Покой .btn background-color: #4f46e5; color: #ffffff Базовая заливка, на которой строятся все остальные состояния.
Наведение .btn:hover opacity: 0.9; transform: translateY(-1px) Подтверждает, что указатель над целью. Генератор приподнимает кнопку на пиксель и слегка её приглушает. На сенсорных устройствах не срабатывает.
Нажатие .btn:active transform: translateY(0) Возвращает подъём от наведения в исходное положение, пока указатель удерживается, чтобы клик читался как нажатие.
Фокус с клавиатуры .btn:focus-visible outline: 3px solid #4f46e5; outline-offset: 2px Показывает тем, кто работает с клавиатуры, где они находятся. Никогда не ставьте outline: none без видимой замены.
Отключена .btn:disabled opacity: 0.5; cursor: not-allowed; transform: none Помечает действие недоступным. Атрибут disabled на элементе button дополнительно блокирует клик.

Как создать кликабельную кнопку в HTML?

Используйте элемент button, когда клик что-то делает на странице: <button type="button" class="btn">Сохранить</button> для JavaScript или type="submit" внутри формы. Используйте ссылку, когда клик ведёт в другое место: <a href="/tarify" class="btn">Посмотреть тарифы</a>, чтобы клик средней кнопкой и «открыть в новой вкладке» продолжали работать. Только ссылка принимает URL, только button принимает disabled, а элементу, состоящему из одного значка, нужен aria-label, потому что программе чтения с экрана больше нечего озвучить. Оба используют один и тот же класс .btn, поэтому вкладка HTML + CSS выдаёт элемент button, который одной правкой превращается в ссылку.

Как сделать CSS-кнопку скруглённой или полностью круглой?

Всё делает border-radius. Четыре-восемь пикселей выглядят как смягчённый прямоугольник, двенадцать-шестнадцать выглядят дружелюбно, а любое значение больше половины высоты кнопки даёт пилюлю, потому что слишком большой для коробки радиус уменьшается, пока два угла одной стороны не сойдутся вплотную, — при одинаковом радиусе это половина короткой стороны; 999px — привычное сокращение для «максимально круглого». Настоящий круг требует равных ширины и высоты плюс border-radius: 50%, поэтому кнопке со значком задайте одинаковые вертикальные и горизонтальные отступы. При шрифте 16px и вертикальном отступе 12px по умолчанию кнопка имеет высоту около 43px, так что ползунок «Радиус скругления» рисует пилюлю уже с 22.

Как выровнять CSS-кнопку по центру страницы?

Кнопка - это inline-block, поэтому text-align: center у родителя центрирует её, ничего не меняя в самой кнопке. Чтобы центрировать её напрямую, задайте display: block вместе с margin-inline: auto и шириной либо поместите её в контейнер с display: flex; justify-content: center. Внутри готового flex-ряда margin-inline-start: auto отодвигает одиночную кнопку к правому краю. Надпись центрируется сама, пока вы задаёте размер кнопки отступами, а не фиксированной высотой - именно так и выводит генератор.

Какой генератор CSS-кнопок лучше?

Судите по тому, что он вам выдаёт, а не по числу тем оформления. Полезный генератор показывает кнопку в реальном размере, выносит отступы, скругление, рамку и тень в отдельные регуляторы вместо закрытой темы, выдаёт обычный CSS без классов фреймворка, которые нужно устанавливать, и сообщает, читаема ли пара цветов на самом деле. Эта страница измеряет коэффициент контраста по WCAG 2.2 и показывает отрисованную высоту прямо во время работы с ползунками, поэтому проблема видна здесь, а не в более позднем аудите доступности.

Что выдаёт этот генератор CSS-кнопок?

Две вещи: многоразовый класс .btn с правилами наведения, нажатия, фокуса и отключения для вашей таблицы стилей и те же объявления, вписанные прямо в элемент button, - для конструкторов страниц, блоков CMS и почтовых шаблонов, которые вырезают внешний CSS. И то и другое - обычный CSS без классов фреймворка, а панель контраста выше сообщает, проходит ли пара цветов WCAG, ещё до вставки кода.

О генераторе CSS кнопок

Генератор CSS-кнопок превращает несколько ползунков и палитр в то единственное правило CSS, которое действительно нужно кнопке. Вы задаёте надпись, цвет фона и текста, размер и насыщенность шрифта, горизонтальный и вертикальный отступы, радиус скругления, толщину и цвет рамки и одну из четырёх глубин тени; необязательный второй цвет превращает плоскую заливку в линейный градиент под 135 градусов. Предпросмотр расположен над регуляторами и представляет собой настоящую HTML-кнопку с вашими значениями в том размере, в котором она появится на вашей странице, так что вы утверждаете ровно то, что отправите в работу.

Две вещи делают результат пригодным к работе, а не декоративным. Во-первых, панель кода имеет две вкладки: многоразовый класс .btn с правилами :hover, :active, :focus-visible и :disabled для вашей таблицы стилей и тот же элемент button со всеми свойствами внутри атрибута style - для конструкторов страниц, блоков CMS и почтовых шаблонов, которые вырезают внешний CSS. Во-вторых, панель доступности измеряет пару цветов по WCAG 2.2 и показывает коэффициент контраста с вердиктом AAA, AA или «не проходит», переключаясь на пороги для крупного текста, когда размер и насыщенность шрифта это допускают. Она же сообщает отрисованную высоту - удвоенный вертикальный отступ, плюс удвоенная рамка, плюс 1,2 размера шрифта, тот межстрочный интервал, который правило фиксирует, чтобы кнопка на экране была ровно такой высоты, как заявлено, - в сравнении с целями 24 x 24 и 44 x 44 CSS-пикселя из критериев 2.5.8 и 2.5.5.

Градиент проверяется по обеим точкам, и показывается худший из двух коэффициентов. Восемь шаблонов - «Основная», «Опасность», «Успех», «Контур», «Капсула», «Градиент», «Приглушённая» и «Неон» - это отправные точки, а не финал: нажмите один и продолжайте двигать ползунки. Ни цвет, ни надпись, ни положение ползунка никуда не отправляются; расчёт контраста, предпросмотр и код выполняются в самой странице, поэтому коэффициент обновляется тем же нажатием клавиши, которое перерисовывает кнопку. Вы копируете один класс - без фреймворка, который надо устанавливать, без шага сборки и без скрипта во время выполнения.

Примеры использования

Фронтенд-разработчики, которым нужно правило кнопки на чистом CSS для проекта без дизайн-системы: без Tailwind и Bootstrap, только .btn и его состояния.
Дизайнеры, передающие спецификацию разработке: двигайте ползунки, пока предпросмотр не совпадёт с макетом, и отдайте точные значения в пикселях вместо словесного описания.
Письма и лендинги, которые вырезают внешние таблицы стилей и требуют каждое объявление внутри атрибута style, - именно это выдаёт вкладка HTML + CSS.
Специалисты по доступности, проверяющие предложенную пару фирменных цветов: коэффициент контраста и вердикт WCAG обновляются, пока вы вводите шестнадцатеричные коды.
Студенты и преподаватели, разбирающие, как взаимодействуют padding, border-radius, box-shadow и font-weight, с предпросмотром, который реагирует на каждый отдельный ползунок.

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

1

Впишите нужную надпись в поле «Текст кнопки», затем задайте «Фон» и «Цвет текста» образцами цвета или HEX-кодами в полях рядом.

2

Ползунками «Размер шрифта», «Горизонтальные отступы», «Вертикальные отступы» и «Радиус границы» задайте форму кнопки, а для контурного вида увеличьте «Ширину рамки» и выберите «Цвет границы».

3

Выберите Толщину шрифта — Обычный, Средний, Полужирный или Жирный — и Тень: Нет, Маленькая, Средняя или Большая.

4

Отметьте «Градиент» и выберите второй цвет, чтобы фон превратился в диагональный градиент из двух цветов.

5

Нажмите карточку в Быстрых Шаблонах — Основная, Контур, Капсула, Градиент, Приглушённая или Неон, — чтобы загрузить готовый стиль и доработать его.

6

Проверьте живую кнопку на панели «Предпросмотр», переключите вкладку вывода на CSS или HTML + CSS и нажмите значок копирования в блоке с кодом.

Советы профессионалов

  • Сначала задайте размер шрифта. Отступы и скругление оценивать намного проще, когда надпись уже нужного размера, а показатель высоты (2 x вертикальный отступ + 2 x толщина рамки + 1,2 x размер шрифта) меняется вместе с ним.
  • Загрузите шаблон, а потом донастройте. «Контур» и «Приглушённая» уже стартуют с толщиной рамки больше нуля - это самый быстрый путь к второстепенной кнопке.
  • Вводите шестнадцатеричные коды в поле рядом с образцом, а не ищите оттенок в палитре; предпросмотр и коэффициент контраста обновляются на каждом символе.
  • Уровень AA обязателен при любом размере текста; меняется только порог: 4,5:1 для обычного текста и 3:1, когда надпись достигает 24px или 18,66px полужирным. Пара с 3:1 может выглядеть нормально на ярком мониторе и стать нечитаемой на улице, поэтому считайте низкий порог потолком, а не целью.
  • Градиенты проверяются по обеим точкам, и показывается худший коэффициент: если проваливается только один край, сдвиньте эту точку, а не перекрашивайте всю кнопку.

Устранение неполадок

Проблема:

Скопированный CSS никак не влияет на мою страницу.

Решение:

Класс перекрыт или вовсе не применён. Убедитесь, что у элемента есть class="btn", подключайте свою таблицу стилей после CSS фреймворка и откройте панель Styles в инструментах разработчика: перечёркнутое объявление означает, что другой селектор выигрывает по специфичности или по порядку.

Проблема:

Градиент выглядит плоским или не появляется вовсе.

Решение:

Градиент - это фоновое изображение, а не цвет фона. Включите «Градиент», чтобы инструмент выдал background: linear-gradient(...) вместо background-color. Если он всё равно не виден, ищите более позднее сокращённое свойство background или более поздний background-image на том же элементе: сокращённая запись сбрасывает background-image в none и стирает градиент. Более поздний background-color скрыть его не может, потому что CSS Backgrounds 3 рисует цвет под фоновыми изображениями.

Проблема:

Бейдж контраста говорит о провале, но кнопка кажется мне читаемой.

Решение:

Контраст измеряется по относительной яркости, а не по тому, насколько сочным кажется цвет. Пары средних тонов вроде #f59e0b с белым текстом дают около 2:1, хотя выглядят ярко. Затемните фон или сделайте надпись почти чёрной; коэффициент обновится прямо во время ввода.

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

Напишите одно правило для класса и задайте шесть объявлений: background-color, color, font-size, font-weight, padding и border-radius. box-shadow и рамку добавляйте только там, где этого требует макет. Генератор пишет именно такое правило за вас: подвигайте ползунки, посмотрите живой предпросмотр и скопируйте блок .btn со вкладки CSS в свою таблицу стилей.

Вкладка CSS даёт многоразовый класс .btn с правилами состояний, который вставляется в таблицу стилей: изменив один блок, вы поменяете все кнопки сайта. Вкладка HTML + CSS даёт один элемент button с теми же объявлениями внутри атрибута style - именно это нужно конструкторам страниц, блокам CMS и почтовым шаблонам, потому что они вырезают внешние таблицы стилей. Замените его ссылкой с href, если клик ведёт на другой адрес.

Поднимите ползунок «Радиус границы». Около 8px получается смягчённый прямоугольник, который используют большинство интерфейсов, а выше половины высоты кнопки углы сливаются в пилюлю. При шрифте 16px и вертикальном отступе 12px по умолчанию кнопка имеет высоту 43px, поэтому любое скругление примерно за 22 уже выглядит полностью круглым, а 999px в написанном вручную CSS означает то же самое.

Да. При каждом изменении цвета текста или фона он пересчитывает коэффициент контраста по WCAG и показывает AAA, AA или неудачу. Обычному тексту нужно 4,5:1 для AA и 7:1 для AAA; текст 24px или 18,66px полужирным считается крупным, и ему достаточно 3:1 и 4,5:1. Градиентные заливки измеряются по обеим точкам цвета.

Панель размера сообщает отрисованную высоту как удвоенный вертикальный отступ, плюс удвоенную толщину рамки, плюс 1,2 размера шрифта - это межстрочный интервал, который генератор фиксирует в правиле, поэтому число совпадает с кнопкой, нарисованной выше. Критерий 2.5.8 WCAG 2.2 требует цель 24 x 24 CSS-пикселя, а 2.5.5 поднимает её до 44 x 44. Шрифт 16px с вертикальным отступом 12px даёт 43px, что уверенно превышает минимум.

Используйте button, когда клик действует на текущей странице: отправляет форму, открывает диалог, запускает JavaScript. Он получает фокус по умолчанию, срабатывает по Enter и пробелу и поддерживает атрибут disabled. Используйте ссылку с href, когда клик ведёт на другой URL, чтобы клик средней кнопкой и «открыть в новой вкладке» продолжали работать. Оба могут нести один и тот же класс .btn.

В сгенерированном CSS уже есть .btn:hover и .btn:active. Оставьте установленным флажок «Включить состояния focus и disabled в код» - и вы получите ещё .btn:focus-visible с обводкой 3px и отступом 2px, а также .btn:disabled с половинной непрозрачностью и cursor: not-allowed. Никогда не удаляйте обводку фокуса, не заменив её чем-то видимым, иначе те, кто работает с клавиатуры, теряют ориентир.

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

Почти всегда виноваты унаследованные стили. Сброс фреймворка, font-family родителя, глобальное правило для button или селектор с большей специфичностью могут перекрыть вставленный класс. Подключайте свою таблицу стилей после CSS фреймворка, держите .btn на одном элементе и смотрите панель Styles в инструментах разработчика: перечёркнутое объявление точно укажет, какой селектор победил.

Стандарты и источники

FreeWebTools AI
Powered by free AI models · Full chat →