Раскрывающийся цветок на css

Необыкновенно красивый пульсирующий цветок увидела на сайте https://atuin.ru. Украшение отлично установилось на блоге Блогспот и как гаджет, и в статье как анимированная картинка. 
Эффект сделан на CSS.
Цветок можно использовать для поздравления с каким-либо торжеством, добавив к нему текст. Либо установить для украшения как гаджет или добавить в статью.
Выглядит изображение так:
цветок
Вживую посмотреть на цветок можно в визуальном редакторе, вставив код в первое окошко.

Код цветка

<div class="flower"> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> <div class="x"></div> </div> <style> .flower { display: grid; font-size: 0.3em; height: 110em; place-items: center; } .x { grid-row: 1/-1; grid-column: 1/-1; border-radius: 12px; animation: ease 2s alternate infinite; } .x:nth-of-type(1) { box-shadow: 0 0 0.5em rgba(255,255,255,0.1); border-radius: 1.2em; width: 4em; height: 4em; background: hsl(270,60%,98%); animation-name: x-1; animation-delay: 80ms; transform: rotate(36deg); z-index: 99; } @keyframes x-1 { to { transform: rotate(36deg) scale(0.6); } } .x:nth-of-type(2) { box-shadow: 0 0 1em rgba(255,255,255,0.1); border-radius: 1.4em; width: 8em; height: 8em; background: hsl(278,52%,96%); animation-name: x-2; animation-delay: 160ms; transform: rotate(72deg); z-index: 98; } @keyframes x-2 { to { transform: rotate(72deg) scale(0.6); } } .x:nth-of-type(3) { box-shadow: 0 0 1.5em rgba(255,255,255,0.1); border-radius: 1.6em; width: 12em; height: 12em; background: hsl(275,55%,94%); animation-name: x-3; animation-delay: 240ms; transform: rotate(108deg); z-index: 97; } @keyframes x-3 { to { transform: rotate(108deg) scale(0.6); } } .x:nth-of-type(4) { box-shadow: 0 0 2em rgba(255,255,255,0.1); border-radius: 1.8em; width: 16em; height: 16em; background: hsl(277,56%,92%); animation-name: x-4; animation-delay: 320ms; transform: rotate(144deg); z-index: 96; } @keyframes x-4 { to { transform: rotate(144deg) scale(0.6); } } .x:nth-of-type(5) { box-shadow: 0 0 2.5em rgba(255,255,255,0.1); border-radius: 2em; width: 20em; height: 20em; background: hsl(277,57%,90%); animation-name: x-5; animation-delay: 400ms; transform: rotate(180deg); z-index: 95; } @keyframes x-5 { to { transform: rotate(180deg) scale(0.6); } } .x:nth-of-type(6) { box-shadow: 0 0 3em rgba(255,255,255,0.1); border-radius: 2.2em; width: 24em; height: 24em; background: hsl(278,56%,86%); animation-name: x-6; animation-delay: 480ms; transform: rotate(216deg); z-index: 94; } @keyframes x-6 { to { transform: rotate(216deg) scale(0.6); } } .x:nth-of-type(7) { box-shadow: 0 0 3.5em rgba(255,255,255,0.1); border-radius: 2.4em; width: 28em; height: 28em; background: hsl(277,56%,84%); animation-name: x-7; animation-delay: 560ms; transform: rotate(252deg); z-index: 93; } @keyframes x-7 { to { transform: rotate(252deg) scale(0.6); } } .x:nth-of-type(8) { box-shadow: 0 0 4em rgba(255,255,255,0.1); border-radius: 2.6em; width: 32em; height: 32em; background: hsl(276,57%,80%); animation-name: x-8; animation-delay: 640ms; transform: rotate(288deg); z-index: 92; } @keyframes x-8 { to { transform: rotate(288deg) scale(0.6); } } .x:nth-of-type(9) { box-shadow: 0 0 4.5em rgba(255,255,255,0.1); border-radius: 2.8em; width: 36em; height: 36em; background: hsl(277,56%,76%); animation-name: x-9; animation-delay: 720ms; transform: rotate(324deg); z-index: 91; } @keyframes x-9 { to { transform: rotate(324deg) scale(0.6); } } .x:nth-of-type(10) { box-shadow: 0 0 5em rgba(255,255,255,0.1); border-radius: 3em; width: 40em; height: 40em; background: hsl(277,57%,72%); animation-name: x-10; animation-delay: 800ms; transform: rotate(360deg); z-index: 90; } @keyframes x-10 { to { transform: rotate(360deg) scale(0.6); } } .x:nth-of-type(11) { box-shadow: 0 0 5.5em rgba(255,255,255,0.1); border-radius: 3.2em; width: 44em; height: 44em; background: hsl(277,56%,66%); animation-name: x-11; animation-delay: 880ms; transform: rotate(396deg); z-index: 89; } @keyframes x-11 { to { transform: rotate(396deg) scale(0.6); } } .x:nth-of-type(12) { box-shadow: 0 0 6em rgba(255,255,255,0.1); border-radius: 3.4em; width: 48em; height: 48em; background: hsl(277,57%,62%); animation-name: x-12; animation-delay: 960ms; transform: rotate(432deg); z-index: 88; } @keyframes x-12 { to { transform: rotate(432deg) scale(0.6); } } .x:nth-of-type(13) { box-shadow: 0 0 6.5em rgba(255,255,255,0.1); border-radius: 3.6em; width: 52em; height: 52em; background: hsl(277,56%,56%); animation-name: x-13; animation-delay: 1040ms; transform: rotate(468deg); z-index: 87; } @keyframes x-13 { to { transform: rotate(468deg) scale(0.6); } } .x:nth-of-type(14) { box-shadow: 0 0 7em rgba(255,255,255,0.1); border-radius: 3.8em; width: 56em; height: 56em; background: hsl(277,57%,50%); animation-name: x-14; animation-delay: 1120ms; transform: rotate(504deg); z-index: 86; } @keyframes x-14 { to { transform: rotate(504deg) scale(0.6); } } .x:nth-of-type(15) { box-shadow: 0 0 7.5em rgba(255,255,255,0.1); border-radius: 4em; width: 60em; height: 60em; background: hsl(277,56%,42%); animation-name: x-15; animation-delay: 1200ms; transform: rotate(540deg); z-index: 85; } @keyframes x-15 { to { transform: rotate(540deg) scale(0.6); } } .x:nth-of-type(16) { box-shadow: 0 0 8em rgba(255,255,255,0.1); border-radius: 4.2em; width: 64em; height: 64em; background: hsl(277,56%,36%); animation-name: x-16; animation-delay: 1280ms; transform: rotate(576deg); z-index: 84; } @keyframes x-16 { to { transform: rotate(576deg) scale(0.6); } } .x:nth-of-type(17) { box-shadow: 0 0 8.5em rgba(255,255,255,0.1); border-radius: 4.4em; width: 68em; height: 68em; background: hsl(277,56%,26%); animation-name: x-17; animation-delay: 1360ms; transform: rotate(612deg); z-index: 83; } @keyframes x-17 { to { transform: rotate(612deg) scale(0.6); } } .x:nth-of-type(18) { box-shadow: 0 0 9em rgba(255,255,255,0.1); border-radius: 4.6em; width: 72em; height: 72em; background: hsl(277,56%,20%); animation-name: x-18; animation-delay: 1440ms; transform: rotate(648deg); z-index: 82; } @keyframes x-18 { to { transform: rotate(648deg) scale(0.6); } } .x:nth-of-type(19) { box-shadow: 0 0 9.5em rgba(255,255,255,0.1); border-radius: 4.8em; width: 76em; height: 76em; background: hsl(277,56%,16%); animation-name: x-19; animation-delay: 1520ms; transform: rotate(684deg); z-index: 81; } @keyframes x-19 { to { transform: rotate(684deg) scale(0.6); } } .x:nth-of-type(20) { box-shadow: 0 0 10em rgba(255,255,255,0.1); border-radius: 5em; width: 80em; height: 80em; background: hsl(279,56%,10%); animation-name: x-20; animation-delay: 1600ms; transform: rotate(720deg); z-index: 80; } @keyframes x-20 { to { transform: rotate(720deg) scale(0.6); } } </style>
Поменять в коде можно размер цветка — выделила синим цветом.
Цвет можно изменить, заменив параметры background: hsl(208,100%,...%) — выделила в коде синим. 
Менять цвета лучше по оттенкам в генераторе оттенков hsl:
https://atuin.ru/tools/shades/
Располагать тона можно от светлого к тёмному или наоборот.

Ваши комментарии:

Комментарии со спамом удаляются.