<div id="sample">
<div class="halloween">
<div class="hull">
<div class="hull-1"></div>
<div class="hull-2"></div>
<div class="hull-3"></div>
</div>
<div class="pumpkin">
<div class="pumpkin-item left-2"></div>
<div class="pumpkin-item left-1"></div>
<div class="pumpkin-item center"></div>
<div class="pumpkin-item right-1"></div>
<div class="pumpkin-item right-2"></div>
</div>
<div class="mark eye-r"></div>
<div class="mark eye-l"></div>
<div class="mark mouth"></div>
</div>
</div>
body {
display: flex;
justify-content: center;
align-items: center;
}
#sample{
--pumpkin-color: #f83;
--pumpkin-abyss-color: #fb5;
--hull-color: #363;
--mark-color: #333;
width: 300px;
height: 300px;
background-color: #999;
display: flex;
justify-content: center;
align-items: center;
}
.halloween {
display: grid;
grid-template-rows: 30px 160px;
position: relative;
}
/* ヘタ */
.hull {
justify-self: center;
z-index: 5;
display: grid;
}
.hull-1 {
clip-path: polygon(20% 5%, 0 100%, 100% 100%, 80% 0);
width: 50px;
height: 30px;
background-color: var(--hull-color);
justify-self: center;
margin-bottom: -10px;
}
.hull-2 {
border-radius: 50% / 100% 100% 0 0;
width: 70px;
height: 10px;
background-color: var(--hull-color);
}
.hull-3 {
border-radius: 50% / 0 0 100% 100%;
width: 70px;
height: 15px;
background-color: var(--hull-color);
}
/* カボチャ */
.pumpkin {
display: flex;
align-items: center;
}
.pumpkin-item {
border-radius: 50%;
background-color: var(--pumpkin-color);
border: 3px solid var(--pumpkin-abyss-color);
box-sizing: border-box;
}
.pumpkin-item.center {
height: 180px;
width: 120px;
z-index: 2;
margin-left: -60px;
margin-right: -60px;
}
.pumpkin-item.left-1,
.pumpkin-item.right-1 {
width: 100px;
height: 170px;
z-index: 1;
}
.pumpkin-item.left-2,
.pumpkin-item.right-2 {
width: 70px;
height: 150px;
z-index: 0;
}
.pumpkin-item.left-2 {
margin-right: -50px;
}
.pumpkin-item.right-2 {
margin-left: -50px;
}
/* 顔の模様 */
.mark {
position: absolute;
background-color: var(--mark-color);
z-index: 10;
}
.eye-r {
clip-path: polygon(0 0, 0 100%, 100% 100%);
border-radius: 30% 0 30% 50%;
width: 50px;
height: 50px;
top: 50px;
left: 50px;
}
.eye-l {
clip-path: polygon(100% 0, 0 100%, 100% 100%);
border-radius: 0 30% 50% 30%;
width: 50px;
height: 50px;
top: 50px;
right: 50px;
}
.mouth {
border-radius: 50% / 0 0 100% 100%;
width: 150px;
height: 50px;
top: 125px;
left: 50%;
transform: translate(-50%);
}
.mouth::before,
.mouth::after {
content: "";
position: absolute;
clip-path: polygon(0 0, 50% 100%, 100% 0);
width: 20px;
height: 20px;
background-color: var(--pumpkin-color);
}
.mouth::before {
top: 0px;
left: 30px;
}
.mouth::after {
top: 0px;
right: 30px;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.