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.
11 changes: 11 additions & 0 deletions faq.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>FAQ PAGE</h1>
</body>
</html>
Binary file added images/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 images/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 images/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 images/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 images/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.
Binary file added images/Img_reply_empty.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 images/Property 1-1=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 images/Property 1-1=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 images/Property 1-2=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 images/Property 1-2=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 images/Property 1-2=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 images/Property 1=Typo.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 images/Property 1=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 images/Property 1=sm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions images/ic_facebook.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions images/ic_instagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions images/ic_twitter.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions images/ic_youtube.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
88 changes: 88 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<!DOCTYPE html>
<html lang="ko">

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

<body>
<header>
<a href="/"><img src="/images/Property 1-2=sm.png" alt="판다마켓 로고"></a>
<a href="/login.html"><button class="btn-small-40">로그인</button></a>
</header>
<section class="hero">
<div class="hero-content">
<h1 class="hero-title">일상의 모든 물건을<br>거래해 보세요</h1>
<a href="items.html"><button class="browse-btn">구경하러 가기</button></a>
</div>
<div class="hero-image">
<img src="images/Img_home_top.png" alt="판다 캐릭터" />
</div>
</section>
<section class="item wrap">
Copy link
Collaborator

Choose a reason for hiding this comment

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

각 section을 좀더 유의미하게 구분했으면 좋겠어요. 적절한 class를 추가해 구분해보고, 계층 구조를 명확히 해보면 어떨까요? 예를 들어, 반복되는 섹션은 feature 클래스로 묶어주어 일관성을 높이고 각 섹션의 변형은 modifier class로 표현해보는 방식도 괜찮아요.

예시)
<section class="feature feature--hot"><div class="feature__container wrap"></div></section>

Copy link
Collaborator

Choose a reason for hiding this comment

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

<div class="item-container">
<div class="item-image">
<img src="images/Img_home_01.png" alt="아이템 콘텐츠 이미지">
</div>
<div class="item-content">
<p class="font-blue">Hot item</p>
Copy link
Collaborator

Choose a reason for hiding this comment

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

클래스이름에 위치, 색상 등 UI에 한정된 네이밍을 사용하시는건 적절치않아요.
이유는 디자인이 변경된다면 실제 스타일과 클래스명이 불일치할 수 있고, 이는 곧 재사용성의 저해로 이어지기때문입니다.
따라서, 다음부터는 해당 엘리먼트의 목적과 역할을 보다 직관적으로 이해할 수 있게끔 염두에 두고 작업해보시는걸 추천드립니다 :)

<div class="font-fat">인기 상품을<br>확인해 보세요</div>
<div>가장 HOT한 중고거래 물품을<br>판다 마켓에서 확인해 보세요</div>
</div>
</div>
</section>
<section class="item wrap">
<div class="item-container">
<div class="item-content text-right">
<p class="font-blue">Search</p>
<div class="font-fat">구매를 원하는<br>상품을 검색하세요</div>
<div>구매하고 싶은 물품은 검색해서<br>쉽게 찾아보세요</div>
</div>
<div class="item-image">
<img src="images/Img_home_02.png" alt="아이템 콘텐츠 이미지">
</div>
</div>
</section>
<section class="item wrap">
<div class="item-container">
<div class="item-image">
<img src="images/Img_home_03.png" alt="아이템 콘텐츠 이미지">
Copy link
Collaborator

Choose a reason for hiding this comment

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

NIT: 이미지 최적화를 위해서는 width와 height를 속성으로 부여해주시는게 좀 더 좋습니다.

성능 최적화 정도를 나타내는 중요한 지표중에 CLS(Cumulative Layout Shift)가 있는데요,
만약 width와 height가 HTML 속성으로 부여되어있지않다면 CSS 파일이 로드되기전에는 브라우저가 이미지의 크기를 알 수 없고, CSS 파일은 나중에 로드되거나 변경될 수 있기때문에 선택자 매칭과 계산 과정이 필요하게됩니다.

따라서 레이아웃이 갑자기 변경될 수 있는 가능성을 방지(CLS 방지)하면서 CSS가 로드되지않더라도 항상 안정적으로 레이아웃을 유지시키고싶다면, HTML 속성으로 width와 height를 미리 지정해 브라우저에게 이미지 로드전에 필요한 정확한 크기 계산(레이아웃 계산)을 수행하게 만들어줄수있습니다. 물론 이정도로 가시적이고 유의미한 차이는 없겠지만, 이 기회에 브라우저에서 html, css, js파일이 어떻게 로드되는지 동작 원리나 배경을 학습해보시면 도움이 될 것 같아 알려드립니다! :)

</div>
<div class="item-content">
<p class="font-blue">Register</p>
<div class="font-fat">판매를 원하는<br>상품을 등록하세요</div>
<div>어떤 물건이든 판매하고 싶은 상품을<br>쉽게 등록하세요</div>
</div>
</div>
</section>
<section class="hero">
<div class="hero-content">
<h1 class="hero-title">믿을 수 있는<br>판다마켓 중고 거래</h1>
</div>
<div class="hero-image">
<img src="images/Img_home_bottom.png" alt="판다 캐릭터" />
</div>
</section>
</main>
Copy link
Collaborator

Choose a reason for hiding this comment

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

main 태그가 불완전한 상태로 배치되어있네요!

<footer>
<div class="footer-credit">© codeit - 2024</div>
<div class="footer-policy">
<a href="/privacy.html">Privacy Policy</a>
<a href="/faq.html">FAQ</a>
</div>
<div class="footer-sns">
<a href="https://www.facebook.com/"><img src="/images/ic_facebook.svg"></a>
<a href="https://x.com/?lang=kr"><img src="/images/ic_twitter.svg"></a>
<a href="https://www.youtube.com/"><img src="/images/ic_youtube.svg"></a>
<a href="https://www.instagram.com/"><img src="/images/ic_instagram.svg"></a>
</div>
</footer>
</body>

</html>
11 changes: 11 additions & 0 deletions items.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>ITEMS PAGE</h1>
</body>
</html>
11 changes: 11 additions & 0 deletions login.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>LOGIN PAGE</h1>
</body>
</html>
11 changes: 11 additions & 0 deletions privacy.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>PRIVACY PAGE</h1>
</body>
</html>
48 changes: 48 additions & 0 deletions styles/reset.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
156 changes: 156 additions & 0 deletions styles/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
* {
box-sizing: border-box;
font-family: 'Pretendard', sans-serif;
}

body {
margin: 0;
padding: 0;
background-color: #ffffff;
font-size: 16px;
}
Comment on lines +1 to +11
Copy link
Collaborator

Choose a reason for hiding this comment

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

전역적인 스타일 처리는 common.css로 분리해 용도에 따라 파일을 구분해보는것도 좋겠네요! :)

Copy link
Collaborator

Choose a reason for hiding this comment

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

아래 코멘트에서 달아드린 css 변수 처리도 해당 파일에 두면 유지보수 및 관리에 용이할거예요 :)


.wrap {
width: 100%;
margin: 0 auto;
padding: 32px;
}

/* 헤더 스타일 */
header {
display: flex;
justify-content: space-around;
align-items: center;
padding: 16px 32px;
background-color: #ffffff;
}

/* 버튼스타일 */
.btn-small-40 {
padding: 12px 24px;
background-color: #3692FF;
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로 처리해서 재사용해줄까요?

Copy link
Collaborator

Choose a reason for hiding this comment

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

예시)

:root {
    /* Colors */
    --color-primary: #3692FF;
    --color-primary-dark: #3b82f6;
    --color-text-primary: #333;
    --color-text-secondary: #374151;
    --color-background: #ffffff;
    --color-background-light: #FCFCFC;
    --color-background-blue: #dbeafe;
    --color-footer: #111827;
    --color-footer-text: #E5E7EB;

    /* Spacing */
    --spacing-xs: 8px;
    --spacing-sm: 16px;
    --spacing-md: 24px;
    --spacing-lg: 32px;
    --spacing-xl: 40px;
    --spacing-xxl: 60px;
    --spacing-xxxl: 100px;

    /* Font Sizes */
    --font-size-xs: 16px;
    --font-size-sm: 18px;
    --font-size-md: 20px;
    --font-size-lg: 24px;
    --font-size-xl: 40px;

    /* Border Radius */
    --border-radius-sm: 8px;
    --border-radius-lg: 40px;

    /* Container Widths */
    --container-padding: 32px;
    --container-max-width: 1200px;
}

color: #ffffff;
border: none;
border-radius: 8px;
cursor: pointer;
}

.browse-btn {
background-color: #3b82f6;
color: #F9FAFB;
border: none;
padding: 16px 124px;
border-radius: 40px;
cursor: pointer;
font-weight: 600;
font-size: 20px;
flex-shrink: 0;
}

/* Hero 섹션 스타일 */
.hero {
width: 100%;
background-color: #dbeafe;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
padding: 100px 20px 0 20px;
margin: 0;
}

.hero-title {
font-size: 2rem;
font-weight: 700;
color: #333;
line-height: 1.4;
margin-bottom: 20px;
}

.hero-image img {
overflow: hidden;
width: auto;
max-height: 280px;
display: block;
}

/* item section */
.item {
display: flex;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
padding: 60px 20px;
margin: 0;
}

.item img {
height: 444px;
width: 579px;
object-fit: cover;
}

.item-container {
display: flex;
background-color: #FCFCFC;
position: relative;
align-items: center;
}

.item-content {
display: flex;
width: 298px;
height: 238px;
flex-direction: column;
justify-content: center;
align-items: left;
padding-left: 50px;
}

/* text style */
.font-blue {
color: #3692FF;
font-size: 18px;
font-weight: 700;
}

.font-normal {
color: #374151;
font-size: 24px;
font-weight: 500;
}

.font-fat {
color: #374151;
font-size: 40px;
font-weight: 700;
line-height: 1.4;
padding: 15px 0;
}

/* footer section */

footer {
display: flex;
justify-content: space-around;
align-items: center;
color: #E5E7EB;
background-color: #111827;
padding: 32px 40px;
}

.footer-credit {
font-weight: 400;
}

.footer-sns>* {
margin: 0 8px;
}

.footer-policy>* {
color: #E5E7EB;
margin: 0 10px;
text-decoration: none;
}
Loading