Skip to content

Conversation

@gyoyeon-kim
Copy link
Collaborator

@gyoyeon-kim gyoyeon-kim commented Jan 19, 2025

요구사항

기본

  • 아래로 스크롤 해도 상단 네비게이션 바가 최상단에 고정됩니다.
  • "판다마켓" 클릭 시 루트페이지로 이동합니다.
  • 로그인 페이지, 회원가입 페이지 모두 로고 위 상단 여백이 동일합니다.
  • input 요소에 focus in 일 때, 테두리 색상은 #3692FF입니다.
  • input 요소에 focus out 일 때, 테두리는 없습니다.
  • SNS 아이콘들은 클릭시 각각 아래 페이지로 이동합니다.

심화

  • 비밀번호 input 요소 오른쪽에 눈모양 아이콘을 추가합니다.
  • [] palette에 있는 color 값들을 css 변수로 등록하고 사용합니다.

주요 변경사항

1차 코드리뷰 반영

  • 커밋 단위 자주, 작게
  • 이미지 svg로 저장
  • h1 태그 하나로 수정
  • reset.css 추가
  • 프리티어 사용

스크린샷

로그인
로그인

회원가입
회원가입

멘토에게

  • 피그마의 크기대로 버튼, input 등을 구현하면 캡처 시에는 피그마와 비슷해 보이는데 실제로 화면을 보면 화면에 버튼, 글자들이 커서 화면을 꽉 채웁니다.
    지금처럼 피그마에서 제공한 크기를 그대로 따라 하는 게 좋을까요? 아니면 다른 방법이 있을까요?

  • login.css와 signup.css 파일에 겹치는 부분이 많습니다. 그래서 저는 login.css class 이름을 그대로 쓰고 추가된 부분만 signup.css에 입력했습니다. 이렇게 css 파일에서 겹치부분이 많을 때 더 좋은 방법이 있을까요?

@gyoyeon-kim gyoyeon-kim added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Jan 19, 2025
@kiJu2
Copy link
Collaborator

kiJu2 commented Jan 21, 2025

스프리트 미션 하시느라 수고 많으셨어요.
학습에 도움 되실 수 있게 꼼꼼히 리뷰 하도록 해보겠습니다. 😊

@kiJu2
Copy link
Collaborator

kiJu2 commented Jan 21, 2025

피그마의 크기대로 버튼, input 등을 구현하면 캡처 시에는 피그마와 비슷해 보이는데 실제로 화면을 보면 화면에 버튼, 글자들이 커서 화면을 꽉 채웁니다. 지금처럼 피그마에서 제공한 크기를 그대로 따라 하는 게 좋을까요? 아니면 다른 방법이 있을까요?

피그마 규격을 그대로 맞추시면 됩니다 ! 혹시 브라우저에 zoom in기능이 활성화 되어있지는 않으실까요? 그게 아니라면 모니터의 해상도에 따라 다르게 보일 수도 있을 것 같아요.
위 원인이 아니고 문제가 해결되지 않는다면 DM주세요 !

@kiJu2
Copy link
Collaborator

kiJu2 commented Jan 21, 2025

login.css와 signup.css 파일에 겹치는 부분이 많습니다. 그래서 저는 login.css class 이름을 그대로 쓰고 추가된 부분만 signup.css에 입력했습니다. 이렇게 css 파일에서 겹치부분이 많을 때 더 좋은 방법이 있을까요?

좋은 생각이세요. 재사용성에 필요성을 느끼셨군요 ! "인증"과 관련된 디자인이 유사하다면 다음과 같이 스트럭쳐를 구성해볼 수도 있을 것 같아요:

auth/sign-up/index.html
auth/sign-up/index.styles.css
auth/sign-in/index.html
auth/sign-in/index.styles.css
auth/index.styles.css // 공통되는 부분

제가 생각하는 아이디어는 위와 같으며 다른 좋은 방법이 있다면 적용해보셔도 좋습니다 😊

Comment on lines +60 to +66
input {
border: none;
background-color: transparent; /* 투명 배경 */
outline: none;
flex: 1;
font-size: 16px;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

(제안) 만약 스타일 선택자 목적이라면 태그보다는 class를 선택자로 사용하는게 어떨까요?

클래스는 재사용이 가능하며, 자유롭게 태그에 스타일을 붙일 수 있어서 유지보수에 용이하므로 단순히 스타일을 위해서라면 class를 추천드려요 !

좀 더 자세히 🤔

유지보수가 어려워질 수 있어요.

특정 p 태그에만 다른 스타일을 적용하려면 추가적인 선택자를 작성하거나 기존 스타일을 덮어써야 하므로 유지보수가 어려워집니다.

태그 의미를 명확히 부여하기 어려워요.

스타일링을 태그에 직접 적용하면, 태그가 어떤 의미를 가지는지 어렵기에 가독성이 보다 좋지 못할 수 있어요.

만약 다음 코드의 스타일을 태그 선택자로만 지정한다면 ?

<p class="error-message">오류가 발생했습니다.</p>

물론 전역적인 것을 의미한다면 일정 허용될 수 있어요.

예를 들어서 p의 기본 마진을 없애고 싶다면 다음과 같이 작성할 수 있을거예요:

p {
    margin: 0;
}

그렇지만 특정 스타일을 지정하고 싶다면 다음과 같이 작성해볼 수 있어요:

.paragraph {
    font-size: 16px;
    color: #333;
}

.highlight {
    background-color: yellow;
}

Copy link
Collaborator

Choose a reason for hiding this comment

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

굿굿 ! reset.css를 적용하셨군요 !

이로써 교연님의 서비스가 모든 브라우저에서 동일한 UI가 출력될 수 있기를 기대할 수 있을거예요 👍👍

Comment on lines +22 to +29
<h3>이메일</h3>
<div class="input_wrapper">
<input
id="email"
name="email"
placeholder="이메일을 입력해주세요."
/>
</div>
Copy link
Collaborator

Choose a reason for hiding this comment

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

<label>을 활용해보시는 건 어떨까요? 😊

Suggested change
<h3>이메일</h3>
<div class="input_wrapper">
<input
id="email"
name="email"
placeholder="이메일을 입력해주세요."
/>
</div>
<label for="email">이메일</label>
<div class="input_wrapper">
<input
id="email"
name="email"
placeholder="이메일을 입력해주세요."
/>
</div>

라벨은 다음과 같은 이점이 있습니다:
<label><input> (en-US) 요소와 연결하면 몇 가지 이점이 있습니다:

  • label 텍스트는 텍스트 입력과 시각적으로 관련이 있을뿐만 아니라 프로그래밍적으로도 관련이 있습니다. 예를 들어, 화면리더기(screenreader) 는 폼 입력(form input)에서 label 을 읽어서 보조기술(assistive technology) 사용자가 입력해야하는 텍스트가 무엇인지 더 쉽게 이해할 수 있게 합니다.
  • 관련 label 을 클릭해서 input 자체에 초점을 맞추거나 활성화를 시킬 수 있습니다. (활성되어서)늘어난 누를 수 있는 영역(hit area)은 터치스크린 사용자를 포함해 입력하려하는 모든 사람에게 이점을 줍니다.

출처: MDN

Comment on lines +33 to +38
id="passwd"
name="passwd"
type="password"
minlength="8"
maxlength="20"
placeholder="비밀번호를 입력해주세요."
Copy link
Collaborator

Choose a reason for hiding this comment

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

크으 input 프로퍼티에 무엇이 있는지 꼼꼼히 확인하신 티가 나시는군요 👍👍

input에 있는 적절한 유효성 검사 속성들을 잘 작성하셨습니다.
추가로 required도 적용해볼 수 있겠어요.

required: required<form> 내부에서 서식을 작성하지 않았을 때 브라우저에서 유저에게 피드백을 줄 수 있습니다.

Comment on lines +33 to +34
id="passwd"
name="passwd"
Copy link
Collaborator

Choose a reason for hiding this comment

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

줄임말 보다는 의도를 명확히 전달해보는건 어떨까요?

Suggested change
id="passwd"
name="passwd"
id="password"
name="password"

물론 btn, pw 등 편의를 위해서 사용되기도 하나, 명확한 클래스 이름을 사용하시는게 더욱 의도된 바를 전달하기 쉽습니다.

이는 "닌자 코드"에 해당하는 문법입니다:
약어 사용하기
팀에 한 글자 짜리 변수나 모호한 변수명을 사용하지 못하게 하는 제약이 있다면 약어를 쓰는 기지를 발휘하세요. 변수명은 짧을수록 좋으니까요.

예시:

list → lst.
userAgent → ua.
browser → brsr.
등등…
모든 걸 줄여서 당신의 코드를 읽을 가치가 있는 직감이 뛰어난 개발자만 유지보수를 담당 할 수 있게 해 놓읍시다.


위 문서는 "이렇게 해라 !"가 아니라, "이를 지양하자 !"라는 것으로 작성된 문서 내용입니다. 😊
물론 oAuth(Open Authorization), sms(Short Message Service) 와 같이 내용이 길어서 통상적으로 줄임말을 사용하는 경우도 있기는 하기에 무조건 풀 텍스트를 사용하자 라는 차원은 아님을 전달드립니다. 😊

type="password"
minlength="8"
maxlength="20"
placeholder="비밀번호를 다시 입력해주세요."
Copy link
Collaborator

Choose a reason for hiding this comment

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

오타 발견 ! 😉

Suggested change
placeholder="비밀번호를 다시 입력해주세요."
placeholder="비밀번호를 다시 입력해주세요."

Comment on lines +14 to +22
header > nav {
max-width: 1920px;
height: 70px;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 200px;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

(제안) headernav는 중복하여 사용될 수 있습니다 !

특정 스타일 적용을 위해서라면 태그보다는 클래스 ! headernav의 경우 문서에 여러번 사용될 수 있으므로 여기도 클래스로 바꾸는걸 제안드립니다 😊

}
.section_text > h3,
.section_text2 > h3 {
color: #374151;
Copy link
Collaborator

Choose a reason for hiding this comment

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

컬러 팔레트를 사용해보시는건 어떨까요? 🎨

컬러는 따로 선언해두시고 재사용 해보시는건 어떨까요?
컬러 팔레트는 color.css 혹은 global.css에서 정의하는게 일반적입니다 !
컬러 팔레트는 다음과 같이 정의할 수 있습니다:

* {
  --primary: #6D6AFE;
  --red: #FF5B56;
  --black: #111322;
  --white: #FFFFFF;
  --gray-100: #3E3E43;
  --gray-200: #9FA6B2;
  --gray-300: #CCD5E3;
  --gray-400: #E7EFFB;
  --gray-500: #F0F6FF;
}

@kiJu2
Copy link
Collaborator

kiJu2 commented Jan 21, 2025

수고하셨습니다 교연님 !
reset.css 적용하셨군요 ㅎㅎㅎ 훌륭합니다. 전역적인 스타일 관리를 위해서 global.css도 한 번 적용해보시는거 추천드릴게요 !
컬러 팔레트도 교연님의 서비스 유지보수에 큰 도움이 될거라고 생각합니다 !

차근차근 성장해 나가시는 모습이 정말 보기 좋습니다 !
리뷰와 관련하여 궁금하신 점 있으시면 편하게 DM 주세요 ~! 😊

@kiJu2 kiJu2 merged commit ffe3e2a into codeit-bootcamp-frontend:Basic-김교연 Jan 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants