アイキャッチ画像

CSSで鏡餅を作成してみた!!

CSSで鏡餅を作成してみました。作成方法を紹介していますので、良ければ参考にしてください。

当記事で作成する鏡餅の見た目は以下のようになります。

鏡餅の作成イメージ

手順1:みかんを準備します

みかんは、以下のように2つの部品で作成しています。

みかんの部品

みかんのHTMLは以下のようになります。

<!-- みかん -->
<div class="orange">
    <div class="orange-item-1"></div>
    <div class="orange-item-2"></div>
</div>

みかんのCSSは以下のようになります。

/* みかん */
.orange {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.orange-item-1 {
    background-color: var(--hull-color);
    clip-path: polygon(20% 5%, 0 100%, 100% 100%, 80% 0);
    width: 10px;
    height: 10px;
}

.orange-item-2 {
    background-color: var(--orange-color);
    width: 60px;
    height: 50px;
    border-radius: 25px;
}

手順2:餅を準備します

餅は、以下のように3つの部品で作成しています。

餅の部品

餅のHTMLは以下のようになります。

<!-- 餅 -->
<div class="rice-cake">
    <div class="rice-cake-item-1"></div>
    <div class="rice-cake-item-2"></div>
    <div class="rice-cake-item-3"></div>
</div>

餅のCSSは以下のようになります。

/* 餅 */
.rice-cake {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rice-cake-item-1,
.rice-cake-item-2,
.rice-cake-item-3 {
    background-color: var(--rice-cake-color);
    height: 50px;
    border-radius: 25px;
}

.rice-cake-item-1 {
    width: 150px;
}

.rice-cake-item-2 {
    width: 200px;
}

.rice-cake-item-3 {
    width: 250px;
}

手順3:四方紅を準備します

四方紅は、以下のように2つの部品で作成しています。

四方紅の部品

四方紅のHTMLは以下のようになります。一つのdivでリースの部品1と部品2を作成しています。

<div class="base">
    <!-- 四方紅 -->
    <div class="base-item-1"></div>

    <!-- 三方 -->
    <!-- 省略 -->

    <!-- 紙垂 -->
    <!-- 省略 -->
</div>

四方紅のCSSは以下のようになります。divで四方紅の部品1を作成できますが、四方紅の部品2は要素が足りないため作成できません。そのため、疑似要素(::before)を利用して四方紅の部品2を作成しています。

/* 三方、四方紅、紙垂 */
.base {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

/* 四方紅 */
.base-item-1 {
    position: absolute;
    clip-path: polygon(100% 0, 50% 100%, 0 0);
    background-color: var(--base-red-color);
    height: 70px;
    width: 300px;
}

.base-item-1::before {
    content: "";
    clip-path: polygon(100% 0, 50% 100%, 0 0);
    background-color: var(--base-white-color);
    height: 50px;
    width: 280px;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

手順4:三方を準備します

三方は、以下のように3つの部品で作成しています。

三方の部品

三方のHTMLは以下のようになります。

<div class="base">
    <!-- 四方紅 -->
    <!-- 省略 -->

    <!-- 三方 -->
    <div class="base-item-2"></div>
    <div class="base-item-3"></div>

    <!-- 紙垂 -->
    <!-- 省略 -->
</div>

三方のCSSは以下のようになります。三方の穴は、三方の下の疑似要素(::before)を利用して作成しています。

/* 三方 */
.base-item-2,
.base-item-3 {
    background-color: var(--base-color);
}

.base-item-2 {
    height: 30px;
    width: 280px;
}

.base-item-3 {
    height: 100px;
    width: 200px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.base-item-3::before {
    content: "";
    background-color: #333;
    height: 60px;
    width: 60px;
    border-radius: 50%;
}

手順5:紙垂を準備します

紙垂の部品は以下のようになります。

紙垂の部品

紙垂のHTMLは以下のようになります。

<div class="base">
    <!-- 四方紅 -->
    <!-- 省略 -->

    <!-- 三方 -->
    <!-- 省略 -->

    <!-- 紙垂 -->
    <div class="base-item-4"></div>
    <div class="base-item-5"></div>
    <div class="base-item-6"></div>
    <div class="base-item-7"></div>
    <div class="base-item-8"></div>
    <div class="base-item-9"></div>
</div>

紙垂のCSSは以下のようになります。

/* 紙垂 */
.base-item-4,
.base-item-5,
.base-item-6,
.base-item-7,
.base-item-8,
.base-item-9 {
    width: 35px;
    height: 35px;
    position: absolute;
}


.base-item-4,
.base-item-5,
.base-item-6 {
    transform: rotate(60deg);
}

.base-item-4,
.base-item-6,
.base-item-7,
.base-item-9 {
    background-color: var(--base-red-color);
}

.base-item-5,
.base-item-8 {
    background-color: var(--base-white-color);
}

.base-item-4 {
    top: 7px;
    left: 30px;
}

.base-item-5 {
    top: 52px;
    left: 15px;
}

.base-item-6 {
    top: 95px;
    left: 0px;
}

.base-item-7,
.base-item-8,
.base-item-9 {
    transform: rotate(-60deg);
}

.base-item-7 {
    top: 7px;
    right: 30px;
}

.base-item-8 {
    top: 52px;
    right: 15px;
}

.base-item-9 {
    top: 95px;
    right: 0px;
}

完成!!

それぞれの手順で作成した部品を重ねると完成します。

完成した内容が以下のようになります。説明では省略していた内容も記載しています。コピーして利用してみてください。

終わりに

正月なので鏡餅を作成してみました。今回、鏡餅の名称を調べてみましたが、それぞれに意味があることを初めて知りました。