Кратко
СкопированоФункция conic
используется для задания фона в виде конического градиента.
Пример
Скопировано.element { background-image: conic-gradient(#3590eb, #ee82cf);}
.element { background-image: conic-gradient(#3590eb, #ee82cf); }
Как понять
СкопированоГрадиент — это плавный переход между цветами. В коническом градиенте цвета поворачиваются по кругу вокруг центральной точки, будто стрелки часов (или как в круговой диаграмме). Название градиента не имеет ничего общего с конями, а произошло от того, что получаемое изображение часто напоминает конус сверху.
Как пишется
СкопированоПростейшая запись конического градиента с двумя цветами:
.element { background-image: conic-gradient(white, black);}
.element { background-image: conic-gradient(white, black); }
По умолчанию начало градиента (первый цвет в списке) будет проходить линией через центральную и верхнюю точки элемента (как стрелки круговых часов в 12:00) и далее цвета будут следовать по кругу по часовой стрелке.
Компактная запись white
на самом деле состоит из нескольких умолчаний: начальный угол, положение центра и координаты цветов:
.element { background-image: conic-gradient(from 0turn at 50% 50%, white 0%, black 100%);}
.element { background-image: conic-gradient(from 0turn at 50% 50%, white 0%, black 100%); }
Начальный угол и положение центра
СкопированоУгол начала следования цветов можно изменить, например поворот на четверть круга можно записать как from 0
(повороты) или from 90deg
(градусы) или from 1
(радианы) или 100grad
(грады). Также можно менять координаты центральной точки, вокруг которой рисуется градиент, например at 20
или at center top
.
Границы цветов
СкопированоМожно указывать любое количество цветов в любом доступном формате. Если цвета просто перечислять через запятую, то они равномерно распределятся по кругу, плавно переходя один в другой. Можно задать свои границы расположения цветов с помощью тех же единиц измерения, что и для задания начального угла градиента, плюс ещё используется значение в процентах. Например в conic
середина серого цвета будет на 25%.
Ещё одной возможностью является указание средней точки, в которой будут перемешиваться два соседних цвета (средняя точка перехода). Например в conic
цвета смешаются посередине, на 0
, а при conic
середина смешения цветов наступит на первой четверти круга.
Для создания жёстких переходов, без плавного градиента, можно для каждого цвета задать по две точки (границы их начала и конца), а следующий цвет должен начинаться с той же точки, на которой остановился предыдущий. Например conic
.
.element-2 { background-image: conic-gradient( from 45deg at 25% center, white, #d6f78a 25%, 0.45turn, rgb(127, 235, 235) 210deg 5.9rad, hsl(278, 81%, 79%) 361grad );}
.element-2 { background-image: conic-gradient( from 45deg at 25% center, white, #d6f78a 25%, 0.45turn, rgb(127, 235, 235) 210deg 5.9rad, hsl(278, 81%, 79%) 361grad ); }
Подсказки
СкопированоДля более простого создания повторяющихся конических градиентов существует функция repeating
.
На практике
Скопированосоветует Скопировано
🛠 Цветовой круг можно сделать простым перечислением основных цветов. Первый и последний цвет должен быть один и тот же (красный), чтобы получился плавный градиент.
.color-circle { background: conic-gradient( red, orange, yellow, green, blue, purple, red );}
.color-circle { background: conic-gradient( red, orange, yellow, green, blue, purple, red ); }
🛠 Для создания круговой диаграммы нужно задать жёсткие переходы цветов с помощью двух значений, указывающих начало и конец каждого цвета:
.pie-chart { background-image: conic-gradient( coral 27deg, palegreen 27deg 150deg, skyblue 150deg );}
.pie-chart { background-image: conic-gradient( coral 27deg, palegreen 27deg 150deg, skyblue 150deg ); }
🛠 Простой фоновый рисунок в виде пирамидки сверху легко создать с помощью конического градиента:
.pyramid { background-image: conic-gradient( from -0.125turn, #bbb 0.25turn, #999 0.25turn 0.5turn, #bbb 0.5turn 0.75turn, #eee 0.75turn );}
.pyramid { background-image: conic-gradient( from -0.125turn, #bbb 0.25turn, #999 0.25turn 0.5turn, #bbb 0.5turn 0.75turn, #eee 0.75turn ); }
🛠 В комбинации со свойством background
можно создавать различные повторяющиеся паттерны, например сделать шахматную доску:
.chess-board { background-image: conic-gradient( peru 25%, cornsilk 25% 50%, peru 50% 75%, cornsilk 75% ); background-size: 25% 25%;}
.chess-board { background-image: conic-gradient( peru 25%, cornsilk 25% 50%, peru 50% 75%, cornsilk 75% ); background-size: 25% 25%; }
🛠 Этот рисунок солнца состоит из всего-лишь одного элемента, к которому применены сразу и радиальный и конический градиенты:
.sun { background: radial-gradient( yellow 5%, gold 31% 32%, transparent 32.5% 50%, lightskyblue 70% ), conic-gradient( transparent 3%, yellow 5% 8%, transparent 10% 13%, yellow 15% 17%, transparent 20% 23%, yellow 25% 28%, transparent 30% 33%, yellow 35% 38%, transparent 40% 43%, yellow 45% 48%, transparent 50% 53%, yellow 55% 58%, transparent 60% 63%, yellow 65% 68%, transparent 70% 73%, yellow 75% 78%, transparent 80% 83%, yellow 85% 88%, transparent 90% 93%, yellow 95% 98%, transparent );}
.sun { background: radial-gradient( yellow 5%, gold 31% 32%, transparent 32.5% 50%, lightskyblue 70% ), conic-gradient( transparent 3%, yellow 5% 8%, transparent 10% 13%, yellow 15% 17%, transparent 20% 23%, yellow 25% 28%, transparent 30% 33%, yellow 35% 38%, transparent 40% 43%, yellow 45% 48%, transparent 50% 53%, yellow 55% 58%, transparent 60% 63%, yellow 65% 68%, transparent 70% 73%, yellow 75% 78%, transparent 80% 83%, yellow 85% 88%, transparent 90% 93%, yellow 95% 98%, transparent ); }
Код можно сделать ещё проще, заменив конический градиент на repeating
:
.sun { background: radial-gradient( yellow 5%, gold 31% 32%, transparent 32.5% 50%, lightskyblue 70% ), repeating-conic-gradient( yellow 0% 1%, transparent 4% 6%, yellow 9% 10% );}
.sun { background: radial-gradient( yellow 5%, gold 31% 32%, transparent 32.5% 50%, lightskyblue 70% ), repeating-conic-gradient( yellow 0% 1%, transparent 4% 6%, yellow 9% 10% ); }