Files
HMDesign/docs/sw/sw-home-menu-integration-2026-10-19.md
T
shkim4 1472e51f47 feat(sw): integrate home menu into SWHeader (Task A + B)
Combine Task A (e8409ef, SW 0.2.0 integrated improvement) with Task B
(396539d, Figma-based SWHomeMenu / SWHomeMenuSection / SWHomeMenuItem /
SWRecentFiles). Task B's 84 new files are taken unchanged except for the
public-import Storybook update and joining the popup Escape stack.

- Export the home menu from @hm-design/sw
- SWHeader homeMenu / homeMenuOpen / defaultHomeMenuOpen /
  onHomeMenuOpenChange: hidden by default, the logo toggles it (onHomeClick
  is not called while homeMenu is set), placed from the measured header,
  closes with / closes the document and field dropdowns
- Logo aria-expanded / aria-controls; menu layer CSS (z-index 20)
- AI catalog / patterns / design rules, example G, README, usage guide
- Storybook SW/Home Menu uses @hm-design/sw; integration story

Verified: SW typecheck, tsc -b, SW build, Storybook build, AI docs 22/22,
28/28 existing SW shots pixel-identical, regression 96 PASS / 0 FAIL,
home menu checks 22/22. Not run: tarball consumer install.
2026-10-19 15:39:47 +09:00

2.8 KiB

SW Task A + B 통합 — 로고 클릭 메뉴 (2026-10-19)

통합 Worktree HMDesign-SW-Integration, 브랜치 integration/sw-home-menu(기준 Task A e8409ef) + Task B 396539d의 신규 파일 84개. 미커밋.

결합 방식

  • Task B 파일 84개는 모두 신규이며 Task A 파일과 겹치지 않아 Git 충돌이 없습니다(5faa1f1 → e8409ef 조상 관계).
  • 공유 파일 수정은 연결에 필요한 최소 범위입니다.
파일 변경
packages/sw/src/index.ts export * from "./components/sw-home-menu"
sw-header/types.ts, index.ts homeMenu, homeMenuOpen, defaultHomeMenuOpen, onHomeMenuOpenChange, 타입 SWHeaderHomeMenu, SWHeaderHomeMenuChangeReason
sw-header/SWHeader.tsx homeMenu가 있을 때만: 로고 클릭 = 메뉴 토글(onHomeClick 미호출), DOM 측정 배치(객체 수정 영역 −2px ~ 창 영역), 메뉴와 문서·필드 Dropdown 상호 닫기. homeMenu가 없으면 기존 동작 그대로
components/SWHeaderHome.tsx aria-expanded·aria-controls 전달(시각 변화 없음)
components/SWHeaderPropertyPanel.tsx 내부 useSWPopupStack에 export만 추가(패키지 공개 아님)
theme/sw.css .hm-sw-header__home-menu 레이어 1줄(top 0, z-index 20)
sw-home-menu/SWHomeMenu.tsx(Task B) 열린 동안 Popup Escape 스택에 합류(하위 패널 → 메뉴 순서는 그대로)
Story·Fixture(Task B) @hm-design/sw 공식 Import, SWHeader homeMenu 사용, 통합 · Popup · Escape Story 추가
AI 문서·README·사용 가이드 카탈로그 5절, 조합 패턴 7절, 디자인 규칙 11절, 예제 G

검증 (실행 결과)

항목 결과
SW typecheck / 앱 tsc -b / SW build / Storybook build PASS / PASS / PASS / PASS
dist/styles.css 홈 메뉴 스타일, dist/index.d.ts 공개 Export 포함 / 포함
AI 문서·공개 API 정합성(ai-docs.check.mjs) 22/22 PASS
기존 SW Story 28장 픽셀 비교(통합 전 기준선 대비, threshold 0) 28/28 동일
기존 Header·Tool·Popup 기능 회귀(integrated-improvement.browser.mjs) 96 PASS / 0 FAIL(통합 전과 동일)
홈 메뉴 통합(home-menu-integration.browser.mjs) 22/22 PASS

남은 항목

  • 미실행: 독립 React 19 Tarball 소비 설치, SW + HM UI CSS 동시 사용, Figma 스크린샷 픽셀 비교(배치·크기는 DOM 실측으로만 확인), Firefox·Safari.
  • 좁은 폭: 메뉴는 접히지 않고 메뉴 안에서 가로 스크롤(1440 825px, 1080 639px, 768·520 288px, 390 165px). 좁은 폭 디자인은 없습니다.
  • 디자인 승인 대기(미적용): 속성Bar 차이 3건, 열림 상태 Header 상·하단 #5F4B0F 선, 폰트 차이.
  • Task A의 기존 제한(넓은 tools + 390px에서 파일명·레이어 폭 0)은 이번 통합 범위 밖입니다.