Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1주차] 최지원 미션 제출합니다. #3

Open
wants to merge 22 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
2174809
feat: 기본 UI 구현
jiwonnchoi Sep 5, 2024
3556734
feat: 입력창 토글 기능 구현
jiwonnchoi Sep 6, 2024
1434121
feat: 할 일 추가 함수 구현
jiwonnchoi Sep 6, 2024
8ec025d
feat: 토글, 삭제 함수 구현
jiwonnchoi Sep 6, 2024
e3313a3
feat: 날짜 및 현재시각 표기
jiwonnchoi Sep 6, 2024
a254567
feat: 로컬스토리지 데이터 처리 구현
jiwonnchoi Sep 6, 2024
3152ab0
feat: 반응형 구현
jiwonnchoi Sep 6, 2024
4de67aa
style: 클래스명 수정 및 rem 단위 변환
jiwonnchoi Sep 6, 2024
8f7e29b
feat: 공통 기능 함수화
jiwonnchoi Sep 6, 2024
c08b6fa
feat: 전체, 완료된 항목 개수 표기 추가
jiwonnchoi Sep 6, 2024
86260ea
feat: 입력창 애니메이션 추가
jiwonnchoi Sep 6, 2024
3d0989b
fix: 스타일 수정 및 주석 추가
jiwonnchoi Sep 7, 2024
ca4e76e
chore: 버셀 배포
jiwonnchoi Sep 7, 2024
3d044fe
refactor: 아이콘 png에서 svg로 변경
jiwonnchoi Sep 10, 2024
28d46e6
refactor: 현재시각 1초지연 방지
jiwonnchoi Sep 10, 2024
970222b
refactor: did 네이밍 done으로 변경
jiwonnchoi Sep 10, 2024
cd12e36
refactor: addTodoItem의 input값 캐싱
jiwonnchoi Sep 10, 2024
780ce6d
refactor: deleteItem 중복호출 수정
jiwonnchoi Sep 11, 2024
a8f23ca
refactor: 전역 스타일 추가
jiwonnchoi Sep 11, 2024
eb9f93e
refactor: toggleForm 로직 분리 및 불리언 추가
jiwonnchoi Sep 11, 2024
9ef7e0e
refactor: 버튼생성 이벤트를 상위에 위임하도록 수정
jiwonnchoi Sep 11, 2024
f6d8336
fix: 배열 각 항목에 고유id 추가
jiwonnchoi Sep 11, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified images/delete_btn.png
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아이콘과 로고 같은 경우에는 png, jpeg 보다는 SVG 형식을 쓰는게 좋아요! SVG 형식은 벡터 기반이기 때문에 크기가 조절되어도 이미지 품질이 손상되지 않기 때문에 유연한 크기 조절이 가능한 SVG 형식이 아이콘과 로고 같은 작은 이미지에 적합합니다 :)

image

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사실 delete 아이콘이 같은 로직을 통해 생성되는데도 어떤 건 약간 가로로 길쭉한 .. 현상이 있었어서 width, height, 그걸 감싸는 별도의 태그 추가 등 크기 관련 코드만 여러 번 고쳐보았었는데 svg로 바꿔보아야겠다는 생각은 못했네요..! 첨부해주신 표 덕분에 정확히 알아가서 쓸 수 있을 것 같아요☺️

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 16 additions & 8 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,35 @@
<h1 class="today"></h1>
</header>
<nav class="box-style">
<span class="intro ment-style">당신의 할 일을 작성해보세요 ✏️</span>
<button class="showInput ment-style">입력창 불러오기</button>
<span class="ment-style">당신의 할 일을 작성해보세요 ✏️</span>
<button class="show-input ment-style">입력창 불러오기</button>
</nav>

<main class="contents box-style">
<main class="box-style">
<section class="todo">
<div class="todoTop">
<div class="todo-top">
<h2 class="ment-style">What I have to do</h2>
<form class="inputBox box-style">
<form class="input-box box-style">
<input class="input" />
<button class="submitBtn">작성하기</button>
<button class="submit-btn">작성하기</button>
</form>
</div>
<ul class="todoList"></ul>
</section>

<section class="did">
<h2 class="ment-style">What I did</h2>
<ul class="didList"></ul>
</section>
</main>
<footer>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

footer main 등등 시맨틱 태그들을 적절히 잘 활용해주셨네요!! 문서의 구조를 보다 더 명확하게 파악할 수 있는 것 같습니다 ㅎㅎ

<span>
<span class="today"><b>T</b>otal: </span>
<span class="count"></span>
</span>
<span>
<span class="today"> <b>A</b>ccomplishment: </span>
<span class="accomplishment"></span>
</span>
</footer>
</div>
</body>
<script src="script.js"></script>
Expand Down
4 changes: 2 additions & 2 deletions script.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ const initTodoList = () => {
};

/* todo 입력, 토글, 삭제 */
const form = document.querySelector(".inputBox");
const showMessage = document.querySelector(".showInput");
const form = document.querySelector(".input-box");
const showMessage = document.querySelector(".show-input");

const init = () => {
form.addEventListener("submit", addTodoItem);
Expand Down
73 changes: 47 additions & 26 deletions style.css
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ body {

.container {
width: 100%;
max-width: 600px;
max-width: 37.5rem;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rem단위로 css를 사용하시는군요! 혹시 픽셀이나 다른 단위가 아닌 rem으로 했을 때의 장단점이나 이유가 있는지 여쭤보고 싶습니다!

Copy link
Author

@jiwonnchoi jiwonnchoi Sep 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

px은 고정된 절대 단위이고, rem은 비율에 맞춰 바뀌는 상대 단위라 반응형에 더 적합하다고 하더라고요! 정확히는 브라우저의 루트 글꼴의 크기설정이 변경될 때 유연하게 반응하는 것이 rem 단위라고 합니다. rem에 대해 정확히 이해할 수 있는 링크가 있어 함께 첨부드려요!
px vs rem
rem이란

height: 100%;
display: flex;
flex-direction: column;
align-items: center;
}

@media screen and (max-width: 1000px) {
@media screen and (max-width: 62.5rem) {
.container {
width: 80%;
}
Expand All @@ -28,71 +28,81 @@ header {
color: #85b6ff;
font-family: "Pretendard";
font-weight: 300;
font-size: 15px;
font-size: 0.938rem;
}

nav {
width: 100%;
height: 50px;
height: 3.125rem;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
margin-bottom: 20px;
padding: 0 1.25rem;
margin-bottom: 1.25rem;
}

main {
width: 100%;
display: flex;
flex-direction: column;
padding: 20px;
padding: 0.625rem 1.25rem;
}

button {
border: none;
background-color: transparent;
}

.todoTop {
.todo-top {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}

.inputBox {
.input-box {
width: 50%;
height: 30px;
height: 1.875rem;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
padding: 0 10px;
padding: 0 0.625rem;
}

input {
width: 30%;
width: 70%;
border: transparent;
font-family: "Pretendard";
}

.submitBtn {
input:focus {
outline: none;
}

@media screen and (max-width: 41.875rem) {
input {
width: 60%;
}
}

button {
border: none;
background-color: transparent;
}

.submit-btn {
color: #85b6ff;
Copy link
Collaborator

@jinnyleeis jinnyleeis Sep 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#85b6ff,#458fff 이 두 색상을 계속해서 사용해주셨는데,
재사용되는 색상을 CSS 전역 변수로 정의해서 이용하는 방법을 제안드려요!

공식 문서에 나와있듯이, :root 클래스에 선언해서 HTML 문서 전체에서 이를 활용할 수 있도록 할 수 있으니 한 번 참고해보시면 좋을 것 같습니다!
https://developer.mozilla.org/ko/docs/Web/CSS/Using_CSS_custom_properties

:root {
--primary-color: #85b6ff;
--secondary-color: #458fff;
}

...
.today {
color: var(--primary-color);
font-family: "Pretendard";
font-weight: 300;
font-size: 0.938rem;
}
...

font-family: "Pretendard";
font-weight: 600;
font-size: 18px;
font-size: 0.938rem;
}

.ment-style {
color: #458fff;
font-family: "Pretendard";
font-weight: 600;
font-size: 18px;
font-size: 1.125rem;
}

.box-style {
border-radius: 30px;
border: 1px solid #85b6ff;
border-radius: 1.875rem;
border: 0.063rem solid #85b6ff;
}

ul li {
Expand All @@ -105,24 +115,35 @@ ul {
padding-left: 0;
}

footer {
width: 12.5rem;
display: flex;
flex-direction: row;
justify-content: space-between;
align-self: flex-start;
}

/*todo 항목 스타일*/

.todo-item {
display: flex;
align-items: center;
margin-bottom: 15px;
margin-bottom: 0.938rem;
}

.todo-text,
.did-text {
color: #458fff;
font-family: "Pretendard";
font-weight: 300;
font-size: 16px;
font-size: 1rem;
}

.todo-check img {
width: 20px;
width: 1.25rem;
}

.todo-del img {
width: 12px;
height: 0.688rem;
padding-bottom: 0.125rem;
}