docs(sw): Dotum default font, Footer design check and real viewer consumer QA

Report docs/sw/sw-dotum-font-2026-10-20.md and evidence docs/sw/sw-dotum-font-qa/: Noto -> Dotum layout diff of 40 SW
Stories x 4 widths, Header hysteresis trace, Footer design items (4 PASS), SW regression runs with baseline failure
classification, and the isolated HMDesignSwTest-viewer run (Chrome 34/34, Firefox 15/15; original project untouched).
Open items: synthesized-bold overflow in fixed Header cells and Footer POLYGON / WIPEOUT labels (design review),
viewer-regression not run, macOS / Linux fallback not verified.
This commit is contained in:
shkim4 committed 2026-10-20 16:59:55 +09:00
1 parent 942f72ae12
commit 6504668e85
149 files changed
+78083

No files matched your search

@@ -0,0 +1,263 @@
{
"base": "http://127.0.0.1:5391",
"engine": "chromium",
"loads": {
"simple.dxf": {
"status": "ready",
"ms": 1199,
"colors": 52,
"nonBg": 0.0182,
"name": "simple.dxf",
"tabs": 0
},
"BasicSample.dwg": {
"status": "ready",
"ms": 1365,
"colors": 118,
"nonBg": 0.0446,
"name": "BasicSample.dwg",
"tabs": 2
},
"civil.dwg": {
"status": "ready",
"ms": 1829,
"colors": 420,
"nonBg": 0.1904,
"name": "civil.dwg",
"tabs": 2
}
},
"results": [
{
"name": "Font: SWViewerHeader text = Dotum (SW default)",
"result": "PASS",
"detail": {
"Dotum": 20
}
},
{
"name": "Font: rendered platform font in header = Dotum (installed, no fallback)",
"result": "PASS",
"detail": {
"Dotum": 102
}
},
{
"name": "Theme: SW token --hm-sw-header-font-family = Dotum stack",
"result": "PASS",
"detail": {
"font": "Dotum, \"돋움\", \"Malgun Gothic\", \"Apple SD Gothic Neo\", sans-serif",
"bg": "rgba(0, 0, 0, 0)"
}
},
{
"name": "Web UI token --hm-font-family-base unchanged (Noto Sans KR)",
"result": "PASS",
"detail": "\"Noto Sans KR\", \"Malgun Gothic\", \"Apple SD Gothic Neo\", sans-serif"
},
{
"name": "Load simple.dxf: status ready + drawing pixels",
"result": "PASS",
"detail": {
"status": "ready",
"ms": 1199,
"colors": 52,
"nonBg": 0.0182,
"name": "simple.dxf",
"tabs": 0
}
},
{
"name": "Load BasicSample.dwg: status ready + drawing pixels",
"result": "PASS",
"detail": {
"status": "ready",
"ms": 1365,
"colors": 118,
"nonBg": 0.0446,
"name": "BasicSample.dwg",
"tabs": 2
}
},
{
"name": "Load civil.dwg: status ready + drawing pixels",
"result": "PASS",
"detail": {
"status": "ready",
"ms": 1829,
"colors": 420,
"nonBg": 0.1904,
"name": "civil.dwg",
"tabs": 2
}
},
{
"name": "Viewer: wheel zoom changes the drawing",
"result": "PASS",
"detail": "0.316"
},
{
"name": "Viewer: drag pan changes the view",
"result": "PASS",
"detail": "0.323"
},
{
"name": "Viewer: F (fit) restores the full view",
"result": "PASS",
"detail": "0.002 < 0.327"
},
{
"name": "Header: space tab switch (inactive → active) re-renders the canvas",
"result": "PASS",
"detail": "2 tabs, now Model17,377"
},
{
"name": "Header: 샘플 dropdown opens (SWViewerMenu) with Dotum",
"result": "PASS",
"detail": {
"Dotum": 6
}
},
{
"name": "Header: Escape closes the dropdown",
"result": "PASS",
"detail": ""
},
{
"name": "Header: sample menu loads simple.dxf",
"result": "PASS",
"detail": "simple.dxf / ready"
},
{
"name": "Viewer: 2.5D switch toggles and re-renders",
"result": "PASS",
"detail": "0.0217"
},
{
"name": "Panel: 설정 opens SWViewerPanel",
"result": "PASS",
"detail": ""
},
{
"name": "Panel: text = Dotum (program list cells keep their monospace)",
"result": "PASS",
"detail": {
"Dotum": 25
}
},
{
"name": "Panel: SWViewerSlider changes value and syncs the number input",
"result": "PASS",
"detail": "1 → 1.2, input 1.2"
},
{
"name": "Panel: SWViewerSwitch toggles (그리드)",
"result": "PASS",
"detail": "false → true"
},
{
"name": "Panel: title drag moves the panel",
"result": "PASS",
"detail": "(904,56) → (704,168)"
},
{
"name": "Panel: resize grip changes size",
"result": "PASS",
"detail": "340×520 → 413×353"
},
{
"name": "Panel: body scrolls vertically, no horizontal overflow",
"result": "PASS",
"detail": {
"scrollable": true,
"before": 0,
"after": 207,
"overflowX": false
}
},
{
"name": "Panel: no clipped text after Dotum",
"result": "PASS",
"detail": []
},
{
"name": "Panel: closes (Escape)",
"result": "PASS",
"detail": ""
},
{
"name": "Panel: 레이어 opens with layer rows",
"result": "PASS",
"detail": "2 rows"
},
{
"name": "Panel: 정보 (modal) opens and Escape closes it",
"result": "PASS",
"detail": "open=true"
},
{
"name": "Responsive 1920: header/page no horizontal overflow",
"result": "PASS",
"detail": {
"overflow": false,
"doc": false,
"more": false
}
},
{
"name": "Responsive 1180: header/page no horizontal overflow",
"result": "PASS",
"detail": {
"overflow": false,
"doc": false,
"more": false
}
},
{
"name": "Responsive 900: header/page no horizontal overflow (More shown)",
"result": "PASS",
"detail": {
"overflow": false,
"doc": false,
"more": true
}
},
{
"name": "Responsive 900: More opens with collapsed items",
"result": "PASS",
"detail": "5 items"
},
{
"name": "Responsive 560: header/page no horizontal overflow (More shown)",
"result": "PASS",
"detail": {
"overflow": false,
"doc": false,
"more": true
}
},
{
"name": "Responsive 375: header/page no horizontal overflow (More shown)",
"result": "PASS",
"detail": {
"overflow": false,
"doc": false,
"more": true
}
},
{
"name": "Responsive 375: More opens with collapsed items",
"result": "PASS",
"detail": "8 items"
},
{
"name": "Console / page / HTTP errors: none (favicon.ico 404 = program has no icon, pre-existing)",
"result": "PASS",
"detail": {
"errors": [],
"favicon404": 0
}
}
],
"errors": []
}