CSS Gradient Generator

Создавайте линейные и радиальные CSS-градиенты визуально и копируйте CSS-код

Попробовать пример
Тип
Угол135°

Цветовые точки

0%
100%

CSS-код

background: linear-gradient(135deg, #6366f1 0%, #ec4899 100%);

Что такое CSS-градиент?

Генератор CSS-градиентов — это визуальный инструмент, который помогает создавать плавные цветовые переходы без ручного написания синтаксиса градиента. В CSS градиент — это плавный переход между двумя или более цветами, который браузер отрисовывает напрямую, без использования изображений. Спецификация CSS Image Module Level 4 определяет функции градиентов как разновидность значения типа image, то есть их можно использовать везде, где допустимы значения background-image, list-style-image или border-image. Поскольку браузер растеризует градиенты во время отрисовки, они масштабируются до любого разрешения и не дают размытых артефактов на экранах с высокой плотностью пикселей. Использование генератора CSS-градиентов экономит время и избавляет от необходимости угадывать параметры — вы настраиваете цвета и позиции визуально, а затем копируете готовое CSS-правило.

CSS поддерживает три основные формы градиентов: линейные (вдоль прямой линии), радиальные (от центральной точки наружу) и конические (по кругу вокруг центра). Каждая форма принимает список цветовых точек, где указывается цвет и, при необходимости, позиция (в процентах или единицах длины). По умолчанию браузер интерполирует цвета между точками в цветовом пространстве sRGB, однако CSS Color Level 4 позволяет задавать другие цветовые пространства — oklch и lab — для более точных с точки зрения восприятия переходов.

Градиенты заменили фоновые изображения для большинства декоративных задач в вебе. Одно CSS-правило даёт то, что раньше требовало экспорта из Photoshop и лишнего HTTP-запроса. Они не зависят от разрешения, не требуют сетевого трафика сверх самого CSS и могут анимироваться стандартными CSS-свойствами. Синтаксис градиентов стабилен во всех основных браузерах с 2013 года, и форма без вендорных префиксов работает в Chrome, Firefox, Safari и Edge без запасных вариантов.

Зачем использовать этот генератор CSS-градиентов?

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

Живой визуальный предпросмотр
Градиент обновляется в реальном времени при изменении цветов, позиций и углов. Не нужно переключаться между редактором и браузером.
🔒
Обработка без передачи данных
Вся отрисовка происходит в вашем браузере. Никакие данные о цветах и конфигурациях градиентов не отправляются на сервер.
🎨
Несколько типов градиентов
Создавайте линейные и радиальные градиенты с полным контролем над направлением, углом и позициями цветовых точек. Копируйте CSS одним кликом.
📋
Без регистрации
Откройте страницу и начинайте работу. Никакой регистрации, никакой почты, никаких ограничений по частоте запросов. Работает офлайн после первой загрузки.

Сценарии использования генератора CSS-градиентов

Frontend-разработка
Создавайте фоны для секций-hero, наложения для карточек и состояния кнопок при наведении. Просматривайте градиент в нужных размерах, а затем вставляйте CSS прямо в таблицу стилей или конфигурацию Tailwind.
Дизайн email-шаблонов
Некоторые почтовые клиенты поддерживают CSS-градиенты в инлайн-стилях. Сгенерируйте точный код градиента и встройте его в элемент, указав сплошной запасной цвет для клиентов без поддержки градиентов.
Прототипирование дизайна
При итерации по цветовым схемам в браузере вместо Figma быстро генерируйте фоны с градиентами. Сравнивайте несколько вариантов рядом без экспорта ресурсов.
Стилизация дашбордов DevOps
Дашборды состояния и интерфейсы мониторинга используют цветовые градиенты для отображения диапазонов критичности (от зелёного до красного) или плотности данных. Сгенерируйте значения градиента и примените их к фонам графиков или индикаторам состояния.
Визуализация данных
Библиотеки диаграмм D3.js и Recharts принимают определения CSS-градиентов для заливок областей и тепловых карт. Постройте градиент визуально, а затем извлеките цвета точек для вашей функции масштабирования.
Изучение CSS
Студенты, изучающие CSS, могут экспериментировать с синтаксисом градиентов, наблюдать, как изменение угла влияет на направление, и разбираться в позиционировании цветовых точек. Сгенерированный CSS служит рабочим справочником.

Справочник по типам CSS-градиентов

В CSS определены пять функций градиентов. Три основных типа (linear, radial, conic) имеют повторяющийся вариант, который тайлит паттерн. repeating-linear-gradient() и repeating-radial-gradient() полезны для полосатых фонов и концентрических колец. Все функции градиентов принимают цветовые точки в любом формате CSS: HEX, RGB, HSL, именованные цвета или oklch. Поддержка всех пяти функций во всех основных браузерах — Chrome, Firefox, Safari и Edge — является де-факто универсальной, вендорные префиксы не требуются.

ФункцияПример синтаксисаНаправлениеТипичное применение
linear-gradient()to right, #f00, #00fStraight lineBackgrounds, hero sections, progress bars
radial-gradient()circle, #f00, #00fOutward from centerSpotlight effects, buttons, badges
conic-gradient()from 0deg, #f00, #00fSweep around centerPie charts, color wheels, spinners
repeating-linearto right, #f00 0 10px, #00f 10px 20pxTiled lineStripes, progress indicators, decorative borders
repeating-radialcircle, #f00 0 10px, #00f 10px 20pxTiled circleConcentric ring patterns, retro textures

Сравнение: linear, radial и conic градиенты

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

linear-gradient()
Цвета переходят вдоль прямой линии, определяемой углом (0deg = снизу вверх, 90deg = слева направо) или ключевым словом, например 'to right'. Наиболее распространённый тип, используется для фонов, наложений и индикаторов прогресса. Поддерживает несколько цветовых точек на произвольных позициях.
radial-gradient()
Цвета расходятся от центральной точки в форме круга или эллипса. Форму, размер и положение центра можно контролировать через синтаксис. Подходит для эффектов прожектора, виньеток и круговых UI-элементов, например значков или колец вокруг аватаров.
conic-gradient()
Цвета разворачиваются вокруг центральной точки, как стрелки часов. Начальный угол задаётся через 'from Xdeg'. Подходит для сегментов круговых диаграмм, цветовых колёс и вращательных индикаторов загрузки. Требует минимум двух точек; повторение первого цвета в конце создаёт плавную петлю.

Примеры кода

Примеры создания и применения CSS-градиентов программно на JavaScript, Python, CSS и Go. Каждый пример производит валидные строки CSS-градиентов, которые можно использовать напрямую в таблицах стилей или инлайн-стилях.

JavaScript
// Generate a CSS linear-gradient string from an array of stops
function buildGradient(angle, stops) {
  const parts = stops.map(s => `${s.color} ${s.position}%`)
  return `linear-gradient(${angle}deg, ${parts.join(', ')})`
}

const stops = [
  { color: '#6366f1', position: 0 },
  { color: '#ec4899', position: 50 },
  { color: '#f59e0b', position: 100 },
]
buildGradient(90, stops)
// -> "linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"

// Apply to an element
document.querySelector('.hero').style.background = buildGradient(135, stops)
Python
# Generate a CSS gradient string for use in templates or SVGs
def build_gradient(angle: int, stops: list[tuple[str, int]]) -> str:
    parts = [f"{color} {pos}%" for color, pos in stops]
    return f"linear-gradient({angle}deg, {', '.join(parts)})"

stops = [("#6366f1", 0), ("#ec4899", 50), ("#f59e0b", 100)]
print(build_gradient(135, stops))
# -> "linear-gradient(135deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"

# Interpolate N colors between two endpoints
def interpolate_hex(c1: str, c2: str, steps: int) -> list[str]:
    r1, g1, b1 = int(c1[1:3], 16), int(c1[3:5], 16), int(c1[5:7], 16)
    r2, g2, b2 = int(c2[1:3], 16), int(c2[3:5], 16), int(c2[5:7], 16)
    return [
        f"#{int(r1+(r2-r1)*i/(steps-1)):02x}"
        f"{int(g1+(g2-g1)*i/(steps-1)):02x}"
        f"{int(b1+(b2-b1)*i/(steps-1)):02x}"
        for i in range(steps)
    ]

interpolate_hex("#6366f1", "#f59e0b", 4)
# -> ['#6366f1', '#9a7399', '#d18042', '#f59e0b']
CSS
/* Linear gradient — left to right */
.hero {
  background: linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%);
}

/* Radial gradient — circular spotlight */
.badge {
  background: radial-gradient(circle at 30% 30%, #6366f1, #312e81);
}

/* Conic gradient — color wheel */
.wheel {
  background: conic-gradient(from 0deg, #ef4444, #f59e0b, #22c55e, #3b82f6, #8b5cf6, #ef4444);
  border-radius: 50%;
}

/* Multi-stop with transparency */
.overlay {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.6) 60%,
    rgba(0, 0, 0, 0.9) 100%
  );
}

/* Repeating stripes */
.stripes {
  background: repeating-linear-gradient(
    45deg,
    #6366f1 0 10px,
    transparent 10px 20px
  );
}
Go
package main

import "fmt"

// Stop represents one color stop in a gradient.
type Stop struct {
	Color    string
	Position int // percent 0-100
}

func buildGradient(angle int, stops []Stop) string {
	result := fmt.Sprintf("linear-gradient(%ddeg", angle)
	for _, s := range stops {
		result += fmt.Sprintf(", %s %d%%", s.Color, s.Position)
	}
	return result + ")"
}

func main() {
	stops := []Stop{
		{"#6366f1", 0},
		{"#ec4899", 50},
		{"#f59e0b", 100},
	}
	fmt.Println(buildGradient(135, stops))
	// -> "linear-gradient(135deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"
}

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

В чём разница между linear-gradient и radial-gradient?
linear-gradient() переходит между цветами вдоль прямой линии под заданным углом, тогда как radial-gradient() расширяет переход наружу от центральной точки в форме круга или эллипса. Линейные градиенты — стандартный выбор для фонов страниц и наложений. Радиальные лучше работают для эффектов прожектора и круговых UI-элементов.
Как задать направление линейного градиента?
Используйте угол в градусах (например, 90deg для направления слева направо, 180deg — сверху вниз) или ключевое слово (to right, to bottom left). Угол отсчитывается по часовой стрелке от нижней точки: 0deg указывает вверх, 90deg — вправо. Можно также использовать 'to top right' для нацеливания на угол — браузер вычислит точный угол исходя из соотношения сторон элемента.
Можно ли анимировать CSS-градиент?
Браузеры не могут напрямую интерполировать между двумя значениями градиента через CSS transitions. Распространённые обходные пути: анимация background-position увеличенного градиента, использование @property для анимации отдельных цветовых точек как custom properties, или перекрёстное затухание через opacity на псевдоэлементе. Подход с @property (поддерживается в Chrome и Edge с 2020 года, в Firefox — с 2024-го) является наиболее чистым решением.
Сколько цветовых точек может быть у градиента?
Спецификация CSS не устанавливает максимума. Браузеры справляются с градиентами из десятков точек без проблем с производительностью. На практике большинство градиентов использует от 2 до 5 точек. Для каждой точки можно указать цвет и, при необходимости, позицию в виде процента или единицы длины. Также можно задать две позиции для одной точки, чтобы создать жёсткую цветовую полосу без перехода.
В чём разница между градиентом и изображением?
В CSS градиент является вычисляемым изображением. Он использует тот же конвейер отрисовки, что и изображения url(), и может применяться везде, где допустимо значение image: background-image, list-style-image, border-image и mask-image. Отличие в том, что градиент генерируется браузером во время отрисовки, масштабируется до любого размера без потери качества и не добавляет ни байта к весу страницы, поскольку не скачивает файл.
Как создать градиент с жёсткой цветовой точкой (без перехода)?
Разместите две цветовые точки на одинаковой позиции. Например, linear-gradient(to right, #6366f1 50%, #ec4899 50%) создаёт резкое разделение без смешивания цветов. Можно также использовать синтаксис с двумя позициями: linear-gradient(to right, #6366f1 0% 50%, #ec4899 50% 100%), чтобы явно задать каждую полосу.
Поддерживается ли функция conic-gradient во всех браузерах?
conic-gradient() поддерживается в Chrome 69+, Firefox 83+, Safari 12.1+ и Edge 79+. По состоянию на 2024 год глобальная поддержка браузерами превышает 95% по данным Can I Use. Вендорный префикс не нужен. Для небольшого процента пользователей на старых браузерах задайте сплошной background-color в качестве запасного варианта перед объявлением градиента.