Skip to content

feat: 메인 hero 반응형 수정(#250) - #251

Merged
lywoo00 merged 3 commits into
mainfrom
feat/#250-main-hero-section-modi
Mar 10, 2026
Merged

feat: 메인 hero 반응형 수정(#250)#251
lywoo00 merged 3 commits into
mainfrom
feat/#250-main-hero-section-modi

Conversation

@lywoo00

@lywoo00 lywoo00 commented Mar 9, 2026

Copy link
Copy Markdown
Contributor

📌 PR 개요

  • 메인 Hero 영역 수정

🔍 관련 이슈

🔧 변경 유형

해당하는 항목에 체크해주세요.

  • ✨ feat (새 기능 추가)
  • 🐛 fix (버그 수정)
  • 📝 docs (문서 수정)
  • 🎨 style (코드 스타일 변경)
  • ♻️ refactor (리팩토링)
  • ✅ test (테스트 코드)
  • 🛠 chore (빌드/환경설정)

✨ 변경 사항

  • 주요 변경 내용을 리스트로 정리해주세요.

ex

  • 로그인 API 연동 (/api/login) 추가
  • 로그인 폼에서 이메일/비밀번호 유효성 검사 로직 추가
  • 로그인 성공 시 JWT 토큰을 localStorage에 저장하도록 수정
  • UI: 로그인 버튼 클릭 시 로딩 스피너 추가

📝 PR 제목 규칙

PR 제목은 커밋 컨벤션을 따라야 합니다.
ex) feat: 롤링페이퍼 작성 기능 추가 (#15)

✅ 체크리스트

  • 코드가 정상 동작함
  • 빌드 및 실행 확인 완료
  • 리뷰어가 이해하기 쉽게 변경 이유를 설명했음

📸 스크린샷 (선택)

  • UI 변경이 있다면 캡처 이미지 첨부

🤝 기타 참고 사항

  • 리뷰어가 참고하면 좋을 추가 맥락(설계 의도, 제약사항 등)

Summary by CodeRabbit

  • 스타일

    • 히어로 섹션 레이아웃·타이포그래피·패딩·여백 조정으로 시각 균형 개선
    • 기존 텍스트/카드형 PR 분석 표시를 단순화된 이미지 기반 카드로 교체
    • 우측 비주얼 추가 및 재배치, 장식 요소(펄스 점 등) 제거로 디자인 간결화
    • 버튼·배지 스타일 미세 조정으로 일관된 표현 적용
  • Chores

    • 이미지 파일 타입 선언 추가 및 타입 검사 범위 확장으로 빌드 안정성 개선

@lywoo00
lywoo00 requested a review from yujinimda March 9, 2026 16:33
@lywoo00 lywoo00 self-assigned this Mar 9, 2026
@lywoo00 lywoo00 added the 🖼️design ui/ux 디자인 변경 label Mar 9, 2026
@vercel

vercel Bot commented Mar 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dev-craft Ready Ready Preview, Comment Mar 10, 2026 3:12am

@coderabbitai

coderabbitai Bot commented Mar 9, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

Walkthrough

HeroSection 컴포넌트가 Next.js Image로 교체되어 기존 복잡한 카드 레이아웃과 장식 요소를 제거하고, 두 개의 이미지 기반 히어로 카드로 시각 구성을 단순화했습니다. 타입 선언 파일과 tsconfig 포함 설정이 추가되어 이미지 임포트가 타입 안전하게 허용됩니다.

Changes

Cohort / File(s) Summary
HeroSection 이미지 및 레이아웃 업데이트
src/features/main/HeroSection.tsx
next/image 도입, 섹션 패딩/간격 및 타이포그래피 조정, 배지·버튼 스타일 미세조정. 오른쪽 복잡한 분석 카드 및 장식 요소(펄스 점 등) 제거 후 hero_2.png, hero_1.png 기반의 회전 카드 이미지 2개로 대체. 컨테이너 크기·절대 위치 조정 및 hover 회전 유지.
이미지 타입 선언 추가
src/types/image.d.ts
*.png, *.jpg, *.jpegnext/imageStaticImageData로, *.svgany로 선언하는 모듈 보강 추가(이미지 파일 import 타입 지원).
TS 구성 포함 업데이트
tsconfig.json
src/**/*.d.ts를 include에 추가해 새 선언 파일이 컴파일러에 포함되도록 변경.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰
새 이미지 두 장, 빛나는 한 컷,
복잡함은 사라지고 깔끔한 숲,
회전하는 카드에 눈부신 햇살,
나는 당근 들고 뛰어오르네 🥕✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 변경사항의 주요 내용과 일치합니다. 'feat: 메인 hero 반응형 수정'은 HeroSection 컴포넌트의 반응형 레이아웃 및 스타일 조정을 명확히 반영하고 있습니다.
Linked Issues check ✅ Passed PR 변경사항이 이슈 #250의 목표인 메인 hero 영역의 이미지 및 디자인 요소 개선을 충족합니다. HeroSection 컴포넌트의 레이아웃, 타이포그래피, 이미지 임포트 추가 등이 구현되어 있습니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 이슈 #250의 범위 내에서 진행되었습니다. hero 섹션의 반응형 수정, 이미지 컴포넌트 추가, 타입 정의 파일 추가 등이 메인 hero 영역 개선 목표와 일치합니다.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/#250-main-hero-section-modi

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
src/features/main/HeroSection.tsx (3)

68-68: Tailwind 클래스 내 불필요한 공백

right-0 뒤에 불필요한 공백이 있습니다. 기능에는 영향이 없지만 일관성을 위해 정리하는 것이 좋습니다.

-<div className="absolute top-12 right-0  w-80 sm:w-110 z-20">
+<div className="absolute top-12 right-0 w-80 sm:w-110 z-20">
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/features/main/HeroSection.tsx` at line 68, In the HeroSection component
update the div with className string "absolute top-12 right-0  w-80 sm:w-110
z-20" to remove the extra space after "right-0" so the classes read "absolute
top-12 right-0 w-80 sm:w-110 z-20"; locate the div in HeroSection.tsx (the
element with className containing right-0) and trim the redundant whitespace for
consistency.

59-66: 이미지 접근성 및 SEO 개선 권장

두 Image 컴포넌트의 alt 텍스트가 동일하게 "대시보드 이미지"로 설정되어 있습니다. 각 이미지가 서로 다른 내용을 보여준다면, 구체적이고 구별되는 alt 텍스트를 사용하는 것이 접근성과 SEO에 더 좋습니다.

 <Image
   src={HeroImage2}
-  alt="대시보드 이미지"
+  alt="PR 분석 코드 뷰어 화면"
   ...
 />
 ...
 <Image
   src={HeroImage1}
-  alt="대시보드 이미지"
+  alt="PR 분석 결과 대시보드"
   ...
 />

Also applies to: 70-75

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/features/main/HeroSection.tsx` around lines 59 - 66, The two Image
components in the HeroSection component use the same alt text "대시보드 이미지"; update
each Image's alt prop to be specific and descriptive (e.g., reference the actual
visual content shown by HeroImage2 and the other HeroImage) so they are distinct
for accessibility and SEO; locate the Image usages inside the HeroSection
component (including the Image with src={HeroImage2} and the other Image around
lines 70-75) and replace the duplicate alt values with meaningful, unique
strings that accurately describe each image.

9-9: padding 클래스 중복 확인 필요

py-15pb-30이 함께 사용되고 있습니다. py-*는 상하 padding을 동시에 설정하므로, pb-30이 하단 padding을 덮어쓰는 것이 의도된 동작인지 확인해 주세요.

만약 상단 15, 하단 30이 의도라면 명시적으로 작성하는 것이 더 명확합니다:

-<section className="py-15 pb-30 md:py-32 lg:py-40 px-6">
+<section className="pt-15 pb-30 md:py-32 lg:py-40 px-6">
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/features/main/HeroSection.tsx` at line 9, HeroSection 컴포넌트의 섹션에 py-15와
pb-30이 동시에 사용되어 하단 패딩이 덮어써지는지 모호하니 의도에 맞게 정리하세요: 상단과 하단을 각각 다르게 지정하려면 py-15를
제거하고 pt-15 pb-30으로 명시하거나(섹션 요소 또는 HeroSection 컴포넌트에서), 상하 동일 패딩이 목적이라면 pb-30을
제거하고 py-15만 남겨 중복을 제거하도록 수정하세요.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/features/main/HeroSection.tsx`:
- Around line 5-6: HeroSection.tsx currently imports images from the public
folder (HeroImage1, HeroImage2) which causes the TypeScript build error; remove
those imports and update the Image usage to reference the public images by URL
(e.g., src="/hero_1.png") or alternatively move the image files into the src
tree (e.g., src/assets/images) and import them there; if you keep the URL
approach, remove placeholder="blur" or provide a blurDataURL on the Image
component to avoid using blur with external/static URLs.

---

Nitpick comments:
In `@src/features/main/HeroSection.tsx`:
- Line 68: In the HeroSection component update the div with className string
"absolute top-12 right-0  w-80 sm:w-110 z-20" to remove the extra space after
"right-0" so the classes read "absolute top-12 right-0 w-80 sm:w-110 z-20";
locate the div in HeroSection.tsx (the element with className containing
right-0) and trim the redundant whitespace for consistency.
- Around line 59-66: The two Image components in the HeroSection component use
the same alt text "대시보드 이미지"; update each Image's alt prop to be specific and
descriptive (e.g., reference the actual visual content shown by HeroImage2 and
the other HeroImage) so they are distinct for accessibility and SEO; locate the
Image usages inside the HeroSection component (including the Image with
src={HeroImage2} and the other Image around lines 70-75) and replace the
duplicate alt values with meaningful, unique strings that accurately describe
each image.
- Line 9: HeroSection 컴포넌트의 섹션에 py-15와 pb-30이 동시에 사용되어 하단 패딩이 덮어써지는지 모호하니 의도에 맞게
정리하세요: 상단과 하단을 각각 다르게 지정하려면 py-15를 제거하고 pt-15 pb-30으로 명시하거나(섹션 요소 또는 HeroSection
컴포넌트에서), 상하 동일 패딩이 목적이라면 pb-30을 제거하고 py-15만 남겨 중복을 제거하도록 수정하세요.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ce08e278-3182-4a75-9452-a4ae86a73003

📥 Commits

Reviewing files that changed from the base of the PR and between 1acbd23 and e2f4e02.

⛔ Files ignored due to path filters (4)
  • public/hero_1.png is excluded by !**/*.png
  • public/hero_2.png is excluded by !**/*.png
  • public/next.svg is excluded by !**/*.svg
  • src/shared/assets/images/hero_1.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • src/features/main/HeroSection.tsx

Comment thread src/features/main/HeroSection.tsx Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
src/features/main/HeroSection.tsx (1)

5-6: ⚠️ Potential issue | 🟠 Major

불완전한 CSS 클래스 및 이미지 임포트 패턴 수정 필요

두 가지 문제를 확인했습니다:

  1. 라인 10: 불완전한 Tailwind CSS 클래스 - pb- 뒤에 값이 누락되었습니다. pb-4, pb-6, pb-8 등의 값을 지정해야 합니다.

  2. 이미지 임포트 및 사용 패턴 - PNG 파일을 ES6 모듈로 직접 임포트하여 Image 컴포넌트의 src에 전달하는 방식은 Next.js에서 권장되지 않습니다. 또한 placeholder="blur"를 사용하면서 blurDataURL을 제공하지 않으면 런타임 오류가 발생합니다.

프로젝트의 다른 곳에서는 public 폴더의 이미지를 문자열 경로로 참조하고 있습니다. 다음과 같이 수정하세요:

이미지 파일 제거 및 URL 경로 사용
-import HeroImage1 from '@/shared/assets/images/hero_1.png';
-import HeroImage2 from '@/shared/assets/images/hero_2.png';

그리고 Image 컴포넌트에서:

<Image
  src="/hero_1.png"
  alt="대시보드 이미지"
  width={440}
  height={300}
  className="w-full h-auto"
/>

주의: URL 경로 방식 사용 시 placeholder="blur"는 제거하거나 명시적으로 blurDataURL을 제공해야 합니다.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/features/main/HeroSection.tsx` around lines 5 - 6, In HeroSection.tsx fix
two issues: replace the incomplete Tailwind class `pb-` with a concrete value
(e.g., `pb-4` or `pb-6`) on the element using it, and stop importing PNGs as ES
modules (remove imports HeroImage1 and HeroImage2) and instead reference images
by public URL strings in the Next.js Image components (set src="/hero_1.png"
etc.), and if you keep placeholder="blur" supply a valid blurDataURL or remove
the placeholder prop to avoid runtime errors.
🧹 Nitpick comments (1)
src/features/main/HeroSection.tsx (1)

60-76: 이미지 alt 속성 개선 권장

두 이미지 모두 동일한 alt 텍스트("대시보드 이미지")를 사용하고 있습니다. 접근성과 SEO를 위해 각 이미지의 내용을 구체적으로 설명하는 고유한 alt 텍스트를 사용하는 것이 좋습니다.

♿ 접근성 개선을 위한 alt 텍스트 수정 예시
 <Image
   src={HeroImage2}
-  alt="대시보드 이미지"
+  alt="PR 분석 대시보드 미리보기"
   placeholder="blur"
   className="w-full h-auto"
 />
 ...
 <Image
   src={HeroImage1}
-  alt="대시보드 이미지"
+  alt="코드 리뷰 분석 결과 화면"
   placeholder="blur"
   className="w-full h-auto"
 />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/features/main/HeroSection.tsx` around lines 60 - 76, The two Image
components rendering HeroImage1 and HeroImage2 both use the same alt text "대시보드
이미지"; update the alt attributes on the Image elements (the ones referencing
HeroImage1 and HeroImage2 in HeroSection.tsx) to unique, descriptive strings
that reflect each image's content (e.g., "앱 대시보드 개요" vs "상세 통계 모듈" or similar),
ensuring they are concise and convey the image purpose for accessibility and
SEO.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/features/main/HeroSection.tsx`:
- Line 10: In the HeroSection component there's an incomplete Tailwind class in
the section element's className ("pb-") which should be removed or replaced with
the intended padding value; edit the className string in HeroSection.tsx (the
<section className="py-15 pb- md:py-32 lg:py-40 px-6"> line) to either remove
"pb-" or change it to a valid Tailwind class such as "pb-8" or "pb-16" so the
CSS is valid and behaves as expected.

---

Duplicate comments:
In `@src/features/main/HeroSection.tsx`:
- Around line 5-6: In HeroSection.tsx fix two issues: replace the incomplete
Tailwind class `pb-` with a concrete value (e.g., `pb-4` or `pb-6`) on the
element using it, and stop importing PNGs as ES modules (remove imports
HeroImage1 and HeroImage2) and instead reference images by public URL strings in
the Next.js Image components (set src="/hero_1.png" etc.), and if you keep
placeholder="blur" supply a valid blurDataURL or remove the placeholder prop to
avoid runtime errors.

---

Nitpick comments:
In `@src/features/main/HeroSection.tsx`:
- Around line 60-76: The two Image components rendering HeroImage1 and
HeroImage2 both use the same alt text "대시보드 이미지"; update the alt attributes on
the Image elements (the ones referencing HeroImage1 and HeroImage2 in
HeroSection.tsx) to unique, descriptive strings that reflect each image's
content (e.g., "앱 대시보드 개요" vs "상세 통계 모듈" or similar), ensuring they are concise
and convey the image purpose for accessibility and SEO.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 25b9c654-2dad-4c27-8b55-778e7811faf4

📥 Commits

Reviewing files that changed from the base of the PR and between e2f4e02 and 7734321.

⛔ Files ignored due to path filters (2)
  • src/shared/assets/images/hero_1.png is excluded by !**/*.png
  • src/shared/assets/images/hero_2.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • src/features/main/HeroSection.tsx

Comment thread src/features/main/HeroSection.tsx Outdated
@lywoo00
lywoo00 merged commit 61f2857 into main Mar 10, 2026
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🖼️design ui/ux 디자인 변경

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DESIGN] 메인 페이지 디자인 수정

1 participant