0

CSS Animētu Gradienta Apmaļu Ģenerators

Ģenerējiet vienmērīgi rotējošu varavīksnes gradienta apmali, kas pareizi ievēro border-radius, veidotu ar @property, conic-gradient un mask-composite — nokopējiet īsto CSS un vērojiet tā griešanos dzīvajā priekšskatījumā.

🔒 Pilnībā apstrādāts jūsu pārlūkprogrammā — nekas, ko jūs šeit ievadāt, nekad netiek augšupielādēts.

4px
20px
3s
Apstrādā... 0%

Rezultāts

Rotējoša varavīksnes apmale šķiet vienkārša līdz brīdim, kad mēģināt to uzbūvēt CSS: leņķa animēšana iekš conic-gradient() ar vienkāršu pielāgotu mainīgo nedara neko jēgpilnu, jo pārlūkprogramma nezina, ka vērtība ir leņķis, un nespēj interpolēt starp 0deg un 360deg — tā vienkārši pārlec. Šis ģenerators izmanto īsto risinājumu — CSS Properties and Values API: `@property --border-angle { syntax: '<angle>'; initial-value: 0deg; inherits: false; }` pasaka pārlūkprogrammai, kāda tieši veida vērtība ir pielāgotajam mainīgajam, un tieši tas atslēdz vienmērīgu, GPU draudzīgu interpolāciju caur @keyframes norādi.

Pats riņķis ir ::before pseidoelements, kas izmērīts lielāks par lodziņu (ar negatīvu atkāpi, kas vienāda ar apmales platumu), un tā fons ir `conic-gradient(from var(--border-angle), ...)`, kas noslēdzas pie pirmās krāsas, lai pārejai nebūtu redzamas šuves. Tad maska veic īsto formēšanas darbu: `mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude;` patur tikai riņķa formas atšķirību starp padding-box un content-box, visur citur atmetot viengabalaino gradienta taisnstūri. Safari vecākā `-webkit-mask-composite: xor` veic identisku operāciju un tiek piegādāta līdzās standarta īpašībai, tāpēc efekts attēlojas konsekventi, nevis klusām neizdodas kādā dzinī.

border-radius atbalsts nav pēdējā brīdī uzsprausta piedeva — pseidoelementa `border-radius: inherit` nozīmē, ka jebkurš rādiuss, kādu iestatāt lodziņam, tiek automātiski pārnests uz riņķi, tādējādi apaļīga poga vai noapaļota karte saņem noapaļotu mirdzošu apmali, nevis taisnstūra stūrus, kas izspiežas ārā no izliektajām malām. Pārbaudiet to dzīvajā režīmā: velciet rādiusa slīdni no asa taisnstūra līdz pilnīgai ovālai formai un vērojiet, kā riņķis seko formai ik uz soļa — tā ir detaļa, kas atdala īstu šī paņēmiena realizāciju no viltus ekrānuzņēmuma.

Viss pārējais lapā tieši korelē ar ģenerēto kodu: platuma slīdnis ir riņķa biezums un pseidoelementa atkāpe/iekšējā atkāpe, ilguma slīdnis ir @keyframes animation-duration, virziena pārslēgs vienkārši apvērš atslēgas kadra beigu leņķa zīmi (+360deg vai -360deg), un katrs krāsas pieturas punkts ir ar komatu atdalīts ieraksts conic-gradient() izsaukumā. Viss darbojas jūsu pārlūkprogrammā bez attēliem, bez JavaScript vadītas animācijas cilpas un bez ārējiem pakalpojumiem — nokopējiet CSS bloku, un tas turpinās griezties visur, kur to ielīmēsiet.