console
<html>
<body>
<h1>Birthstone</h1>
<div class="container">
<div class="bottle">
<div class="shadow a"></div>
<div class="box a">Garnet  
<div class="bobble"></div>
<h2>1</h2>
</div>
</div>
<div class="bottle">
<div class="shadow b"></div>
<div class="box b">Amethyst  
<div class="bobble"></div>
<h2>2</h2>
</div>
</div>
<div class="bottle">
<div class="shadow c"></div>
<div class="box c">Aquamarine  
<div class="bobble"></div>
<h2>3</h2>
</div>
</div>
<div class="bottle">
<div class="shadow d"></div>
<div class="box d">Diamond  
<div class="bobble"></div>
<h2>4</h2>
</div>
</div>
<div class="bottle">
<div class="shadow e"></div>
<div class="box e">Emerald  
<div class="bobble"></div>
<h2>5</h2>
</div>
</div>
<div class="bottle">
<div class="shadow f"></div>
<div class="box f">Alexandrite  
<div class="bobble"></div>
<h2>6</h2>
</div>
</div>
<div class="bottle">
<div class="shadow g"></div>
<div class="box g">Ruby  
<div class="bobble"></div>
<h2>7</h2>
</div>
</div>
<div class="bottle">
<div class="shadow h"></div>
<div class="box h">Peridot  
<div class="bobble"></div>
<h2>8</h2>
</div>
</div>
<div class="bottle">
<div class="shadow i"></div>
<div class="box i">Sapphire  
<div class="bobble"></div>
<h2>9</h2>
</div>
</div>
<div class="bottle">
<div class="shadow j"></div>
<div class="box j">Tourmaline  
<div class="bobble"></div>
<h2>10</h2>
</div>
</div>
<div class="bottle">
<div class="shadow k"></div>
<div class="box k">Topaz  
<div class="bobble"></div>
<h2>11</h2>
</div>
</div>
<div class="bottle">
<div class="shadow l"></div>
<div class="box l">Turquoise  
<div class="bobble"></div>
<h2>12</h2>
</div>
</div>
</div>
</body>
</html>
$bg1: #bbeddd;
$bg2: #333333;
$shadow: rgba(0, 0, 0, 0.3);
$bobble: rgba(255, 255, 255, 0.5);
$back: #e0f6ef;
$bottle: #80ab9d;
@import url("https://fonts.googleapis.com/css2?family=Baloo+2:wght@600&display=swap");
* {
font-family: "Baloo 2", cursive;
}
body {
width: 100%;
height: 100%;
overflow-x: hidden;
background:$bg2;
}
h1 {
color: $back;
text-align: center;
padding: 1vh;
z-index: 10;
}
.container {
max-width: 1010px;
margin: auto;
position: realtive;
z-index: 10;
}
h2 {
position: absolute;
top: 72%;
color: $bobble;
z-index: 20;
font-size: 30px;
writing-mode: horizontal-tb;
}
.shadow {
position: relative;
width: 70px;
height: 10px;
background: $back;
margin: 5px auto;
margin-bottom: 0;
padding: 0;
top: 0%;
left: 0%;
border-radius: 30px;
&:before {
content: "";
position: absolute;
top: 3200%;
left: 0;
background: $shadow;
width: 50px;
height: 10px;
margin: 10px;
border-radius: 50%;
}
}
.bottle {
display: inline-block;
margin-top: 100px;
}
.box {
position: relative;
width: 60px;
height: 300px;
margin: 10px;
margin-top: 0;
padding: 0;
border-radius: 0 0 60px 60px;
overflow: hidden;
color: $bobble;
font-size: 14px;
text-align: right;
writing-mode: vertical-rl;
&::after {
content: "";
position: absolute;
bottom: 90%;
left: 55%;
background: $back;
width: 370px;
height: 290px;
border-radius: 30%;
box-sizing: border-box;
transform: translateX(-50%) rotate(0);
animation: wave 10s linear infinite;
}
&::before {
content: "";
position: absolute;
bottom: 90%;
left: 55%;
background: $bobble;
width: 470px;
height: 390px;
border-radius: 50%;
box-sizing: border-box;
transform: translateX(-50%) rotate(0);
animation: wave 6s linear infinite -5s;
}
}
.bobble {
position: absolute;
background: $bobble;
top: 50%;
left: -10%;
width: 20px;
height: 5px;
border-radius: 10px;
&::before {
content: "";
position: absolute;
background: $bobble;
left: 0;
top: 800%;
width: 20px;
height: 5px;
border-radius: 10px;
}
&::after {
content: "";
position: absolute;
background: $bobble;
left: 0;
top: -800%;
width: 20px;
height: 5px;
border-radius: 10px;
}
}
.box.a {
background: linear-gradient(107deg, #ba2913, #f0bcb4);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.a:hover{
background: linear-gradient(107deg, #ba2913, #f0bcb4);
}
.box.b {
background: linear-gradient(107deg, #3c1f69, #cab7e8);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.b:hover {
background: linear-gradient(107deg, #3c1f69, #cab7e8);
}
.box.c {
background: linear-gradient(107deg, #6bbcd1, #c4ebf5);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.c:hover {
background: linear-gradient(107deg, #6bbcd1, #c4ebf5);
}
.box.d {
background: linear-gradient(107deg, #657370, #e4f7f4);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.d:hover {
background: linear-gradient(107deg, #657370, #e4f7f4);
}
.box.e {
background: linear-gradient(107deg, #27a342, #b2edbf);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.e:hover {
background: linear-gradient(107deg, #27a342, #b2edbf);
}
.box.f {
background: linear-gradient(107deg, #b0288e, #f0c7e6);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.f:hover {
background: linear-gradient(107deg, #b0288e, #f0c7e6);
}
.box.g {
background: linear-gradient(107deg, #f54c4c, #d79797);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.g:hover {
background: linear-gradient(107deg, #f54c4c, #d79797);
}
.box.h {
background: linear-gradient(107deg, #58912f, #ccedb4);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.h:hover {
background: linear-gradient(107deg, #58912f, #ccedb4);
}
.box.i {
background: linear-gradient(107deg, #233878, #ccd1e0);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.i:hover {
background: linear-gradient(107deg, #233878, #ccd1e0);
}
.box.j {
background: linear-gradient(107deg, #b02839, #ffdee2);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.j:hover {
background: linear-gradient(107deg, #b02839, #ffdee2);
}
.box.k {
background: linear-gradient(107deg, #c4ba2d, #f0edc2);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.k:hover {
background: linear-gradient(107deg, #c4ba2d, #f0edc2);
}
.box.l {
background: linear-gradient(107deg, #1f8c71, #beede1);
background-size: 600% 600%;
animation: GradientBackground 5s ease infinite;
}
.box.l:hover {
background: linear-gradient(107deg, #1f8c71, #beede1);
}
@keyframes wave {
50% {
transform: reanslatex(-50%) rotate(0deg);
}
100% {
transform: translatex(-50%) rotate(360deg);
}
}
@keyframes GradientBackground {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}