flower power
Code
HTML
<div id="projContainer">
<div class="title">flower power</div>
<div class="flower">
<div class="center"></div>
<div class="petals">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="center"></div>
<div class="petals">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="center"></div>
<div class="petals">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="center"></div>
<div class="petals">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="center"></div>
<div class="petals">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="center"></div>
<div class="petals">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="center"></div>
<div class="petals">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="center"></div>
<div class="petals">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="m-center"></div>
<div class="mini">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="m-center"></div>
<div class="mini">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="m-center"></div>
<div class="mini">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="m-center"></div>
<div class="mini">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="m-center"></div>
<div class="mini">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="m-center"></div>
<div class="mini">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
<div class="flower">
<div class="m-center"></div>
<div class="mini">
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
<div class="petal"></div>
</div>
</div>
</div>
CSS
:root {
--deg: 30deg;
--unitScale: .05;
--posScale: 3vw;
--adjVer: 0vw;
--adjHor: 0vw;
--titleFont: 20vw;
}
#projContainer {
width: calc(var(--baseUnit)*30);
height: calc(var(--baseUnit)*30);
border-radius: 50%;
border: 5vw #70AD7C solid;
position: relative;
box-shadow: inset 0px 0px 0px calc(var(--baseUnit)*5) #87D196;
}
.title {
position: absolute;
font-family: 'Pacifico', cursive;
font-size: var(--titleFont);
color: rgba(255, 255, 255, 1);
line-height: 85%;
z-index: 10;
text-align: center;
user-select: none;
color: #eee;
text-shadow:
4px 3px 0px #555,
3px 0px 0px #555,
2px 0px 0px #777,
1px 0px 0px #777,
5px 5px 15px rgba(0,0,0, .8),
0px 4px 0px #555,
0px 3px 0px #555,
0px 2px 0px #777,
0px 1px 0px #666;
width: 100%;
height: 100%;
display: flex;
align-items: center;
}
.flower, .center, .petals, .petal, .petal::after, .mini, .m-center {
position: absolute;
}
.petal {
transform-origin: 0% 100%;
box-shadow: 0px 0px 10px rgba(0, 0, 0, .4);
}
.petal:nth-of-type(2) {transform: rotate(calc(var(--deg)*1));}
.petal:nth-of-type(3) {transform: rotate(calc(var(--deg)*2));}
.petal:nth-of-type(4) {transform: rotate(calc(var(--deg)*3));}
.petal:nth-of-type(5) {transform: rotate(calc(var(--deg)*4));}
.petal:nth-of-type(6) {transform: rotate(calc(var(--deg)*5));}
.petal:nth-of-type(7) {transform: rotate(calc(var(--deg)*6));}
.petal:nth-of-type(8) {transform: rotate(calc(var(--deg)*7));}
.petal:nth-of-type(9) {transform: rotate(calc(var(--deg)*8));}
.petal:nth-of-type(10) {transform: rotate(calc(var(--deg)*9));}
.petal:nth-of-type(11) {transform: rotate(calc(var(--deg)*10));}
.petal:nth-of-type(12) {transform: rotate(calc(var(--deg)*11));}
.petal:nth-of-type(odd) {z-index: 1;}
.petal:nth-of-type(even) {z-index: 2;}
.flower > .center {
box-shadow: 0px 0px 10px rgba(0, 0, 0, .4);
}
/*FLOWER1*/
.flower:nth-child(2) {
top: calc(var(--posScale)*1 + var(--adjVer));
left: calc(var(--posScale)*3 + var(--adjHor));
transform: scale(calc(var(--unitScale)*8));
}
.flower:nth-child(2) > .center,
.flower:nth-child(6) > .center {
width: 50px;
height: 50px;
top: 75px;
left: -25px;
background-color: #F8D095;
border-radius: 50%;
z-index: 3;
border: 2px #DBA042 solid;
}
.flower:nth-child(2) > .petals > .petal,
.flower:nth-child(6) > .petals > .petal,
.flower:nth-child(10) > .mini > .petal {
width: 100px;
height: 100px;
border-radius: 100% 0%;
background-color: #F67280;
border: 2px #A34C55 solid;
}
.flower:nth-child(2) > .petals > .petal::after,
.flower:nth-child(6) > .petals > .petal::after {
content: "";
width: 0px;
height: 90px;
border-right: 2px #A34C55 solid;
transform: rotate(45deg);
transform-origin: 0% 100%;
top: 10px;
}
/*FLOWER2*/
.flower:nth-child(3) {
top: calc(var(--posScale)*18 + var(--adjVer));
left: calc(var(--posScale)*20 + var(--adjHor));
transform: scale(calc(var(--unitScale)*9)) rotate(-50deg);
}
.flower:nth-child(3) > .center,
.flower:nth-child(7) > .center {
width: 80px;
height: 80px;
background-color: #F8C371;
border-radius: 50%;
left: -45px;
top: 60px;
z-index: 3;
border: 5px #f4970b solid;
}
.flower:nth-child(3) > .petals > .petal,
.flower:nth-child(7) > .petals > .petal,
.flower:nth-child(11) > .mini > .petal,
.flower:nth-child(13) > .mini > .petal,
.flower:nth-child(16) > .mini > .petal {
width: 100px;
height: 100px;
border-radius: 70% 0%;
background-color: #C06C84;
border: 2px #7F4858 solid;
}
.flower:nth-child(3) > .petals > .petal::after,
.flower:nth-child(7) > .petals > .petal::after {
content: "";
width: 0px;
height: 110px;
border-right: 2px #7F4858 solid;
transform: rotate(45deg);
transform-origin: 0% 100%;
top: -11px;
}
/*FLOWER3*/
.flower:nth-child(4) {
top: calc(var(--posScale)*3 + var(--adjVer));
left: calc(var(--posScale)*21 + var(--adjHor));
transform: scale(calc(var(--unitScale)*9)) rotate(-10deg);
z-index: 4;
}
.flower:nth-child(4) > .center,
.flower:nth-child(8) > .center {
width: 40px;
height: 40px;
background-color: #FFD46F;
border-radius: 50%;
left: -20px;
top: 80px;
z-index: 3;
border: 2px #D1AE5B solid;
}
.flower:nth-child(4) > .petals > .petal,
.flower:nth-child(8) > .petals > .petal,
.flower:nth-child(14) > .mini > .petal,
.flower:nth-child(15) > .mini > .petal {
width: 100px;
height: 100px;
border-radius: 50% 0% 100% 0% /
100% 0% 50% 0%;
background-color: #F8B195;
border: 2px #BA8570 solid;
}
.flower:nth-child(4) > .petals > .petal::after,
.flower:nth-child(8) > .petals > .petal::after {
content: "";
width: 0px;
height: 70px;
border-right: 2px #BA8570 solid;
transform: rotate(45deg);
transform-origin: 0% 100%;
top: 30px;
}
/*FLOWER4*/
.flower:nth-child(5) {
top: calc(var(--posScale)*9 + var(--adjVer));
left: calc(var(--posScale)*1 + var(--adjHor));
transform: scale(calc(var(--unitScale)*8)) rotate(-10deg);
z-index: 5;
}
.flower:nth-child(5) > .center,
.flower:nth-child(9) > .center {
width: 60px;
height: 60px;
background-color: #F7C916;
border-radius: 50%;
left: -30px;
top: 70px;
z-index: 3;
border: 2px #D1A810 solid;
}
.flower:nth-child(5) > .petals > .petal,
.flower:nth-child(9) > .petals > .petal,
.flower:nth-child(12) > .mini > .petal {
width: 100px;
height: 100px;
border-radius: 50% 50% 100% 0% /
100% 50% 50% 0%;
background-color:#947DA8;
border: 2px #5E4F6B solid;
}
.flower:nth-child(5) > .petals > .petal::after,
.flower:nth-child(9) > .petals > .petal::after {
content: "";
width: 0px;
height: 55px;
border-right: 2px #5E4F6B solid;
transform: rotate(45deg);
transform-origin: 0% 100%;
top: 45px;
}
/*FLOWER5*/
.flower:nth-child(6) {
top: calc(var(--posScale)*11 + var(--adjVer));
left: calc(var(--posScale)*22 + var(--adjHor));
transform: scale(calc(var(--unitScale)*8)) rotate(-30deg);
z-index: 5;
}
/*FLOWER6*/
.flower:nth-child(7) {
top: calc(var(--posScale)*-1 + var(--adjVer));
left: calc(var(--posScale)*11 + var(--adjHor));
transform: scale(calc(var(--unitScale)*8.5)) rotate(-25deg);
z-index: 4;
}
/*FLOWER7*/
.flower:nth-child(8) {
top: calc(var(--posScale)*18 + var(--adjVer));
left: calc(var(--posScale)*7 + var(--adjHor));
transform: scale(calc(var(--unitScale)*9)) rotate(25deg);
z-index: 4;
}
/*FLOWER8*/
.flower:nth-child(9) {
top: calc(var(--posScale)*21 + var(--adjVer));
left: calc(var(--posScale)*13 + var(--adjHor));
transform: scale(calc(var(--unitScale)*8.5)) rotate(-20deg);
z-index: 1;
}
/*HALF PETALS*/
.flower:nth-child(5) > .petals > .petal:nth-of-type(odd),
.flower:nth-child(6) > .petals > .petal:nth-of-type(odd),
.flower:nth-child(7) > .petals > .petal:nth-of-type(odd),
.flower:nth-child(8) > .petals > .petal:nth-of-type(odd),
.flower:nth-child(10) > .mini > .petal:nth-of-type(odd),
.flower:nth-child(11) > .mini > .petal:nth-of-type(odd),
.flower:nth-child(12) > .mini > .petal:nth-of-type(odd),
.flower:nth-child(13) > .mini > .petal:nth-of-type(odd),
.flower:nth-child(14) > .mini > .petal:nth-of-type(odd),
.flower:nth-child(15) > .mini > .petal:nth-of-type(odd),
.flower:nth-child(16) > .mini > .petal:nth-of-type(odd) {
display: none;
}
/*FLOWERS MINI*/
.m-center {
width: 50px;
height: 50px;
background-color: #F7C916;
border-radius: 50%;
left: -27px;
top: 77px;
z-index: 3;
border: 2px #D1A810 solid;
}
.flower:nth-child(10) {
top: calc(var(--posScale)*21 + var(--adjVer));
left: calc(var(--posScale)*18 + var(--adjHor));
transform: scale(calc(var(--unitScale)*3)) rotate(-25deg);
z-index: 10;
}
.flower:nth-child(11) {
top: calc(var(--posScale)*16 + var(--adjVer));
left: calc(var(--posScale)*0 + var(--adjHor));
transform: scale(calc(var(--unitScale)*4)) rotate(-40deg);
z-index: 10;
}
.flower:nth-child(12) {
top: calc(var(--posScale)*0 + var(--adjVer));
left: calc(var(--posScale)*18 + var(--adjHor));
transform: scale(calc(var(--unitScale)*4)) rotate(-15deg);
z-index: 10;
}
.flower:nth-child(13) {
top: calc(var(--posScale)*9 + var(--adjVer));
left: calc(var(--posScale)*25 + var(--adjHor));
transform: scale(calc(var(--unitScale)*3.5)) rotate(-35deg);
z-index: 10;
}
.flower:nth-child(14) {
top: calc(var(--posScale)*0 + var(--adjVer));
left: calc(var(--posScale)*7 + var(--adjHor));
transform: scale(calc(var(--unitScale)*4)) rotate(-20deg);
z-index: 10;
}
.flower:nth-child(15) {
top: calc(var(--posScale)*24 + var(--adjVer));
left: calc(var(--posScale)*19 + var(--adjHor));
transform: scale(calc(var(--unitScale)*3.5)) rotate(-0deg);
z-index: 10;
}
.flower:nth-child(16) {
top: calc(var(--posScale)*24 + var(--adjVer));
left: calc(var(--posScale)*10 + var(--adjHor));
transform: scale(calc(var(--unitScale)*4)) rotate(30deg);
z-index: 10;
}
/*CSS Breakpoints*/
@media only screen and (min-width: 500px) {
:root {
--unitScale: .08;
--titleFont: 25vw;
}
}
@media only screen and (min-width: 800px) {
:root {
--titleFont: 17vw;
--baseUnit: 2vw;
--posScale: 2vw;
}
main article {
grid-column: 1 / span 2;
border: 3px solid red;
}
main section {
grid-column: 3 / 4;
border: 2px solid green;
display: flex;
flex-flow: column nowrap;
}
main section section:last-child {
flex: auto;
}
}
@media only screen and (min-width: 1000px) {
:root {
--adjVer: -3.7rem;
--adjHor: -3rem;
--unitScale: .09;
--titleFont: 8rem;
--baseUnit: 1rem;
--posScale: 1rem;
}
}