Skip to content

[Feat] WTH-398 : 게시판 반응형 적용#122

Open
nabbang6 wants to merge 8 commits into
developfrom
WTH-398-게시판-반응형-적용

Hidden character warning

The head ref may contain hidden characters: "WTH-398-\uac8c\uc2dc\ud310-\ubc18\uc751\ud615-\uc801\uc6a9"
Open

[Feat] WTH-398 : 게시판 반응형 적용#122
nabbang6 wants to merge 8 commits into
developfrom
WTH-398-게시판-반응형-적용

Conversation

@nabbang6
Copy link
Copy Markdown
Collaborator

@nabbang6 nabbang6 commented May 27, 2026

✅ PR 유형

어떤 변경 사항이 있었나요?

  • 새로운 기능 추가
  • 버그 수정
  • 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
  • 코드 리팩토링
  • 주석 추가 및 수정
  • 문서 수정
  • 빌드 부분 혹은 패키지 매니저 수정
  • 파일 혹은 폴더명 수정
  • 파일 혹은 폴더 삭제

📌 관련 이슈번호

  • Closed #398

✅ Key Changes

게시판 레이아웃 반응형 전환

  • board/layout.tsx: 모바일 접근을 막던 MobileBlocker 제거 — 모바일에서도 게시판 접근 가능
  • board/(with-nav)/layout.tsx: 레이아웃을 모바일 flex-col → 태블릿 이상 flex-row로 전환, 패딩도 반응형 적용

게시판 내비게이션 반응형 분기

  • BoardNavClient.tsx: footer prop 추가
    • 모바일: CategorySelector 드롭다운 (태블릿 이상 숨김)
    • 태블릿+: 사이드바(BoardNav + footer) 표시
  • BoardNavSkeleton.tsx: 모바일(드롭다운 형태) / 태블릿+(사이드바 형태) 스켈레톤 분리

헤더 반응형 개선

  • Header.tsx: 게시물 작성 페이지가 아닐 때 MobileWriteButton을 함께 노출하도록 조건 분기 리팩토링
  • MobileWriteButton.tsx : 모바일 게시판 페이지에서 글쓰기 버튼 표시
  • PostingActions.tsx: 모바일에서는 sm 크기 버튼 + 전송 아이콘 숨김, 태블릿 이상에서 기존 md 스타일 복원

MobileNavSheet 게시판 목록 표시

  • 게시판 페이지에서 사이드 메뉴를 열면 게시판 내비게이션 아이템 하위에 보드 목록 표시
  • 현재 활성 보드를 브랜드 색상으로 강조

게시판 타입 정렬 순서 수정

  • BOARD_TYPE_ORDER: ALL → NOTICE → GENERAL 순으로 변경 (기존: NOTICE → ALL → GENERAL)

📸 스크린샷 or 실행영상

게시판

2026-05-27.172625.mp4

게시글 작성

image image

🎸 기타 사항 or 추가 코멘트

반응형 적용하면서 보니까,, 게시판 목록 정렬이 공지사항부터 되어 잇길래... ㅠ.ㅜ
겸사겸사 같이 수정해두엇습니당

Summary by CodeRabbit

릴리스 노트

  • New Features

    • 모바일 환경에서 카테고리 선택 드롭다운 추가
    • 모바일 글쓰기 버튼 추가로 게시판 접근성 개선
  • Refactor

    • 모바일/태블릿 이상 환경에 맞춘 반응형 레이아웃 개선
    • 헤더 영역 UI 구조 최적화
    • 게시판 목록 정렬 순서 조정

Review Change Stack

@nabbang6 nabbang6 requested review from JIN921, dalzzy and woneeeee May 27, 2026 08:32
@nabbang6 nabbang6 self-assigned this May 27, 2026
@nabbang6 nabbang6 added the 🎨 Html&css 마크업 & 스타일링 label May 27, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 27, 2026

📝 Walkthrough

요약

보드 네비게이션을 반응형으로 재구성하여 모바일/태블릿+ 레이아웃을 분기하고, footer prop을 네비게이션 계층으로 이동시킵니다. 새로운 MobileWriteButton을 추가하고 헤더 액션을 posting 페이지별로 조건부 렌더링합니다.

변경사항

보드 네비게이션 반응형 아키텍처

레이어 / 파일 요약
보드 네비게이션 Props 및 데이터 흐름
src/app/(private)/[clubId]/(main)/board/(with-nav)/BoardNavClient.tsx, src/app/(private)/[clubId]/(main)/board/(with-nav)/layout.tsx
BoardNavClient의 props에 footer: ReactNode를 추가하고, BoardNavLoader가 이를 받아 BoardNavClient로 전달합니다. 컴포넌트 시그니처와 인터페이스가 확장됩니다.
보드 네비게이션 반응형 렌더링
src/components/board/BoardNavSkeleton.tsx, src/components/board/CategorySelector.tsx
모바일에서는 CategorySelector 드롭다운(태블릿에서 숨김)을, 태블릿+에서는 BoardNavfooteraside에 포함하여 렌더링합니다. filterAll 옵션으로 ALL 항목 필터링을 제어합니다.
보드 레이아웃 단순화
src/app/(private)/[clubId]/(main)/board/layout.tsx
BoardLayout에서 비동기 params 처리와 MobileBlocker 기반 구조를 제거하고, children만 받아 렌더링합니다.

모바일 쓰기 액션 및 헤더 분기

레이어 / 파일 요약
MobileWriteButton 컴포넌트 구현
src/components/layout/header/MobileWriteButton.tsx
경로 검증(/{clubId}/board)과 권한 확인(canWrite)을 거쳐 쓰기 버튼을 렌더링하고, CardinalMissingModalProfileIncompleteModal을 동적으로 로드하여 상태를 연결합니다.
헤더 액션 조건부 렌더링
src/components/layout/header/Header.tsx
isPostingPage 조건에 따라 우측 액션을 분기합니다. posting 페이지에서는 PostingActions, 일반 페이지에서는 MobileWriteButton, 운영진 버튼, 프로필 아바타를 표시합니다.
모바일 네비게이션 시트 보드 목록
src/components/layout/header/MobileNavSheet.tsx
useBoardListuseActiveBoardId를 통합하여 보드 페이지에서만 보드 목록 섹션을 렌더링하고, "전체" 옵션을 자동으로 추가하며 활성 상태를 표시합니다.
Posting 액션 버튼 반응형 스타일
src/components/layout/header/PostingActions.tsx
버튼 크기를 md에서 sm으로 변경하고, tablet:* 클래스로 타이포/라운딩/패딩을 조정하며, 아이콘 표시를 조건부로 처리합니다.

상수 및 포맷 정리

레이어 / 파일 요약
보드 타입 순서 및 import 정리
src/constants/board/type.ts, src/hooks/attendance/useAttendanceSSE.ts
BOARD_TYPE_ORDER에서 ALLNOTICE의 우선순위를 교환(ALL: 1→0, NOTICE: 0→1)하고, import 문을 멀티라인에서 단일 라인으로 정리합니다.

관련 PR

  • Team-Weeth/weeth-client#105: BoardLayoutMobileBlocker/BackOrHomeButton 구조를 제거하는 변경이 동일 코드 흐름을 직접 수정합니다.
  • Team-Weeth/weeth-client#67: Header.tsx의 우측 액션 렌더링 로직을 수정하는 점에서 동일 컴포넌트 JSX 동작을 변경합니다.
  • Team-Weeth/weeth-client#33: BoardNavClient.tsx와 보드 네비게이션 레이아웃을 재구성하는 점에서 동일 모듈의 props/동작을 확장합니다.

추천 라벨

✨ Feature, 🔨 Refactor

추천 리뷰어

  • woneeeee
  • JIN921

🎯 3 (Moderate) | ⏱️ ~25 minutes

🐰 모바일과 태블릿, 모두 행복하게
보드 네비는 반응형으로 춤을 추고
쓰기 버튼이 팝업하며
헤더는 지혜롭게 액션을 분기하니
사용자들의 미소도 함께 반응형입니다! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.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
Title check ✅ Passed PR 제목은 '[Feat] WTH-398 : 게시판 반응형 적용'으로 핵심 변경사항(게시판 반응형 적용)을 명확하게 설명하고 있습니다.
Description check ✅ Passed PR 설명은 템플릿의 필수 섹션을 모두 포함하고 있으며, 상세한 Key Changes, 관련 이슈번호, 스크린샷/영상이 제공되어 변경사항이 명확합니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch WTH-398-게시판-반응형-적용

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.

@github-actions
Copy link
Copy Markdown

PR 테스트 결과

Jest: 통과

🎉 모든 테스트를 통과했습니다!

@github-actions
Copy link
Copy Markdown

PR 검증 결과

TypeScript: 통과
ESLint: 통과
Prettier: 통과
Build: 통과

🎉 모든 검증을 통과했습니다!

@github-actions
Copy link
Copy Markdown

구현한 기능 Preview: https://weeth-1kwyjo667-weethsite-4975s-projects.vercel.app

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🧹 Nitpick comments (2)
src/components/layout/header/MobileNavSheet.tsx (1)

29-29: ⚡ Quick win

isPostingPage 로직이 중복됩니다.

이 로직이 Header.tsx (line 34)에도 동일하게 정의되어 있습니다. 공통 유틸리티 함수나 커스텀 훅으로 추출하는 것을 권장합니다.

♻️ 제안: 공통 로직 추출

src/utils/route.ts 파일을 생성하여 중복을 제거할 수 있습니다:

// src/utils/route.ts
export function isPostingPage(pathname: string): boolean {
  return pathname.includes('/write') || /\/board\/edit\/\d+$/.test(pathname);
}

그런 다음 두 파일에서 이 함수를 import하여 사용합니다.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/layout/header/MobileNavSheet.tsx` at line 29, The
isPostingPage logic is duplicated between MobileNavSheet.tsx and Header.tsx;
extract it into a shared utility and import it from both places. Create a
function named isPostingPage(pathname: string): boolean (for example in
src/utils/route.ts) that returns pathname.includes('/write') ||
/\/board\/edit\/\d+$/.test(pathname), then replace the inline expressions in
MobileNavSheet.tsx and Header.tsx with calls to isPostingPage(pathname). Ensure
both files import the new function and remove the duplicated regex/include
logic.
src/components/layout/header/Header.tsx (1)

34-34: ⚡ Quick win

isPostingPage 로직이 중복됩니다.

이 로직이 MobileNavSheet.tsx (line 29)에도 동일하게 정의되어 있습니다. 공통 유틸리티 함수나 커스텀 훅으로 추출하는 것을 권장합니다.

♻️ 제안: 공통 로직 추출

src/utils/route.ts 또는 src/hooks/useIsPostingPage.ts 파일을 생성하여 중복을 제거할 수 있습니다:

// src/utils/route.ts
export function isPostingPage(pathname: string): boolean {
  return pathname.includes('/write') || /\/board\/edit\/\d+$/.test(pathname);
}

그런 다음 두 파일에서 이 함수를 import하여 사용합니다.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/layout/header/Header.tsx` at line 34, The isPostingPage check
(used in Header.tsx as the isPostingPage const and duplicated in
MobileNavSheet.tsx) should be extracted to a single shared utility or hook to
remove duplication; create a small exported function (e.g.,
isPostingPage(pathname: string)) or a hook (e.g., useIsPostingPage) that
implements the logic pathname.includes('/write') ||
/\/board\/edit\/\d+$/.test(pathname), replace the local const in Header.tsx and
the duplicate in MobileNavSheet.tsx with an import of that shared function/hook,
and update imports accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/app/`(private)/[clubId]/(main)/board/(with-nav)/BoardNavClient.tsx:
- Line 119: The component BoardNavClient.tsx contains a hardcoded Tailwind
shadow class "shadow-[0_5px_20px_rgba(17,33,49,0.2)]"; replace this with the
project's shadow design token class (e.g., the appropriate shadow token used
across the app) by updating the className on the BoardNavClient element or the
related cva variant in this file to use that token instead, and if no suitable
token exists, ask before adding a new design token so we stay compliant with the
Tailwind v4 + cva styling guideline.

In `@src/components/board/BoardNavSkeleton.tsx`:
- Line 10: The div in BoardNavSkeleton.tsx uses a hardcoded width class
"w-[304px]"; replace it with the appropriate design token or responsive utility
instead: look for an existing sidebar width token (e.g., a class like w-sidebar
or a token in your tailwind/design-tokens) and swap "w-[304px]" to that token;
if no token exists, use a responsive utility such as w-auto or w-fit where
suitable, and if a new design token is required, confirm with the
product/designer before adding it and then update the class accordingly in
BoardNavSkeleton.

In `@src/components/board/CategorySelector.tsx`:
- Line 56: Replace the hardcoded height class "h-[40px]" in the CategorySelector
component's container class string with an approved design-token utility (e.g.,
use Tailwind's h-10 or your project's height token) by updating the class list
in the JSX where the string contains 'bg-container-neutral flex h-[40px] w-full
items-center rounded-lg py-200 pr-200 pl-300'; if no existing token fits, ask
the product/design owner before adding a new token and then use that new token
class instead of a raw pixel value.

In `@src/components/layout/header/Header.tsx`:
- Line 92: The element in Header.tsx currently uses a raw utility class "p-2"
which violates spacing token rules; update the className on the header element
(the JSX element that contains className="text-icon-normal p-2") to use the
approved spacing token (p-100 through p-500) that matches the intended visual
spacing (e.g., p-100/p-200/etc.), and if any gaps are used elsewhere in the same
component replace raw gap classes with gap-100~400 accordingly to conform with
the design token guidelines.

In `@src/components/layout/header/PostingActions.tsx`:
- Line 33: The class string in PostingActions.tsx uses a raw spacing utility
`tablet:px-4` which violates the design token rule; locate the className on the
element inside the PostingActions component and replace `tablet:px-4` with the
appropriate design-token spacing class (e.g., use the token form from
p-100..p-500 or the horizontal padding token if your token naming is
px-100/px-200, etc.) so all spacing uses the defined tokens (also consider
gap-100..gap-400 where applicable); keep other classes like `tablet:typo-button1
tablet:rounded-md text-text-strong whitespace-nowrap` unchanged.

---

Nitpick comments:
In `@src/components/layout/header/Header.tsx`:
- Line 34: The isPostingPage check (used in Header.tsx as the isPostingPage
const and duplicated in MobileNavSheet.tsx) should be extracted to a single
shared utility or hook to remove duplication; create a small exported function
(e.g., isPostingPage(pathname: string)) or a hook (e.g., useIsPostingPage) that
implements the logic pathname.includes('/write') ||
/\/board\/edit\/\d+$/.test(pathname), replace the local const in Header.tsx and
the duplicate in MobileNavSheet.tsx with an import of that shared function/hook,
and update imports accordingly.

In `@src/components/layout/header/MobileNavSheet.tsx`:
- Line 29: The isPostingPage logic is duplicated between MobileNavSheet.tsx and
Header.tsx; extract it into a shared utility and import it from both places.
Create a function named isPostingPage(pathname: string): boolean (for example in
src/utils/route.ts) that returns pathname.includes('/write') ||
/\/board\/edit\/\d+$/.test(pathname), then replace the inline expressions in
MobileNavSheet.tsx and Header.tsx with calls to isPostingPage(pathname). Ensure
both files import the new function and remove the duplicated regex/include
logic.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7a7ec501-8209-4de6-bfc8-3a31bcc26471

📥 Commits

Reviewing files that changed from the base of the PR and between 7d82f78 and b184384.

📒 Files selected for processing (11)
  • src/app/(private)/[clubId]/(main)/board/(with-nav)/BoardNavClient.tsx
  • src/app/(private)/[clubId]/(main)/board/(with-nav)/layout.tsx
  • src/app/(private)/[clubId]/(main)/board/layout.tsx
  • src/components/board/BoardNavSkeleton.tsx
  • src/components/board/CategorySelector.tsx
  • src/components/layout/header/Header.tsx
  • src/components/layout/header/MobileNavSheet.tsx
  • src/components/layout/header/MobileWriteButton.tsx
  • src/components/layout/header/PostingActions.tsx
  • src/constants/board/type.ts
  • src/hooks/attendance/useAttendanceSSE.ts

{/* Mobile: CategorySelector 드롭다운 (tablet 이상에서 숨김) */}
<div className="tablet:hidden">
<CategorySelector
className="shadow-[0_5px_20px_rgba(17,33,49,0.2)]"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

하드코딩된 shadow 값을 디자인 토큰으로 교체하세요.

shadow-[0_5px_20px_rgba(17,33,49,0.2)]는 하드코딩된 값입니다. 코딩 가이드라인에 따라 디자인 토큰 클래스를 우선 사용해야 하며, 하드코딩된 값은 사용하지 않아야 합니다. 프로젝트의 shadow 디자인 토큰을 확인하여 적절한 토큰 클래스로 교체하거나, 필요한 경우 새로운 토큰 추가에 대해 사용자에게 문의하세요.

As per coding guidelines: "Use Tailwind CSS v4 with class-variance-authority (cva) for styling. Always use design token classes first; no hardcoded values. Ask user before adding new tokens"

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/`(private)/[clubId]/(main)/board/(with-nav)/BoardNavClient.tsx at
line 119, The component BoardNavClient.tsx contains a hardcoded Tailwind shadow
class "shadow-[0_5px_20px_rgba(17,33,49,0.2)]"; replace this with the project's
shadow design token class (e.g., the appropriate shadow token used across the
app) by updating the className on the BoardNavClient element or the related cva
variant in this file to use that token instead, and if no suitable token exists,
ask before adding a new design token so we stay compliant with the Tailwind v4 +
cva styling guideline.

<Skeleton key={i} className="h-10 w-full rounded-md" />
))}
{/* Tablet+: 사이드바 형태의 스켈레톤 */}
<div className="bg-container-neutral tablet:flex hidden w-[304px] flex-col items-start rounded-lg">
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

하드코딩된 너비 값을 디자인 토큰이나 반응형 단위로 교체하세요.

w-[304px]는 하드코딩된 픽셀 값입니다. 코딩 가이드라인에 따라 디자인 토큰 클래스를 사용해야 합니다. 사이드바 너비에 대한 디자인 토큰이 정의되어 있는지 확인하거나, 필요한 경우 w-fit, w-auto 등의 반응형 유틸리티 또는 새로운 토큰 추가에 대해 검토하세요.

As per coding guidelines: "Always use design token classes first; no hardcoded values. Ask user before adding new tokens"

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/board/BoardNavSkeleton.tsx` at line 10, The div in
BoardNavSkeleton.tsx uses a hardcoded width class "w-[304px]"; replace it with
the appropriate design token or responsive utility instead: look for an existing
sidebar width token (e.g., a class like w-sidebar or a token in your
tailwind/design-tokens) and swap "w-[304px]" to that token; if no token exists,
use a responsive utility such as w-auto or w-fit where suitable, and if a new
design token is required, confirm with the product/designer before adding it and
then update the class accordingly in BoardNavSkeleton.

<DropdownMenuTrigger
className={cn(
'bg-container-neutral flex h-[40px] items-center self-stretch rounded-lg py-200 pr-200 pl-300',
'bg-container-neutral flex h-[40px] w-full items-center rounded-lg py-200 pr-200 pl-300',
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

하드코딩된 높이 값을 디자인 토큰으로 교체하세요.

h-[40px]는 하드코딩된 픽셀 값입니다. 코딩 가이드라인에 따라 디자인 토큰 클래스를 사용해야 합니다. 버튼이나 인터랙티브 요소의 높이에 대한 디자인 토큰을 확인하거나, 필요한 경우 h-10(Tailwind 기본 유틸리티) 또는 새로운 토큰 추가에 대해 사용자에게 문의하세요.

As per coding guidelines: "Always use design token classes first; no hardcoded values. Ask user before adding new tokens"

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/board/CategorySelector.tsx` at line 56, Replace the hardcoded
height class "h-[40px]" in the CategorySelector component's container class
string with an approved design-token utility (e.g., use Tailwind's h-10 or your
project's height token) by updating the class list in the JSX where the string
contains 'bg-container-neutral flex h-[40px] w-full items-center rounded-lg
py-200 pr-200 pl-300'; if no existing token fits, ask the product/design owner
before adding a new token and then use that new token class instead of a raw
pixel value.

src={ExitToAppIcon}
alt="avatar"
size={40}
className="text-icon-normal p-2"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

디자인 토큰 클래스를 사용해야 합니다.

p-2는 코딩 가이드라인에 명시된 p-100~500 범위에 속하지 않습니다. 정의된 spacing token 클래스를 사용해주세요.

🎨 제안: 토큰 클래스 사용
-                      className="text-icon-normal p-2"
+                      className="text-icon-normal p-200"

As per coding guidelines: Use spacing token classes: p-100~500, gap-100~400.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
className="text-icon-normal p-2"
className="text-icon-normal p-200"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/layout/header/Header.tsx` at line 92, The element in
Header.tsx currently uses a raw utility class "p-2" which violates spacing token
rules; update the className on the header element (the JSX element that contains
className="text-icon-normal p-2") to use the approved spacing token (p-100
through p-500) that matches the intended visual spacing (e.g.,
p-100/p-200/etc.), and if any gaps are used elsewhere in the same component
replace raw gap classes with gap-100~400 accordingly to conform with the design
token guidelines.

size="md"
className="typo-button1 text-text-strong px-4"
size="sm"
className="tablet:typo-button1 tablet:rounded-md tablet:px-4 text-text-strong whitespace-nowrap"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

디자인 토큰 클래스를 사용해야 합니다.

tablet:px-4는 코딩 가이드라인에 명시된 p-100~500 범위에 속하지 않습니다. 정의된 spacing token 클래스를 사용해주세요.

🎨 제안: 토큰 클래스 사용
-        className="tablet:typo-button1 tablet:rounded-md tablet:px-4 text-text-strong whitespace-nowrap"
+        className="tablet:typo-button1 tablet:rounded-md tablet:px-400 text-text-strong whitespace-nowrap"

As per coding guidelines: Use spacing token classes: p-100~500, gap-100~400.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
className="tablet:typo-button1 tablet:rounded-md tablet:px-4 text-text-strong whitespace-nowrap"
className="tablet:typo-button1 tablet:rounded-md tablet:px-400 text-text-strong whitespace-nowrap"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/layout/header/PostingActions.tsx` at line 33, The class string
in PostingActions.tsx uses a raw spacing utility `tablet:px-4` which violates
the design token rule; locate the className on the element inside the
PostingActions component and replace `tablet:px-4` with the appropriate
design-token spacing class (e.g., use the token form from p-100..p-500 or the
horizontal padding token if your token naming is px-100/px-200, etc.) so all
spacing uses the defined tokens (also consider gap-100..gap-400 where
applicable); keep other classes like `tablet:typo-button1 tablet:rounded-md
text-text-strong whitespace-nowrap` unchanged.

Copy link
Copy Markdown
Collaborator

@JIN921 JIN921 left a comment

Choose a reason for hiding this comment

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

반응형 야르 하네요... 부드럽고 좋다... 어드민도 모바일은 걍 LNB 없애고 하단 푸터나 헤더에 넣어 버릴까 고민이 되네요...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎨 Html&css 마크업 & 스타일링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants