feat(sw): integrate responsive home menu into header

- Merge SW / Home Menu Stories into SW / Header (sidebar: Home Menu; others verification-tagged)
- Home On: logo hover ring and header top/bottom #5F4B0F lines while the menu is open
- Measured More in SWHeader; home menu narrow widths use a More (...) section with a grouped
  text menu instead of horizontal scroll, placed right after the last visible section
- Action tiles no longer stay on after a click; 최근파일 stays Active only while its list is open
- More dropdown and recent files list never open together; list top joins the accent line
- Recent files preview falls back left / over the list at narrow widths (390px)
- Update Storybook, browser tests, docs, AI guides and QA evidence
This commit is contained in:
shkim4 committed 2026-10-19 22:46:28 +09:00
1 parent c542bdc282
commit 170a5c23ae
71 files changed
+12535 -150

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

@@ -0,0 +1,219 @@
{
"checks": [
{
"name": "1920 tiles: 14 action tiles — no Active / aria-pressed / ring after the click",
"ok": true,
"data": []
},
{
"name": "Hover kept: Variant2 (ring + #FF5C00) while the pointer is on the tile",
"ok": true,
"data": {
"active": null,
"pressed": null,
"expanded": null,
"mark": "\"\"",
"ring": "1",
"color": "rgb(255, 92, 0)",
"bg": "rgba(0, 0, 0, 0)"
}
},
{
"name": "Pressed: Variant3 only while held (Space down), Default after release",
"ok": true,
"data": {
"held": {
"active": null,
"pressed": null,
"expanded": null,
"mark": "\"\"",
"ring": "1",
"color": "rgb(255, 92, 0)",
"bg": "rgba(0, 0, 0, 0)"
},
"released": {
"active": null,
"pressed": null,
"expanded": null,
"mark": "\"\"",
"ring": "0",
"color": "rgb(246, 244, 242)",
"bg": "rgba(0, 0, 0, 0)"
}
}
},
{
"name": "최근파일 tile: Variant3 (Active, aria-expanded) while the list is open; re-click closes list and Active",
"ok": true,
"data": {
"rOpen": {
"tile": {
"active": "true",
"pressed": null,
"expanded": "true",
"mark": "\"\"",
"ring": "1",
"color": "rgb(255, 92, 0)",
"bg": "rgba(0, 0, 0, 0)"
},
"list": true
},
"rClosed": {
"tile": {
"active": null,
"pressed": null,
"expanded": "false",
"mark": "\"\"",
"ring": "0",
"color": "rgb(246, 244, 242)",
"bg": "rgba(0, 0, 0, 0)"
},
"list": false
}
}
},
{
"name": "최근파일: Escape closes the list → Active off",
"ok": true,
"data": {
"tile": {
"active": null,
"pressed": null,
"expanded": "false",
"mark": "\"\"",
"ring": "0",
"color": "rgb(246, 244, 242)",
"bg": "rgba(0, 0, 0, 0)"
},
"list": false
}
},
{
"name": "최근파일: opening a file closes the menu; reopening starts with 최근파일 off",
"ok": true,
"data": {
"afterFile": false,
"reopened": {
"active": null,
"pressed": null,
"expanded": "false",
"mark": "\"\"",
"ring": "0",
"color": "rgb(246, 244, 242)",
"bg": "rgba(0, 0, 0, 0)"
}
}
},
{
"name": "home button keeps Home On while the menu is open",
"ok": true,
"data": true
},
{
"name": "More tile keeps its Variant3 while its dropdown is open",
"ok": true,
"data": {
"active": "true",
"ring": "1",
"expanded": "true"
}
},
{
"name": "1080 More text menu: 10 action rows — no Active, no ✓, no brown row after the click (dropdown stays open)",
"ok": true,
"data": {
"rowLeft": [],
"stillOpen": true
}
},
{
"name": "text row Hover kept (#62533D + #FF5C00)",
"ok": true,
"data": {
"active": null,
"pressed": null,
"expanded": null,
"mark": "\"\"",
"ring": null,
"color": "rgb(255, 92, 0)",
"bg": "rgb(98, 83, 61)"
}
},
{
"name": "text row Pressed only while held, nothing after release",
"ok": true,
"data": {
"rowHeld": {
"active": null,
"pressed": null,
"expanded": null,
"mark": "\"\"",
"ring": null,
"color": "rgb(255, 92, 0)",
"bg": "rgb(98, 83, 61)"
},
"rowReleased": {
"active": null,
"pressed": null,
"expanded": null,
"mark": "\"\"",
"ring": null,
"color": "rgb(246, 244, 242)",
"bg": "rgba(0, 0, 0, 0)"
}
}
},
{
"name": "최근파일 row: list opens; More stays Variant3; reopened dropdown shows 최근파일 Active with › (no ✓)",
"ok": true,
"data": {
"listOpen": true,
"moreWhileList": "true",
"rRow": {
"active": "true",
"pressed": null,
"expanded": "true",
"mark": "\"›\"",
"ring": null,
"color": "rgb(255, 92, 0)",
"bg": "rgb(98, 83, 61)"
}
}
},
{
"name": "Escape (dropdown, then list): list closed → 최근파일 row and More off",
"ok": true,
"data": {
"rAfter": {
"list": false,
"more": null
},
"rRow2": {
"active": null,
"pressed": null,
"expanded": "false",
"mark": "\"›\"",
"ring": null,
"color": "rgb(246, 244, 242)",
"bg": "rgba(0, 0, 0, 0)"
}
}
},
{
"name": "More tile off once its dropdown and the list are closed",
"ok": true,
"data": null
},
{
"name": "callbacks: action tile / text row → onItemSelect(active=false) without onActiveChange; 최근파일 → onActiveChange([recent]) + onItemSelect(active=true)",
"ok": true,
"data": "onItemSelect(open / recent, active=true)\nonActiveChange([recent])\nonItemSelect(setting / display, active=false)\nonItemSelect(working / save, active=false)\nonHomeMenuOpenChange(true, home)"
},
{
"name": "no page errors",
"ok": true,
"data": []
}
],
"errors": []
}