From cf1e7cea625a0c38829683e533bf6b48737d94d3 Mon Sep 17 00:00:00 2001 From: art Date: Tue, 30 Jun 2026 17:46:32 +0900 Subject: [PATCH] =?UTF-8?q?fix(redesign):=20=EA=B3=A8=EB=93=9C=20=ED=86=A0?= =?UTF-8?q?=ED=81=B0=20=ED=86=B5=EC=9D=BC=C2=B7=ED=81=B4=EB=9E=98=EC=8A=A4?= =?UTF-8?q?=20=EC=B6=A9=EB=8F=8C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 리디자인 검토에서 발견된 디자인 일관성 결함 수정. - bibimbap.css: --color-accent #D4A853→#e8a54b(light+dark), --color-accent-press #C79A40→#d8973a. 앱 전역 브랜드 골드 (#e8a54b, header/footer/modal/26파일)와 어긋나 모든 페이지에 골드 2종이 공존하던 문제 해소. + .btn/.chip/.link/a focus-visible 링. - profile.jsp: 페이지-로컬 .profile-* 를 source of truth 채택, 합집합으로 붙은 중복 bibimbap 유틸(btn/avatar/thumb/meta/game-row /profile-head/card/section-*) 제거 → override 모호성 소멸. - recruit-form.jsp: bibimbap 와 충돌하던 로컬 클래스(field/form-grid /req/count/preview-card/form-actions) rf- prefix rename. ID·JS 무변경. - index.jsp: 중복 제거(theme-init 가 전역 로드). L1 mvnw package exit 0. L2 dev bind-mount 라이브 스모크 /·/login /signup/terms/recruit/posts/error HTTP 200 + JSP 에러 0. 인증 게이트 페이지(recruit-form/profile) 렌더는 needs_user_verification. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_0162BaZnrbiYgWc9JJMZ9Czb --- ...2026-06-30-redesign-token-coherence-fix.md | 38 ++++++ docs/changes/index.md | 1 + src/main/webapp/WEB-INF/views/index.jsp | 1 - src/main/webapp/WEB-INF/views/profile.jsp | 22 ++-- .../webapp/WEB-INF/views/recruit-form.jsp | 112 +++++++++--------- src/main/webapp/css/bibimbap.css | 18 ++- 6 files changed, 120 insertions(+), 72 deletions(-) create mode 100644 docs/changes/2026-06-30-redesign-token-coherence-fix.md diff --git a/docs/changes/2026-06-30-redesign-token-coherence-fix.md b/docs/changes/2026-06-30-redesign-token-coherence-fix.md new file mode 100644 index 0000000..66bb900 --- /dev/null +++ b/docs/changes/2026-06-30-redesign-token-coherence-fix.md @@ -0,0 +1,38 @@ +# 2026-06-30 리디자인 후속 — 토큰 통일·클래스 충돌 정리 + +**세션**: sid 20260630-170024 +**브랜치**: feat/v2 +**선행**: [2026-06-30-visual-redesign-bibimbap-css.md](./2026-06-30-visual-redesign-bibimbap-css.md) 검토에서 발견된 일관성 결함 수정 + +## 배경 + +리디자인 비주얼 레이어 검토 결과 디자인 일관성 결함 발견 — 공유 `bibimbap.css` 가 +앱 전역 브랜드 골드 `#e8a54b`(header/footer/modal/26파일) 와 다른 `#D4A853` 를 +도입해 모든 페이지에 골드 2종이 공존했다. 부수적으로 클래스 합집합 override 모호성과 +shadowing, 이중 CSS 로드가 있었다. + +## 변경 + +| 항목 | 파일 | 내용 | +|---|---|---| +| accent 통일 | `css/bibimbap.css` | `--color-accent` `#D4A853→#e8a54b`(light+dark), `--color-accent-press` `#C79A40→#d8973a`. 앱 전역 브랜드 골드로 단일화. | +| focus-visible | `css/bibimbap.css` | `.btn`/`.chip`/`.link`/`a` 키보드 포커스 링 추가(마우스 클릭 시 미표시). | +| 클래스 충돌 제거 | `views/profile.jsp` | 페이지-로컬 `.profile-*` 를 source of truth 채택, 합집합으로 붙은 중복 bibimbap 유틸(`btn`/`avatar`/`thumb`/`meta`/`game-row`/`profile-head`/`card`/`section-*`) 제거 → override 모호성 소멸. | +| shadowing 해소 | `views/recruit-form.jsp` | bibimbap 와 충돌하던 로컬 클래스명(`field`/`form-grid`/`req`/`count`/`preview-card`/`form-actions`) `rf-` prefix rename. ID·JS·accent 무변경(이미 브랜드 골드 사용). | +| 이중 로드 제거 | `views/index.jsp` | 직접 `` 제거(theme-init 가 이미 전역 로드). | + +인라인 핸들러(login/signup `oninput`·`onclick`)는 기능 정상·외부화 시 회귀위험 → **유지**(수용). + +## 검증 + +| 레벨 | 결과 | +|---|---| +| L1 — WAR 빌드 | `./mvnw -q -DskipTests package` exit 0 PASS. WAR 내 `css/bibimbap.css` 포함 확인. | +| L2 — 런타임 스모크 | dev 컨테이너 소스 bind-mount(`.:/build`)로 변경 즉시 라이브. `/` `/login` `/signup` `/terms` `/recruit` `/posts` `/error` HTTP 200 + JSP 컴파일 에러 0. 서빙 css accent `#e8a54b` 확인. | +| L2 — 인증 게이트 | `/recruit/new`·`/profile` HTTP 302(로그인 필요) → JSP 렌더 미확인. | + +## needs_user_verification + +- `/recruit/new`(모집 폼): 로그인 세션에서 rf- rename 후 레이아웃·라이브 미리보기 정상 렌더. +- `/profile`: 로그인 세션에서 버튼/카드 외형(중복 클래스 제거 후) + 골드 정합. +- 다크모드 토글 시 전 페이지 골드 단일(`#e8a54b`) 육안 정합. diff --git a/docs/changes/index.md b/docs/changes/index.md index 7bd5f57..7eb057c 100644 --- a/docs/changes/index.md +++ b/docs/changes/index.md @@ -11,4 +11,5 @@ - [2026-06-24-w2-jam-platform.md](./2026-06-24-w2-jam-platform.md) — W2 게임잼 워크스트림 전체(W2-1~6) 구현. 잼 엔티티/라이프사이클(jams/jam_teams/jam_team_members/jam_entries/jam_status_log) + 심사위원 역할(jam_judges 잼스코프) + 평가 동결 스키마(jam_criteria/jam_scores/jam_votes/jam_awards + jam_score_stats VIEW, 평가단위 (jam_id,game_id) 활성 자연키) + 심사 평가(3중게이트 UPSERT 가중집계) + 인기투표(1인1표 UNIQUE·종료후 공개) + 시상 집계(3트랙+가중 GRAND·CLOSED 확정 멱등). GAME_JAM_MANAGE 첫 enforcement 연결·잼스코프 isJudge·평가기간 게이트·CSRF 전수. 6 커밋 ccf1e42~a74bf74. 최종 L1 190/190 GREEN(회귀 0), L2 dev DB contract 전 PASS(격리 throwaway DB). dev DB 마이그레이션·L3 스모크 needs_user_verification. - [2026-06-29-b2-b4-fe-hardening.md](./2026-06-29-b2-b4-fe-hardening.md) — B2 프로토타입 dead code 제거(abstracts 4파일·header.jspf·GameCatalog 삭제, 없는 게임 ID = HTTP 404) + B4 의존성/세션 하드닝(Spring Boot 3.5.16 GA·snapshot repo 제거·쿠키 HttpOnly/SameSite·로그 WARN·OWASP DC plugin 비bind·profile properties 신규) + FE 다크모드 대비·검색 접이식·터치타깃. mvn test 361 PASS. - [2026-06-30-screenshot-guide-auth.md](./2026-06-30-screenshot-guide-auth.md) — 스크린샷 가이드 인증 흐름 추가. 비인증 7장 → 인증 포함 최대 14장. Playwright AJAX 로그인(expect_navigation) + SCREENSHOT_EMAIL/PASSWORD env var 분기 + 리뷰/댓글 composer hidden 강제 노출 폴백. +- [2026-06-30-redesign-token-coherence-fix.md](./2026-06-30-redesign-token-coherence-fix.md) — 리디자인 후속 일관성 수정. 공유 bibimbap.css accent 를 앱 전역 브랜드 골드로 통일(`#D4A853→#e8a54b`, light+dark) + focus-visible 링 + profile.jsp 중복 유틸 클래스 제거(override 모호성 소멸) + recruit-form.jsp 충돌 클래스 `rf-` rename(shadowing 해소) + index.jsp 이중 CSS 로드 제거. L1 빌드 PASS, L2 스모크 7페이지 200(JSP 에러 0). 인증 게이트 페이지(recruit-form/profile) 렌더는 needs_user_verification. - [2026-06-30-visual-redesign-bibimbap-css.md](./2026-06-30-visual-redesign-bibimbap-css.md) — 클로드 디자인 리디자인 비주얼 레이어 9단위 반영. bibimbap.css 신설 + theme-init 공통 link + 빈상태 fragment 2종 + 홈/인증/약관/프로필/에러/모집 마크업·클래스 이식. game-detail no-op. 커밋 8개, L2 스모크 전 페이지 200(errer JSTL taglib 결함 포착·수정). 인터랙티브 제출·다크모드는 needs_user_verification. diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp index d66c5e6..a7deb98 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -116,7 +116,6 @@ - bibimbap