본문 바로가기

개발이야기

멋사 FE3기 천하제일 캐릭터 경진대회 회고 & refactoring

 

멋쟁이 사자처럼  프론트엔드스쿨 3기 천하제일 캐릭터 경진대회 참가

 

 

 

🐯우수상 귤랑이🍊

CSS에 자신감은 없지만 최선을 다하려고 했는데 우수상을 주셔서 너무 감사했던 대회! 

덕분에 조금의 자신감과 뿌듯함을 느꼈다! 

 

초안

처음에는 약간 이런 느낌의 호랑이를 만들려고 했다! 

내 CSS 실력을 감안하여 그림판으로 그려봤다 ㅎㅎ;;  

 

결과물

만들면서 호랑이 피부색을 정하는데 귤로 하면 재밌을 것 같아서 만드는 도중에 귤로 바꾸기로 했다. 

뭔가 .. 보는 사람과의 상호작용을 주면 좋을 것 같아서 마우스 위치에 따라 모습이 바뀌게 함

 

https://github.com/mayo516/character_making

https://mayo516.github.io/character_making/

 

전체 마크업 

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>멋쟁이호랑이처럼</title>
    <link rel="stylesheet" href="style.css">
    <link rel="stylesheet" href="reset.css">
    <script src="console.js"> </script>

</head>

<body>
    <div class="container">
        <div class="안내">귤랑이의 입에 마우스를 올려보세요.</div>
        <div class="like-lion">
            <div class="leaf"></div>
            <div class="ear left"></div>
            <div class="ear right"></div>
            <div class="face">
                <div class="line-top"></div>
                <div class="line-left"></div>
                <div class="line-right"></div>
                <div class="eye left"></div>
                <div class="eye right"></div>
                <div class="real-mouth"></div>
                <div class="볼터치"></div>
                <div class="볼터치-right"></div>
            </div>
            <div class="chin">
                <div class="nose"></div>
                <div class="mouth"></div>
                <div class="mouth-right"></div>
                <div class="chin-left"></div>
                <div class="chin-middle"></div>
                <div class="chin-right"></div>
            </div>
        </div>
        <div class="name">귤랑이</div>
        <div class="안내2">귤랑이의 이야이가 궁금하다면 콘솔창을 켜보세요</div>
    </div>
</body>

</html>

 

나는 콘솔창을 키면 특정 글을 읽을 수 있게 나름 재미 요소? 를 넣으려고 했으므로 그런 텍스트들도 같이 넣어줬다. 

이런 내용을 볼 수 있다 ... ^^ ㅎㅎ 

.ear::after {
    content: '';
    position: absolute;
    top: 10px;
    left: 10px;
    width: 60px;
    height: 50px;
    background-color: rgb(255, 237, 204);
    border-radius: 50%;
    box-shadow: rgba(126, 126, 126, 0.25) 0px 30px 60px -12px inset, rgba(112, 112, 112, 0.3) 0px 18px 36px -18px inset;

}

귀 같은 경우 가상 요소 선택자를 이용해서 귀 안쪽을 채워줬다. 

캐릭터를 만들면서 가상 요소 선택자를 굉장히 많이 사용했다. 

예를 들면 눈안에 반짝이는 요소라든지.. 

 

.chin-left::before {
    content: "";
    right: 30px;
    top: 20px;
    position: absolute;
    background-color: rgb(243, 120, 126);
    width: 30px;
    height: 20px;
    border-radius: 40%;
    box-shadow: rgba(86, 50, 93, 0.25) 0px 50px 100px -20px, rgba(175, 35, 35, 0.3) 0px 30px 60px -30px, rgba(10, 37, 64, 0.35) 0px -2px 6px 0px inset;
    z-index: 11;
}

볼에 있는 볼터치 같은 경우 볼록한 느낌을 내고 싶어서 box-shadow를 많이 활용했다. 

결과물

볼록한 볼터치!

.chin:hover {
    animation: 1s chindown infinite alternate;

}


@keyframes movingleaf {
    100% {
        transform: rotate(10deg);
    }
}

@keyframes chindown {
    100% {
        transform: translate(0, 150px);
    }
}

키 프레임을 이용해서 머리에 있는 나뭇잎이 움직이게 했고, 턱에 마우스가 올라가면 턱이 아래로 내려오면서 

귤랑이의 귤모습이 나타나게 만들었다!

 

 

 

 

소감

기대는 하나도 안했는데 ... 

우수상을 주셨다 ㅠㅠ 감사합니다.... 

CSS를 이렇게 실습해보니깐 잘 안쓰던

animation이나 가상 요소 선택자 등을 더 잘 쓸 수 있게 된 

기회였다. 배우면서 상도 받고.. 

이런 기회를 주신 멋사와 제코베에 감사 인사를 드립니다.

 

 

 

 

 

+ ) 약간의 리팩토링

 

CSS 변수

나는 완성만 바라보면서 만들었더니 일단 완성하는게 급급했던 것 같다. 다른  분 코드를 보는데 변수를 쓰신걸 보고 

'왜 이 생각을 못했지!?? '했다. 물론 나는 색이 비슷하게 들어가는 경우가 많이는 없었지만.. 변수를 선언해서 쓰는게 훨씬 유지보수면에서 좋을 듯 했다. 

 

수정완료!

특히 호랑이 같은 경우에 줄무늬가 특징인데 여러 번 들어가는 경우 변수로 설정하는게 훨씬 도움이 됐다. 

이제 색 바꾸는 것도 쉽다!