Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 added .DS_Store
Binary file not shown.
Binary file added Mission01/.DS_Store
Binary file not shown.
Binary file added Mission01/Icon/.DS_Store
Binary file not shown.
Binary file added Mission01/Icon/Panda-logo-md.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Icon/Panda-logo-sm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Icon/Pandan-logo-lg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Icon/ic_facebook.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Icon/ic_instagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Icon/ic_twitter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Icon/ic_youtube.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Image/Img_home_01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Image/Img_home_02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Image/Img_home_03.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Image/Img_home_bottom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Mission01/Image/Img_home_top.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added Mission01/faq.html
Empty file.
95 changes: 95 additions & 0 deletions Mission01/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html lang="en">
Copy link
Collaborator

Choose a reason for hiding this comment

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

언어 설정을 "ko"로 변경하시면, 한국어 사용자에 맞춰 스크린리더가 사용될수있고 검색엔진에서도 페이지의 언어를 한국어 콘텐츠로 인식하게끔 만들어줄 수 있습니다. 웹 접근성을 생각했을때 스크린리더를 사용한다면 lang="en" 상태에서는 한국어 콘텐츠를 영어 발음으로 읽을 가능성이 있기때문에, 한국어 사용자를 대상으로한다면 "ko"로 변경하시는게 옳습니다 :)

Suggested change
<html lang="en">
<html lang="ko">


<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>판다마켓</title>
<link rel="stylesheet" as="style" crossorigin
href="https://cdn.jsdelivr.net/gh/orioncactus/[email protected]/dist/web/static/pretendard.min.css" />
<link rel="stylesheet" href="style.css">

<body>
<div class="container">
<header>
<nav class="gnb">
<a href="index.html">
<img src="Icon/Panda-logo-md.png" class="panda-logo-md" alt="판다마켓 로고">
Comment on lines +16 to +17
Copy link
Collaborator

Choose a reason for hiding this comment

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

접근성 향상을 위해 aria-label="홈으로 이동" 과 같이 관련있는 요소에 aria-label 혹은 role을 사용해볼까요?
아래 아티클 참고해보시고 접근성을 향상시키기 위해 어떤 노력을 할수있는지 더 찾아보시면 좋은 공부 될 것같아요 :)

https://joyhong-91.tistory.com/22
https://velog.io/@a_in/WAI-ARIA-role-aria-label

</a>
<a href="login.html" class="login-button is-clickable button-deco">로그인</a>
Copy link
Collaborator

Choose a reason for hiding this comment

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

button-deco가 조금 모호한 네이밍처럼 느껴지네요.
항상 클래스이름을 어떻게하면 더 잘 지을수있을지 고민해주면 좋아요.
엘리먼트의 역할에 따라 클래스이름을 잘 지을수있도록 고려해주면 유지보수할때 편해지겠죠?

</nav>
<section class="banner">
<div class="banner-wrapper">
<div class="intro-text">
<h2>
일상의 모든 물건을 <br> 거래해 보세요
</h2>
<a href="items.html" class="search is-clickable button-deco">구경하러 가기</a>
</div>
<img src="Image/Img_home_top.png" alt="판다마켓 Top" class="banner-image-top">
</div>
</section>
</header>
<main class="contents">
Copy link
Collaborator

Choose a reason for hiding this comment

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

contents보다는 feature-section으로 변경하시고, 아래 카드 영역과 콘텐트영역 클래스이름도 feature-card, feature-content 등등으로 변경하시면 좀더 클래스명이 직관적으로 보일거예요.

너무 일반적이거나 모호한 클래스명은 가독성, 유지보수성, 확장성이 모두 떨어질 수 있습니다. 그 이유는 너무 일반적인 클래스명은 프로젝트내에서 반복적으로 사용될 가능성이 있고, 나중에 다른 개발자가 동일한 클래스명으로 스타일을 또 만들면 스타일이 충돌되거나 꼬이는 문제가 생길 수도 있기 때문입니다. 모호한 클래스명의 경우에도 유지보수를 어렵게한다는 단점이 생깁니다.

이런 문제를 최대한 방지하기위해서는 거듭 강조하지만
"너무 일반적이거나 모호한 이름을 사용하면 어떤 문제가 있는지" 이해하고,
그 문제를 해결하기위해 신경써서 작업해보시는걸 추천드립니다! :)

<section class="content">
<img src="Image/Img_home_01.png" alt="Hot item" class="content-img">
<div class="content-text">
<h4>Hot item</h4>
<h2>인기 상품을<br>확인해 보세요</h2>
<h3>가장 HOT한 중고거래 물품을<br>판다 마켓에서 확인해 보세요</h3>
</div>
</section>
<section class="content">
<div class="content-text content-right">
Copy link
Collaborator

Choose a reason for hiding this comment

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

content-right와 같이 클래스이름에 위치, 색상, 순서 등의 키워드가 들어가있는것도 다소 좋지않아요. 디자인이 변경되면 같이 변경되어야겠죠? 그러면 기존에 애써 구조화해놨던 위계가 무너질수도있고요. 엘리먼트의 역할에 맞게 고쳐볼까요?

<h4>Search</h4>
<h2>구매를 원하는<br>상품을 검색하세요</h2>
<h3>구매하고 싶은 물품은 검색해서<br>쉽게 찾아보세요</h3>
</div>
<img src="Image/Img_home_02.png" alt="search" class="content-img">
</section>
<section class="content">
<img src="Image/Img_home_03.png" alt="register" class="content-img">
<div class="content-text">
<h4>Register</h4>
<h2>판매를 원하는<br>상품을 등록하세요</h2>
<h3>어떤 물건이든 판매하고 싶은 상품을<br>쉽게 등록하세요</h3>
</div>
</section>
</main>
<footer>
<section class="banner">
<div class="banner-wrapper">
Comment on lines +60 to +61
Copy link
Collaborator

Choose a reason for hiding this comment

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

다른 부분에서도 봤는데 banner와 banner-wrapper가 필요한 중첩인지 생각해봅시다!
불필요한 중첩이라면 가독성을 해칠수있으니 개선해볼까요? :)

<h2>
믿을 수 있는<br>판다마켓 중고 거래
</h2>
<img src="Image/Img_home_bottom.png" alt="판다마켓 Bottom" class="banner-image-bottom">
</div>
</section>
<section class="footer-bottom">
<div class="footer-bottom-contents">
<div class="copyright">
<p>&#169codeit - 2024</p>
</div>
<ul class="footer-list">
<li><a href="privacy.html">Privacy Policy</a></li>
<li><a href="faq.html">FAQ</a></li>
</ul>
<ul class="footer-list">
<li><a href="https://www.facebook.com" target="_blank"><img src="Icon/ic_facebook.png"
Copy link
Collaborator

Choose a reason for hiding this comment

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

외부 링크의 경우, 보안을 위해 rel="noopener noreferrer"를 추가해주세요! :)

noopener: 새 탭에서 열린 페이지가 원본 페이지에 접근하는 것을 방지
noreferrer: 리퍼러 정보가 새 페이지로 전달되는 것을 방지

alt="페이스북" class="social-logo"></a></li>
<li><a href="https://x.com" target="_blank"><img src="Icon/ic_twitter.png" alt="트위터"
class="social-logo"></a></li>
<li><a href="https://www.youtube.com" target="_blank"><img src="Icon/ic_youtube.png" alt="유튜브"
class="social-logo"></a>
</li>
<li><a href="https://www.instagram.com" target="_blank"><img src="Icon/ic_instagram.png"
alt="인스타그램" class="social-logo"></a></li>

</ul>
</div>
</section>
</footer>
</div>
</body>

</html>
Empty file added Mission01/items.html
Empty file.
Empty file added Mission01/login.html
Empty file.
Empty file added Mission01/privacy.html
Empty file.
197 changes: 197 additions & 0 deletions Mission01/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
body {
Copy link
Collaborator

Choose a reason for hiding this comment

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

용도를 나눠 css 파일을 관리해볼까요?

  • reset.css (css 초기화)
  • common.css (전역 스타일 처리)

font-family: 'Pretendard', sans-serif;
margin: 10px 0 0;
}



Comment on lines +5 to +7
Copy link
Collaborator

Choose a reason for hiding this comment

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

공백은 한칸만 띄워주셔도 충분해요! 포맷팅도 일관적으로 지켜써볼수있도록 신경써봅시다 :)

/* Layout */
.container {
margin: 0 auto;
}

.gnb {
display: flex;
flex-direction: row;
Copy link
Collaborator

Choose a reason for hiding this comment

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

flex 속성을 사용하면 기본적으로 flex-direction: row; 가 적용돼요.
이렇게 기본 적용되는 디폴트 값을 잘 이해하면 불필요한 스타일 명세도 없애줄수있겠죠?

justify-content: space-between;
align-items: center;
max-width: 1120px;
padding: 0 200px;
margin: 0 auto;
}

.banner {
display: flex;
flex-direction: row;
padding: clamp(66px, 13vw, 200px) 0 0;
Copy link
Collaborator

Choose a reason for hiding this comment

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

clamp를 잘 활용하시네요! 👍

width: 100%;
background-color: #cfe5ff;
Copy link
Collaborator

Choose a reason for hiding this comment

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

자주 사용되는 값들은 css 변수로 처리해서 재사용해주면 코드 중복을 줄일수있어요 :)

예시)

/* Variables */
:root {
    --primary-color: #3692ff;
    --text-primary: #374151;
    --text-secondary: #9ca3af;
    --text-light: #e5e7eb;
    --background-primary: #fcfcfc;
    --background-secondary: #cfe5ff;
    --background-dark: #111827;
    --border-radius-sm: 8px;
    --border-radius-lg: 12px;
    --border-radius-xl: 40px;
    --container-width: 1120px;
    --content-width: 988px;
}

}

.banner-wrapper {
display: flex;
flex-direction: row;
margin: 0 auto;
}

.intro-text {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}

.contents {
width: clamp(370px, 77vw, 1120px);
margin: 0 auto;
}

.content {
display: flex;
flex-direction: row;
justify-content: space-around;
width: clamp(320px, 68vw, 988px);
height: clamp(148px, 30vw, 444px);
margin: clamp(46px, 9.5vw, 138px) auto;
border-radius: 12px;
background-color: #fcfcfc;
}

.content-right {
text-align: right;
}

.content-text {
display: flex;
flex-direction: column;
justify-content: center;
padding-right: clamp(3px, 0.6vw, 10px);
padding-left: clamp(6px, 1.3vw, 20px);
}

.bottom-line {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}

.footer-bottom {
background-color: #111827;

Copy link
Collaborator

Choose a reason for hiding this comment

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

여기 공백은 없어도 됩니다! :)

}

.footer-bottom-contents {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
max-width: 1120px;
margin: 0 auto;
padding: clamp(3px, 0.6vw, 10px) clamp(6px, 1.3vw, 20px) clamp(10px, 2.2vw, 32px);
}

.footer-list {
display: flex;
flex-direction: row;
list-style: none;
gap: 12px;

}




/* Typo */

h2 {
font-weight: 700;
font-size: clamp(13px, 2.7vw, 40px);
line-height: 140%;
color: #374151;
}

h3 {
font-weight: 500;
font-size: clamp(8px, 1.6vw, 24px);
line-height: clamp(10px, 2.2vw, 32px);
color: #374151;
}

h4 {
font-weight: 700;
font-size: clamp(6px, 1.2vw, 18px);
line-height: clamp(8px, 1.8vw, 26px);
color: #3692ff;
}

.footer-list a {
color: #e5e7eb;
text-decoration: none;
font-weight: 400;
font-size: clamp(5px, 1.1vw, 16px);
line-height: 100%;
}

.copyright {
font-weight: 400;
font-size: clamp(5px, 1.1vw, 16px);
line-height: 100%;
color: #9ca3af;
}




/* Component */

.panda-logo-md {
width: clamp(51px, 10vw, 153px);
height: auto;
}

.button-deco {
background-color: #3692ff;
color: #f3f4f6;
text-decoration: none;
font-size: clamp(5px, 1.1vw, 16px);
font-weight: 600;
}

.login-button {

padding: clamp(4px, 0.8vw, 12px) clamp(7px, 1.5vw, 23px);
border-radius: 8px;
}

.search {
padding: clamp(5px, 1.2vw, 16px) clamp(41px, 8.6vw, 124px);
border-radius: 40px;
font-size: clamp(6px, 1.3vw, 20px);
font-weight: 600;
line-height: clamp(11px, 2.2vw, 32px);
}

.banner-image-top {
width: clamp(248px, 51vw, 746px);
height: auto;
}

.banner-image-bottom {
width: clamp(248px, 51vw, 746px);
height: auto;
}

.content-img {
width: clamp(193px, 40vw, 579px);
height: 100%;
}

.social-logo {
width: clamp(6px, 1.3vw, 20px);
height: auto;
}

.is-clickable {
cursor: pointer;
}
Loading