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.
2.8 KiB
2.8 KiB
SW Task A + B 통합 — 로고 클릭 메뉴 (2026-10-19)
통합 Worktree
HMDesign-SW-Integration, 브랜치integration/sw-home-menu(기준 Task Ae8409ef) + Task B396539d의 신규 파일 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)은 이번 통합 범위 밖입니다.