2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GameWithAdvent Calendar 2018

Day 14

GameWithのマスコットをCSSで作ってみる

Last updated at Posted at 2018-12-13

GameWith Advent Calendar 2018

この記事はGameWith Advent Calendar 2018 の14日目になります!

GameWithのマスコットをCSSで作ってみる

今日はGameWithのマスコットキャラ「すっぴんちゃん」をCSSで作りたいと考えていますが、
そもそもすっぴんちゃんって何?と思われる方もいらっしゃると思いますので、
↓404ページで出てくるこの子のことです!
suppin

本当に何度見てもかわいくて仕方がないです…!!⁄(⁄ ⁄•⁄-⁄•⁄ ⁄)⁄
では、早速作業を始めましょうー

まずはDOMの部分です。


<div class="suppin">
    <div class="body"></div>
    <div class="eye left"></div>
    <div class="eye right"></div>
    <div class="hand left"></div>
    <div class="hand right"></div>
    <div class="leg left"></div>
    <div class="leg right"></div>
    <div class="sweat"></div>
</div>

次はCSSに行きたいと思いますが、GameWithではふだんlessを利用しているので今回もlessで作りたいですー
まずは基本情報の設定です。

@suppinColor:    #37496b;
@suppinSubColor: white;
@suppinSize:     75px;

.suppin {
    position: relative;
    width: @suppinSize;
    height: @suppinSize * 1.5;
}

体のコードを追加します。

@bodySize:  @suppinSize;

.suppin {
    /*前略*/
    >.body {
        position: absolute;
        left: 50%;
        top: 0;
        margin-left: -1 * @bodySize / 2;
        width: @bodySize; 
        height: @bodySize * 1.25;
        background: @suppinColor;
        border-radius: 50% ~'/' 60% 60% 40% 40%;
    }
}

これで体ができました。
屏幕快照 2018-12-10 上午12.39.28.png
うん…どう見てもたまごですね?!アレレレ!?(・_・;?
さ、早速目のコードを追加しましょうー

@eyeSize:   @suppinSize * 0.2;

.suppin {
    /*前略*/
    >.eye {
        position: absolute;
        top: @suppinSize * 0.4;
        width: @eyeSize;
        border-style: solid;
        border-color: @suppinSubColor;
        border-width: 0 0 @eyeSize * 0.5 0;
        border-radius: 50% ~'/' 0 0 100% 100%;
        z-index: 1;

        &.left {
            right: 50%;
            margin-right: @eyeSize * 0.1;
            transform: rotate(-45deg);
        }
        &.right {
            left: 50%;
            margin-left: @eyeSize * 0.1;
            transform: rotate(45deg);
        }
    }
}
屏幕快照 2018-12-10 上午12.39.48.png

目を描くと、すっぴんちゃん、なんか悲しい顔でもしていません…?
次、足と手を一気に追加しましょう!

@handSize:  @suppinSize * 0.16;
@legSize:   @suppinSize * 0.15;

.suppin {
    /*前略*/
    >.hand {
        position: absolute;
        top: @suppinSize * 0.7;
        width: @handSize;
        height: @handSize * 1.2;
        border-style: solid;
        border-color: @suppinSubColor;
        border-width: @suppinSize * 0.02;
        border-top-width: 0;
        border-radius: 50% ~'/' 0 0 100% 100%;
        z-index: 1;

        &.left {
            left: @suppinSize * 0.08;
            transform: rotate(-35deg);
        }
        &.right {
            right: @suppinSize * 0.08;
            transform: rotate(35deg);
        }
    }

    >.leg {
        position: absolute;
        top: @suppinSize * 1.2;
        width: @legSize * 0.3;
        height: @legSize;  
        border-style: solid;
        border-color: @suppinColor;
        border-radius: @legSize;
        z-index: 1;

        &.left {
            right: 50%;
            margin-right: @suppinSize * 0.05;
            border-width: 0 0 @suppinSize * 0.1 @suppinSize * 0.05;
            transform: skew(-10deg, 55deg);
        }
        &.right {
            left: 50%;
            margin-left: @suppinSize * 0.05;
            border-width: 0 @suppinSize * 0.05 @suppinSize * 0.1 0;
            transform: skew(10deg, -55deg);
        }
    }
}
屏幕快照 2018-12-10 上午12.40.24.png

Done!これですっぴんちゃんができましたー!
汗でも2滴増やしてみよう。(゚ω゚;)

@sweatSize: @suppinSize * 0.12;

.suppin {
    /*前略*/
    >.sweat {
        position: absolute;
        right: -1 * @suppinSize * 0.05;
        top: -1 * @suppinSize * 0.05;
        z-index: 1;

        &:before {
            .sweat_drop(@sweatSize);
            top: 0;
            right: 0;
            transform: rotate(45deg);
        }
        &:after {
            .sweat_drop(@sweatSize * 0.6);
            top: @sweatSize * 1.8;
            right: 0;
            transform: rotate(80deg);
        }

        .sweat_drop(@size) {
            position: absolute;
            content: "";
            width: @size;
            height: @size * 1.7;
            border-style: solid;
            border-color: @suppinColor;
            border-width: @suppinSize * 0.03 0 0 @suppinSize * 0.03;
            border-radius: 50% 50% 0 0 ~'/' 50% 50% 0 0;
        }
    }
}
屏幕快照 2018-12-10 上午12.40.41.png

せっかくなので、ぷるぷるしている動画効果も入れたいです。

.suppin {
    /*前略*/
    @animationDistance: 2px;
    @animationAngle: 3deg;
    @animationDuration: 0.2s;

    animation: purupuru @animationDuration linear infinite alternate;

    @keyframes purupuru {
        25% {
            transform: rotate(@animationAngle);
            top: @animationDistance;
            left: @animationDistance;
        }
        50% {
            top: -1 * @animationDistance;
            left: -1 * @animationDistance;            
        }
        75% {
            transform: rotate(-1 * @animationAngle);
            top: @animationDistance;
            left: @animationDistance;
        }
    }

suppin.gif

これでぷるぷるしているすっぴんちゃんができましたー!

実はこの↑すっぴんちゃんのslack絵文字スタンプでも存在していて、
いつもスタッフの皆さんに愛用されています。(*´∀`*)キュン!

ではでは、今日のブログは以上となります。
GameWithを訪ねるときにこの子と会えましたら、ぜひぜひ可愛がってあげてくださいー!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?