부트캠프/TIL

코드스테이츠 프론트엔드 부트캠프 Day 7 - SHARP 레트로 계산기 목업

하이고니 2022. 12. 23. 11:52

레퍼런스

1. container 를 둘러싼 frame 이 있다.

 

2. container 는 크게 4가지 영역으로 나뉜다.

 

space, nameTag, screen, buttons

 

 

 

와이어프레임은 아래와 같다.

HTML

<div class="frame">
        <div class="container">
            <div class="space"></div>
            <div class="nameTag"></div>
            <div class="screen"></div>
            <div class="buttons"></div>
        </div>
    </div>

CSS

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 
    'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 
    'Helvetica Neue', sans-serif;
}

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

.frame {
    display: flex;
    justify-content: center;
    align-items: center;

    margin-top: 100px;

    height: 700px;
    width: 400px;

    border: 1px solid red;
}

.container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;

    height: 97%;
    width: 92%;

    border: 1px solid blue;
}

.space {
    margin: 5px 5px 0px 5px;
    flex-grow: 1;
    border: 1px dotted black;
}

.nameTag {
    margin: 0px 5px 0px 5px;
    flex-grow: 1.2;
    border: 1px dotted black;
}

.screen {
    margin: 5px;
    flex-grow: 1.5;
    border: 1px dotted black;
}

.buttons {
    margin: 5px;
    flex-grow: 6;
    border: 1px dotted black;
}

 

3. nameTag 는 sharp-logo 와 model-name 으로 구성되어 있다.

 

4. buttons 는 memory 와 calculation 으로 구성되어 있다.

 

 

5. memory 는 mName 과 mBut 으로 구성되어 있다.

 

 

6. mBut 은 5개의 버튼(smll_blue_button) 으로 구성되어 있다. (1 X 5)

.mBut {
    flex-grow: 7;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    place-items: center;
    padding: 0px;
}

.small_blue_button {
    border: 1px solid blue;
    margin: 0px 10px;
    height: 20px;
    width: 40px;
}

* display: grid; 를 사용해서 1행 5열의 구성을 했다.

 

 

7. calculation 은 20개의 버튼(calBut) 으로 구성되어 있다. (4 X 5)

.calculation {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    place-items: center;
    flex-grow: 8.5;
    margin: 5px;

    border: 1px solid black;
}

.calBut {
    display: flex;
    justify-content: center;
    align-items: center;

    border: 1px solid blue;
    margin: -20px 0px;
    height: 50px;
    width: 50px;

    font-size: 24px;
}

 

8. 색칠한다 (색상 추출은 https://ko.rakko.tools/tools/64/)

9. 각 div의 테두리 색 변경, C 버튼 (calBut red) 색상 변경

10. 버튼 테두리 radius 주기

 

11. 왼쪽 아래 방향으로 그림자 넣기

12. 마무리

얼추 비슷하게 됐지만 SHARP 를 로고로 바꾸고 숫자 0 을 디지털 넘버 폰트로 바꾸면 더 좋을 것 같다.