CSS en web

CSS radial gradient: vormen, formaten en posities

radial-gradient() tekent kleur vanuit een punt naar buiten. Hier staat elk onderdeel, met live voorbeelden, plus de laagtrucs achter zachte gloeden, spotlights en vignetten.

GradientlyGeverifieerd Gradiently-account··5 min lezen
Cover: Cinder Ribbon · GR·3GXC·C6

De korte versie

  • Een CSS radial gradient spreidt kleur vanuit een middelpunt naar buiten en schrijf je met de functie radial-gradient(), overal waar CSS een afbeelding accepteert.
  • Standaard is een radial gradient een ellips, gecentreerd in het vak, met een formaat dat tot de verste hoek reikt.
  • De formaatwoorden closest-side, closest-corner, farthest-side en farthest-corner bepalen waar de laatste kleurstop landt.
  • Het woord at verplaatst het middelpunt, bijvoorbeeld at 20% 30%, en posities werken zoals background-position.
  • Meerdere radial gradients die naar transparant vervagen op elkaar leggen is de standaardmanier om in CSS zachte gloeden en mesh-achtige achtergronden te bouwen.
Op deze pagina

Een CSS radial gradient laat kleur vanuit een punt naar buiten overlopen, zoals licht dat uit een lamp straalt. Je schrijft hem met radial-gradient() en gebruikt hem overal waar CSS een afbeelding neemt, meestal background-image. Zonder opties tekent hij een ellips midden in het vak die de verste hoek raakt: radial-gradient(#fef3c7, #b45309) geeft een bleek midden dat uitgloeit naar diep amber.

Amberkleurige gloed, alle standaardwaardenradial-gradient(#fef3c7, #f59e0b 45%, #78350f)
Een ellips, gecentreerd, met het formaat tot de verste hoek. Dat krijg je als je alleen kleuren opgeeft.

Al het andere in de functie verandert een van drie dingen: de vorm, het formaat en de positie. Beheers je die, dan tekent dezelfde functie gloeden, spotlights, vignetten, zonnestralen en de kleurpoelen achter een mesh gradient in CSS. Voor de ontwerpkant van radiale overlopen staat er een aanvullende gids over radiale kleurverlopen.

De syntaxis van radial-gradient()

css
/* shape  size          position        stops */
radial-gradient(circle closest-side at 30% 40%, #fde047, #ea580c 60%, #1c1917)

/* everything before the first comma is optional */
radial-gradient(#fde047, #ea580c)
Vorm en formaat kunnen in elke volgorde staan. De positie volgt altijd op het woord at.
OnderdeelWaardenStandaard
Vormcircle of ellipseellipse
Formaateen formaatwoord, één lengte voor een cirkel, of twee lengtes of percentages voor een ellipsfarthest-corner
Positieat gevolgd door alles wat background-position accepteertat center
Interpolatiein oklab, in oklch en andere kleurruimtessRGB voor hexkleuren
Kleurstopstwee of meer kleuren met optionele positiesverplicht
De onderdelen van radial-gradient(). Alleen de kleurstops zijn verplicht.

Eén regel verrast mensen: het formaat van een cirkel moet een lengte zijn, zoals 200px, nooit een percentage, omdat een percentage van een rechthoek geen enkele straal heeft. Ellipsen accepteren wel percentages, zoals in ellipse 60% 40%. De MDN-referentie voor radial-gradient() geeft de volledige grammatica.

Cirkel of ellips

Een ellips rekt mee met het vak: op een brede banner is de gloed breed en op een hoge story is hij hoog. Een cirkel blijft rond, wat het vak ook doet. Gebruik ellipsen voor achtergronden die hun container gelijkmatig moeten vullen, en cirkels voor alles wat als lichtbron, planeet of gloed van een knop moet lezen.

Dezelfde stops van munt naar bosgroen. Op een brede tegel spreidt de ellips zich zijwaarts uit en de cirkel niet.

Formaatwoorden: van closest-side tot farthest-corner

Het formaat bepaalt waar de laatste kleurstop landt, en dus waar de eindvorm van de gradient zit. De vier woorden meten vanaf het middelpunt tot de dichtstbijzijnde of verste zijde of hoek van het vak. Ze zien er alleen anders uit als het middelpunt niet in het midden ligt, dus alle voorbeelden hieronder beginnen op 30% 40%.

Eén zon, vier formaten. closest-side eindigt bij de dichtstbijzijnde rand; farthest-corner, de standaard, reikt tot de verste hoek.

In de praktijk past closest-side bij afgebakende vormen zoals stippen en badges, omdat de kleur nooit over de dichtstbijzijnde rand loopt. farthest-corner past bij achtergronden, omdat de overloop het hele vak bedekt. Heb je exacte controle nodig, geef dan een lengte: circle 180px at 50% 0 is een gloed van 180 pixels die aan de bovenrand hangt.

Positioneren met at

Het woord at plaatst het middelpunt met dezelfde waarden als background-position: woorden zoals at top right, percentages zoals at 20% 80% of lengtes zoals at 40px 60px. Het middelpunt kan zelfs buiten het vak liggen, zoals in at 50% 120%, wat een horizongloed geeft die onder de onderrand oprijst.

Het middelpunt verplaatsen verandert de sfeer meer dan andere kleuren.

Gelaagde radiale gloeden

Het nuttigste radiale patroon is een stapel gradients in één background-image, elk vervagend naar transparent, boven een egale donkere kleur. Elke laag is een poel licht op een eigen plek. Omdat de eerste laag bovenop wordt geschilderd, zet je de helderste, kleinste gloed eerst.

css
.glow {
  background-color: #0b0a1a;
  background-image:
    radial-gradient(circle at 20% 25%, rgb(124 58 237 / 0.55), transparent 45%),
    radial-gradient(circle at 80% 30%, rgb(236 72 153 / 0.45), transparent 40%),
    radial-gradient(ellipse at 50% 110%, rgb(56 189 248 / 0.4), transparent 60%);
}
Drie poelen violet, roze en hemelblauw op een bijna zwarte ondergrond. Verander één positie en de hele compositie verschuift.

Twee andere patronen dekken de meeste overige klussen. Een vignet maakt de randen donkerder: radial-gradient(ellipse, transparent 55%, rgb(0 0 0 / 0.55)) over een foto gelegd. Een spotlight volgt de aanwijzer als je de positie uit custom properties haalt, zoals radial-gradient(circle 240px at var(--x) var(--y), rgb(255 255 255 / 0.15), transparent), met een paar regels JavaScript die --x en --y zetten bij pointermove.

Herhalende radiale gradients

repeating-radial-gradient() herhaalt zijn stops naar buiten tot het vak vol is, zodat een paar harde stops ringen wordt. Gebruik lengtes voor de stopposities zodat de ringbreedte gelijk blijft. Het is de basis van rimpel-, schietschijf- en halftoonachtige texturen, en de gids over CSS-patronen heeft meer.

Harde stops op vaste lengtes maken van een radial gradient ringen.

Vermijd

  • Percentages voor het formaat van een cirkel, die ongeldig zijn
  • Heldere gloeden die op een harde rand eindigen omdat de laatste stop dekkend is
  • Elke gloed centreren op 50% 50%
  • Vijf overlappende gloeden van gelijke sterkte

Doe

  • Lengtes voor cirkels, percentages voor ellipsen
  • Laat elke gloed vervagen naar transparent
  • Plaats gloeden uit het midden, bij hoeken of onder de rand
  • Eén dominante gloed en een of twee rustigere

Vragen die mensen stellen

Hoe maak ik een cirkelvormig kleurverloop in CSS?

Gebruik radial-gradient(circle, kleur1, kleur2). Met circle blijft de vorm rond; zonder krijg je een ellips die met het vak meerekt.

Hoe verplaats ik het middelpunt van een radial gradient?

Voeg at en een positie toe na de vorm en het formaat, bijvoorbeeld radial-gradient(circle at 20% 30%, #c4b5fd, #1e1b4b). Posities werken zoals background-position.

Wat betekent farthest-corner?

Het bepaalt het formaat zo dat de laatste kleurstop de hoek van het vak bereikt die het verst van het middelpunt ligt. Het is het standaardformaat.

Kan een cirkelvormige radial gradient een formaat in procenten hebben?

Nee. Een cirkel heeft één lengte nodig, zoals 200px. Ellipsen kunnen twee percentages gebruiken, zoals ellipse 60% 40%.

Hoe maak ik een glow-effect met CSS-gradients?

Leg een of meer radial-gradient()-waarden op elkaar die van een halfdoorzichtige kleur naar transparent vervagen, boven een donkere background-color.

Deel deze gids

Geschreven door GradientlyGeverifieerd Gradiently-account

Het team achter Gradiently, een ontwerptool rond Marks: levende kleurverlopen die alles wat je ontwerpt op jou laten lijken.

Bekijk ons profiel