-
Notifications
You must be signed in to change notification settings - Fork 39
[김진선] Sprint1 #7
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
The head ref may contain hidden characters: "Basic-\uAE40\uC9C4\uC120-sprint1"
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| 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> |
| 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"> | ||
| <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> | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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="아이템 콘텐츠 이미지"> | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. NIT: 이미지 최적화를 위해서는 width와 height를 속성으로 부여해주시는게 좀 더 좋습니다. 성능 최적화 정도를 나타내는 중요한 지표중에 CLS(Cumulative Layout Shift)가 있는데요, 따라서 레이아웃이 갑자기 변경될 수 있는 가능성을 방지(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> | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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> | ||
| 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> |
| 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> |
| 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> |
| 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; | ||
| } |
| 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
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 전역적인 스타일 처리는 common.css로 분리해 용도에 따라 파일을 구분해보는것도 좋겠네요! :)
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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; | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 반복되는 값들은 css variables로 처리해서 재사용해줄까요?
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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; | ||
| } | ||
There was a problem hiding this comment.
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>There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
참고