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ł.
Przykład
#.card {
background:
radial-gradient(circle at 15% 20%, rgb(124 58 237 / 0.55), transparent 45%),
radial-gradient(circle at 85% 80%, rgb(14 165 233 / 0.45), transparent 45%),
#111114;
}<div class="card" style="padding: 22px; border: 1px solid #27272a; border-radius: 16px;">
<strong style="font-size: 18px;">Świat 2: Podróż w Kosmos</strong>
<p style="margin: 4px 0 0; color: #a1a1aa;">16 modułów o JavaScripcie i Reakcie.</p>
</div>Dwie rozmyte plamy światła w rogach karty to dwa gradienty radialne z przezroczystymi końcami, położone na ciemnym kolorze tła.
Definicja i zastosowanie
#Funkcja radial-gradient() rysuje kolory rozchodzące się od środka, jak kręgi na wodzie. Pierwszy kolor leży w punkcie początkowym, ostatni na krawędzi kształtu. Tak jak linear-gradient() tworzy obraz, więc używasz jej w background lub background-image.
Kształt to ellipse (domyślnie, dopasowana do proporcji elementu) albo circle. Rozmiar określają słowa kluczowe: farthest-corner (domyślnie, gradient sięga najdalszego rogu), closest-side, closest-corner i farthest-side, albo konkretne wymiary, np. circle 80px czy ellipse 60% 40%.
Środek przesuwasz słowem at: radial-gradient(circle at top left, …) albo at 30% 70%. Kolejność jest stała: najpierw kształt i rozmiar, potem at z pozycją, a dopiero po przecinku kolory, np. radial-gradient(circle 120px at 20% 30%, #7c3aed, transparent).
W praktyce często nakłada się kilka takich gradientów z przezroczystymi końcami, żeby uzyskać kolorowe, rozmyte plamy światła w tle. Jeden gradient świetnie sprawdza się też jako winieta, która przyciemnia brzegi zdjęcia. Wersja repeating-radial-gradient() powtarza pierścienie.
Składnia
#radial-gradient([<kształt> <rozmiar>]? [at <pozycja>]?, <kolor> <pozycja>?, <kolor> <pozycja>?, …)Warianty zapisu
#elipsa od środka
Bez dodatkowych ustawień gradient ma kształt elipsy dopasowanej do elementu i zaczyna się w jego środku.okrąg
Słowocirclewymusza okrąg, niezależnie od proporcji elementu.środek w rogu
Poatpodajesz położenie środka. Światło pada z lewego górnego rogu.do najbliższego boku
Gradient kończy się na najbliższej krawędzi elementu, więc w szerokim prostokącie tworzy wyraźną, okrągłą plamę.ostra krawędź
Dwa kolory w tej samej pozycji rysują koło z ostrą krawędzią zamiast poświaty.kilka warstw
Dwa gradienty z przezroczystymi końcami i kolor pod spodem. Tak powstają miękkie, kolorowe tła.pierścienie
Wzór powtarzany od środka na zewnątrz. Ostre granice dają koncentryczne pierścienie.
Warianty zapisu w praktyce
##7c3aed, #18181b
.demo {
background: radial-gradient(#7c3aed, #18181b);
}circle
circle wymusza okrąg, niezależnie od proporcji elementu..demo {
background:
radial-gradient(circle, #7c3aed, #18181b);
}circle at top left
at podajesz położenie środka. Światło pada z lewego górnego rogu..demo {
background: radial-gradient(
circle at top left, #0ea5e9, #18181b);
}circle closest-side
.demo {
background: radial-gradient(
circle closest-side, #f59e0b, #18181b);
}#f43f5e 30%, #18181b 30%
.demo {
background: radial-gradient(circle,
#f43f5e 30%, #18181b 30%);
}dwie plamy światła
.demo {
background:
radial-gradient(at 20% 30%, #7c3aed, transparent 55%),
radial-gradient(at 80% 70%, #0ea5e9, transparent 55%),
#18181b;
}repeating-radial-gradient()
.demo {
background: repeating-radial-gradient(circle,
#7c3aed 0 8px, #18181b 8px 16px);
}Więcej przykładów
#.photo {
background:
radial-gradient(ellipse, transparent 35%, rgb(0 0 0 / 0.85)),
url("/collections/covers/programowanie-dla-dzieci.webp") center / cover;
}<div class="photo" style="height: 200px; border-radius: 14px;"></div>Środek zdjęcia zostaje jasny, a brzegi ciemnieją. Winieta kieruje wzrok na środek kadru.
Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Do miękkich świateł dawaj jako ostatni kolor
transparenti nakładaj kilka gradientów w jednymbackground. - Okrąg o stałej wielkości zapiszesz jako
circle 80px. Przycirclerozmiar musi być długością, a procenty są dozwolone tylko przyellipse. - Pod gradientami podaj jako ostatnią warstwę zwykły kolor, np.
…, #111114. Wypełni miejsca, w których gradienty są przezroczyste.
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.
- 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.
- background-imageUstawia obraz lub gradient jako tło elementu.
- backgroundSkrót ustawiający wszystkie właściwości tła w jednej deklaracji.
- mask-imageUżywa obrazu lub gradientu jako maski przezroczystości elementu.
Widzisz błąd albo brakuje przykładu? Napisz do nas.