conic-gradient()
Tworzy przejście kolorów dookoła punktu, jak wskazówka zegara. Rysuje wykresy kołowe, koła barw i obracające się obwódki.
Przykład
#.chart {
width: 120px;
aspect-ratio: 1;
border-radius: 50%;
background: conic-gradient(
#7c3aed 0 40%,
#0ea5e9 0 75%,
#10b981 0
);
}<div style="display: flex; flex-wrap: wrap; align-items: center; gap: 20px;">
<div class="chart" role="img" aria-label="HTML 40%, CSS 35%, JavaScript 25%"></div>
<ul style="display: grid; gap: 6px; margin: 0; padding: 0; list-style: none;">
<li><span style="color: #7c3aed;">■</span> HTML: 40%</li>
<li><span style="color: #0ea5e9;">■</span> CSS: 35%</li>
<li><span style="color: #10b981;">■</span> JavaScript: 25%</li>
</ul>
</div>Każdy kolor zaczyna się od 0, czyli tam, gdzie skończył się poprzedni. Wystarczy podać, do którego miejsca ma sięgać.
Definicja i zastosowanie
#Funkcja conic-gradient() rozkłada kolory po okręgu wokół środka, zgodnie z ruchem wskazówek zegara, zaczynając od góry. Kolor zmienia się wraz z kątem, a nie z odległością od środka, jak w radial-gradient(). Wynikiem jest obraz, więc wpisujesz go w background lub background-image.
Pozycje kolorów podajesz w stopniach albo procentach pełnego obrotu: #7c3aed 0deg 120deg wypełnia jedną trzecią koła. Dwa kolory w tej samej pozycji dają ostrą granicę, dzięki czemu z kilku przedziałów zbudujesz wykres kołowy bez żadnej grafiki. Z border-radius: 50% element staje się okrągły.
Słowo from obraca punkt startowy (from 90deg zaczyna po prawej), a at przesuwa środek (at 30% 40%). Gdy chcesz płynnego koła barw, ostatni kolor powinien być taki sam jak pierwszy, inaczej u góry pojawi się ostra krawędź.
Wersja repeating-conic-gradient() powtarza wzór, co pozwala narysować szachownicę jedną deklaracją, np. repeating-conic-gradient(#27272a 0 25%, #3f3f46 0 50%) z background-size. Animując kąt from przez zmienną zarejestrowaną w @property, zrobisz obracającą się obwódkę albo wskaźnik ładowania.
Składnia
#conic-gradient([from <kąt>]? [at <pozycja>]?, <kolor> <kąt>?, <kolor> <kąt>?, …)Warianty zapisu
#płynny obrót kolorów
Kolory tęczy rozłożone dookoła. Ostatni jest taki sam jak pierwszy, więc u góry nie ma ostrej krawędzi.start po prawej
Słowofromobraca punkt startowy. Bursztynowa ćwiartka zaczyna się na godzinie trzeciej zamiast na dwunastej.przesunięty środek
Poatpodajesz położenie środka. Kolory zbiegają się w lewej górnej części koła.40%, 35% i 25%
Ostre przedziały zamiast przejść. Każdy kolor zaczyna się od0, czyli tam, gdzie skończył poprzedni.65%
Wycinek 65% na szarym tle, a maska z gradientem radialnym wycina środek, więc z koła zostaje pierścień.szachownica
Powtarzany wzór dwóch ćwiartek w kafelku 22 × 22 px. Tak rysuje się szachownicę, np. pod przezroczystymi obrazkami.
Warianty zapisu w praktyce
#koło barw
.demo {
background: conic-gradient(red, yellow, lime,
aqua, blue, magenta, red);
}from 90deg
from obraca punkt startowy. Bursztynowa ćwiartka zaczyna się na godzinie trzeciej zamiast na dwunastej..demo {
background: conic-gradient(from 90deg,
#f59e0b 0 25%, #27272a 0);
}at 30% 30%
at podajesz położenie środka. Kolory zbiegają się w lewej górnej części koła..demo {
background: conic-gradient(at 30% 30%,
#7c3aed, #0ea5e9, #10b981, #7c3aed);
}wykres kołowy
0, czyli tam, gdzie skończył poprzedni..demo {
background: conic-gradient(#7c3aed 0 40%,
#0ea5e9 0 75%, #10b981 0);
}pierścień postępu
.demo {
background:
conic-gradient(#10b981 65%, #27272a 0);
mask: radial-gradient(closest-side,
transparent 68%, #000 69%);
}repeating-conic-gradient()
.demo {
border-radius: 12px;
background: repeating-conic-gradient(
#27272a 0 25%, #a1a1aa 0 50%) 0 0 / 22px 22px;
}Obsługa przeglądarek
#Szeroko dostępne · od 2020 roku
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- W wykresach kołowych podawaj pozycję początkową jako
0: przeglądarka zacznie kolor tam, gdzie skończył się poprzedni, i nie trzeba powtarzać liczb. - Wykres zrobiony w CSS nie jest czytelny dla czytników ekranu. Dodaj obok legendę z wartościami albo opis w
aria-label. - Obracający się gradient zrobisz, animując
from var(--kat)ze zmienną zarejestrowaną przez@propertyjako<angle>.
Powiązane hasła
#- linear-gradient()Tworzy płynne przejście kolorów wzdłuż prostej linii. Używa się go jako obrazu, najczęściej w background lub background-image.
- radial-gradient()Tworzy przejście kolorów rozchodzące się od punktu na zewnątrz, po okręgu albo elipsie. Dobre do poświat, winiet i miękkich świateł.
- @propertyRejestruje zmienną CSS z typem, wartością początkową i zasadą dziedziczenia. Taką zmienną można płynnie animować, np. kąt gradientu.
- background-imageUstawia obraz lub gradient jako tło elementu.
- border-radiusZaokrągla rogi elementu.
Widzisz błąd albo brakuje przykładu? Napisz do nas.