docs(sw): Noto Sans KR / Bold report, QA evidence and PC handoff
Report and Chromium / Firefox evidence for the font revert and Bold scope, history notes on the Dotum and hover-stability records, a summary of the ignored regression logs and the handoff for continuing on another PC.
This commit is contained in:
1 parent
e31021af2d
commit
94c0a13c74
19 files changed
+48351
No files matched your search
@@ -1,5 +1,7 @@
|
||||
# SW 기본 글꼴 Dotum · Footer 디자인 확인 · 실제 Viewer 소비 프로젝트 검증 (2026-10-20)
|
||||
|
||||
> **과거 기록(현재 정책 아님):** 같은 날 사용자 결정으로 SW 기본 글꼴 Dotum은 철회되고 **Noto Sans KR**로 확정되었습니다([sw-noto-bold-2026-10-20.md](./sw-noto-bold-2026-10-20.md)). 아래 내용과 증거는 Dotum 시점 이력으로 보존합니다.
|
||||
|
||||
범위: `feature/sw-package`, 기준 HEAD `454472d`(원격 동일). SW 패키지(`packages/sw`), SW Story(`src/sw/sw-theme.stories.tsx`), AI 문서, README만 변경했습니다. Web UI·OrgChart 코드·토큰은 변경하지 않았습니다(공통 `AI_GUIDE.md` 사본 동기화만 각 패키지 `ai/`에 반영). **Commit·Push 전(승인 대기).** 증거: [sw-dotum-font-qa/](./sw-dotum-font-qa/).
|
||||
|
||||
## 1. 변경 내용
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# SW Header 필드 400 · Footer 말줄임 · Hover 위치 고정 (2026-10-20)
|
||||
|
||||
> **글꼴 기준 변경:** 이 기록의 측정 글꼴은 Dotum이었습니다. 이후 SW 기본 글꼴이 Noto Sans KR로 확정되어 재측정 결과는 [sw-noto-bold-2026-10-20.md](./sw-noto-bold-2026-10-20.md)를 따릅니다. Hover 위치 고정·Footer 말줄임 정책은 유지됩니다.
|
||||
|
||||
사용자 승인(2026-10-20) 범위의 수정·검증 기록이다. 증거: [hover-stability-qa](hover-stability-qa/) (`before/` = 수정 전 빌드, `after/` = 수정 후 빌드).
|
||||
|
||||
## 변경
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
# SW Noto Sans KR 복귀 + 지정 텍스트 Bold (2026-10-20)
|
||||
|
||||
범위: `feature/sw-package`, 기준 HEAD `032fcdc`(원격 `454472d` + 로컬 8 Commit). SW 패키지·SW Story·SW 테스트·AI 문서·README만 변경. Web UI·OrgChart 코드는 변경하지 않음(공통 `AI_GUIDE.md`는 공식 `sync:ai-docs`로 사본 동기화). 증거: [sw-noto-bold-qa/](./sw-noto-bold-qa/). Dotum 시점 기록([sw-dotum-font-2026-10-20.md](./sw-dotum-font-2026-10-20.md))은 이력으로 보존.
|
||||
|
||||
## 1. 글꼴 정책
|
||||
|
||||
| 영역 | 기본 글꼴 |
|
||||
|---|---|
|
||||
| SW | **Noto Sans KR** (`--hm-sw-header-font-family: "Noto Sans KR", "Malgun Gothic", "Apple SD Gothic Neo", sans-serif`) — 2026-10-20 Dotum 기본값 철회 |
|
||||
| Web UI | Noto Sans KR (변경 없음, 토큰 별개) |
|
||||
| OrgChart | 기존 설정 유지 |
|
||||
|
||||
- Dotum 전용 보정 정리: Header 그리기모드 칸 padding 4px → **8px 복원**(Noto 700 "그리기모드" 67.2px ≤ 내용 폭 74px).
|
||||
- Storybook은 Web UI theme의 Noto Sans KR 가변 글꼴(100–900)을 로드: 700은 실제 Bold 면(합성 Bold 아님).
|
||||
|
||||
## 2. Bold 적용 범위 (Chromium·Firefox 계산값 동일)
|
||||
|
||||
| 대상 | 선택자 | 전 → 후 |
|
||||
|---|---|---|
|
||||
| SWHeader 파일명 | `.hm-sw-header__document-name` (버튼 상속) | 700 → 700 (이미 Bold, CSS 추가 없음) |
|
||||
| Composed Controls 필드 값 | `.hm-sw-header__field-value:not(.hm-sw-header .hm-sw-header__field-value)` | 400 → **700** |
|
||||
| SWHeader 안 필드 값 (More 포함) | `.hm-sw-header__field-value` | 400 유지 |
|
||||
| Footer 보조기능·명령어 제목 | `.hm-sw-footer-side__title` | 400 → **700** |
|
||||
| Footer 분류 탭 12개 | `.hm-sw-footer-menu__tab` | 400 → **700** (Default·Hover·Selected) |
|
||||
| Footer 전체보기 · Model/Layout · 명령 · 보조기능 라벨 | 각 클래스 | 400 유지 |
|
||||
| Viewer 파일명·버튼 라벨 6개·Model/Layout | `.hm-sw-viewer-header :is(__document-name, __label, __tab)` | 500 → **700** (탭 숫자 11px 400 유지) |
|
||||
| 최근파일 이름 | `.hm-sw-recent-files__name` | 700 + 1.3px 외곽선 (이미 적용, 변경 없음) |
|
||||
| 최근파일 경로 | `.hm-sw-recent-files__path` | 400 → **700**, 기존 12px 1px 외곽선 유지 |
|
||||
| 미리보기 제목 | `.hm-sw-recent-files__preview-title` | 400·외곽선 없음 → **700 + 1.3px 외곽선**(`--hm-sw-header-text-outline`), `overflow: clip` + 외곽선 여백. 폭 294px·말줄임 유지 |
|
||||
|
||||
외곽선은 기존 토큰만 사용(14px = 1.3px, 12px = 1px). 크기·색·위치·말줄임 변화 없음.
|
||||
|
||||
## 3. 재측정 (Noto Sans KR)
|
||||
|
||||
| 항목 | Dotum 700 | Noto 700 |
|
||||
|---|---|---|
|
||||
| Footer 분류 탭 전체 / 영역 (1920) | 801 / 759px → ◀▶ 표시 | **727 / 727.3px → 모두 표시, ◀▶ 없음** |
|
||||
| Footer 1440 · 1280 · 950 · 860 · 760 | 영역 487 · 351 · 283 · 215 · 79px, ◀▶ 스크롤 | 같은 영역, 내용 727px → ◀▶ 스크롤(기존 정책) |
|
||||
| 분류 행 높이 | 24px | 24px (Bold 전후 동일) |
|
||||
| Composed `0.25` / `Standard` | 38.25/38 · 70.48/69 (잘림) | 29.5/38 · 64.2 (표시) |
|
||||
| Composed `1.0000`(스케일 값, 38px 칸) | 59.4/38 | **49.2/38 — 말줄임 + title (디자인 검토)** |
|
||||
| Viewer 파일명 말줄임 끝나는 폭 | 500: 1365px / 700: 1420px | 500: 1315px / 700: **1320px** |
|
||||
| Viewer 375–1920 (310단계) | — | 넘침 0, 메뉴·More 배치 500과 동일 |
|
||||
| SWHeader `ByLayer`(38px 칸) | 57.9/38 | 56.0/38 — 말줄임 + title 유지(정책) |
|
||||
|
||||
## 4. 남은 문제
|
||||
|
||||
- **Firefox `Continuous`(미해결, 악화):** Chromium·Firefox 모두 글자 81.3px인데 Firefox만 선스타일 첫 칸을 74.9px로 계산해 6.4px 부족(Dotum 400에서는 0.6px). 같은 Firefox flex 내재 폭 문제로 판단. 지시대로 Chromium에 영향을 주는 보정은 하지 않음 — 별도 검토.
|
||||
- Composed `1.0000`: 38px 스케일 칸보다 넓음(필드 크기 확대 안 함).
|
||||
- Figma 차이: Home Menu Hover 1px 이동 미적용(사용자 기준), Figma Dotum → Noto Sans KR 대체.
|
||||
|
||||
## 5. 검증
|
||||
|
||||
| 검사 | 결과 |
|
||||
|---|---|
|
||||
| `text-weight.browser.mjs` (신규, Chromium) | 43/43 (행 높이 기대값 24px로 수정, ◀▶ = Overflow 일 때만 검사 추가) |
|
||||
| `hover-stability.browser.mjs` (Chromium, Home Menu 42타일 · Footer 135칸) | 201/201 |
|
||||
| `hover-stability-firefox.browser.mjs` | 58/59 — FAIL 1 = Firefox `Continuous`(위 남은 문제) |
|
||||
| Firefox 계산값(Header·Composed·Footer·Viewer 12개 선택자, 분류 영역) | Chromium과 동일, 콘솔 오류 0 |
|
||||
| viewer | 70/70 (라벨 weight 기대값 500 → 700, 요청 변경) |
|
||||
| footer-popup-viewer 47/47 · integrated-improvement 89/0 FAIL(Open 히스테리시스) · footer-design-review 21/21 · theme-inheritance 23/23 | PASS |
|
||||
| home-menu-integration 22/23 · dropdown-consolidation 223/5 FAIL | 기존 기준선 실패(이전 보고와 동일 항목) |
|
||||
| `typecheck:sw` · `build-storybook`(패키지 build 포함) · `check:ai-docs` · `ai-docs.check` 37/37 | PASS |
|
||||
| ai-template-consumer | 미실행(소비 프로젝트 빌드 필요). 글꼴 기대값만 Noto로 복원 |
|
||||
|
||||
## 6. Git 미포함 로그 요약 (Commit 시점)
|
||||
|
||||
`*.log`는 `.gitignore` 대상이라 `sw-noto-bold-qa/regression/*.log`는 저장소에 들어가지 않습니다. FAIL 항목만 아래에 남깁니다(모두 기존 기준선 또는 §4 남은 문제, 신규 회귀 아님).
|
||||
|
||||
| 로그 | FAIL 항목 |
|
||||
|---|---|
|
||||
| dropdown-consolidation (5) | 28 → 24 Story 수, 24 ID 유지, 비 SW index 동일, 선언 동일, runtime/API/Overview 무변경 — 이후 Story 정리로 바뀐 기준선 |
|
||||
| home-menu-integration (1) | `homeMenu` 없음일 때 logo 클릭 → `homeMenuOpen(true, home)` 호출 기록 — 기존 기준선 |
|
||||
| hover-firefox (1) | Firefox `Continuous` 81.32 / 74.92px 잘림 — §4 |
|
||||
| integrated-improvement | 89 PASS / 0 FAIL(보고서의 "Open 히스테리시스"는 측정 메모) |
|
||||
|
||||
Commit 분리 후(2026-10-20) 같은 소스로 `typecheck:sw` · `build:sw` · `build-storybook` PASS, `text-weight` 43/43, `hover-stability`(Chromium) 201/201 재실행 PASS. 그 외 브라우저 결과는 Commit 전 동일 소스 실행분을 재사용합니다. 새 PC 인수인계는 [sw-pc-handoff-2026-10-20.md](./sw-pc-handoff-2026-10-20.md).
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 155 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 37 KiB |
File diff suppressed because it is too large.
Load diff
Binary file not shown.
|
After Width: | Height: | Size: 148 KiB |
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"sw-header--overview": {
|
||||
".hm-sw-header__document-name": {
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(240, 247, 245) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(240, 247, 245)": [
|
||||
"Sample-Drawing-01. <header__document-name>"
|
||||
]
|
||||
},
|
||||
".hm-sw-header__field-value": {
|
||||
"\"Noto Sans KR\" | 14px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"0_Layer_Cludmark <header__field-value>",
|
||||
"255,229,0 <header__field-value>"
|
||||
]
|
||||
},
|
||||
".hm-sw-header__field-label": {
|
||||
"\"Noto Sans KR\" | 12px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"레이어 <header__field-label>",
|
||||
"색상 <header__field-label>"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sw-header--composed-controls": {
|
||||
".hm-sw-header__document-name": {},
|
||||
".hm-sw-header__field-value": {
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"0 <header__field-value>",
|
||||
"255,229,0 <header__field-value>",
|
||||
"Continuous <header__field-value>",
|
||||
"0.25 <header__field-value>"
|
||||
]
|
||||
},
|
||||
".hm-sw-header__field-label": {
|
||||
"\"Noto Sans KR\" | 12px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"레이어 <header__field-label>",
|
||||
"색상 <header__field-label>",
|
||||
"선스타일 <header__field-label>",
|
||||
"가중치 <header__field-label>"
|
||||
]
|
||||
},
|
||||
".hm-sw-header__font-name": {
|
||||
"\"Noto Sans KR\" | 16px | 700 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"Arial <header__font-name>"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sw-footer--full-footer": {
|
||||
".hm-sw-footer-side__title": {
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"보조기능 <footer-side__title>",
|
||||
"명령어 <footer-side__title>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-side__subtitle": {
|
||||
"\"Noto Sans KR\" | 14px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"전체보기 <footer-side__subtitle>",
|
||||
"전체보기 <footer-side__subtitle>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-menu__tab": {
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(255, 92, 0) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 92, 0)": [
|
||||
"도형 <footer-menu__tab>"
|
||||
],
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(212, 203, 189) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(212, 203, 189)": [
|
||||
"수정 <footer-menu__tab>",
|
||||
"편집 <footer-menu__tab>",
|
||||
"문자 <footer-menu__tab>",
|
||||
"치수/연산 <footer-menu__tab>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-tab__label, .hm-sw-footer-tab__select": {
|
||||
"\"Noto Sans KR\" | 12px | 400 | rgb(22, 20, 16) | none | 0px rgb(22, 20, 16)": [
|
||||
"Layout 02 <footer-tab__select>",
|
||||
"Layout 02 <footer-tab__label>",
|
||||
"Layout 01 <footer-tab__select>",
|
||||
"Layout 01 <footer-tab__label>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-aux__label": {
|
||||
"\"Noto Sans KR\" | 13px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"객체스냅 <footer-aux__label>",
|
||||
"직각교차 <footer-aux__label>",
|
||||
"선가중치 <footer-aux__label>",
|
||||
"격자스냅 <footer-aux__label>"
|
||||
],
|
||||
"\"Noto Sans KR\" | 13px | 400 | rgb(255, 92, 0) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 92, 0)": [
|
||||
"격자배경 <footer-aux__label>",
|
||||
"객체스냅추적 <footer-aux__label>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-tool__label": {
|
||||
"\"Noto Sans KR\" | 14px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"LINE <footer-tool__label>",
|
||||
"PLINE <footer-tool__label>",
|
||||
"ARC <footer-tool__label>",
|
||||
"CIRCLE <footer-tool__label>"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sw-viewer--viewer-header": {
|
||||
".hm-sw-viewer-header__brand-mark": {},
|
||||
".hm-sw-viewer-header__document-name": {
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(255, 255, 255) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 255, 255)": [
|
||||
"C0060202-001-평면및종단 <viewer-header__document-name>"
|
||||
]
|
||||
},
|
||||
".hm-sw-viewer-header__label": {
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(255, 255, 255) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 255, 255)": [
|
||||
"파일 열기 <viewer-header__label>",
|
||||
"샘플 <viewer-header__label>",
|
||||
"전체 보기 <viewer-header__label>",
|
||||
"레이어 <viewer-header__label>"
|
||||
]
|
||||
},
|
||||
".hm-sw-viewer-header__tab": {
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(255, 198, 0) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 198, 0)": [
|
||||
"Model17,377 <viewer-header__tab>"
|
||||
],
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(255, 255, 255) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 255, 255)": [
|
||||
"Layout237 <viewer-header__tab>"
|
||||
]
|
||||
},
|
||||
".hm-sw-viewer-header__count": {
|
||||
"\"Noto Sans KR\" | 11px | 400 | rgb(255, 198, 0) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(255, 198, 0)": [
|
||||
"17,377 <viewer-header__count>"
|
||||
],
|
||||
"\"Noto Sans KR\" | 11px | 400 | rgb(255, 255, 255) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(255, 255, 255)": [
|
||||
"237 <viewer-header__count>"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sw-header--home-menu": {
|
||||
".hm-sw-recent-files__name": {
|
||||
"\"Noto Sans KR\" | 14px | 700 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"001-연결종합 계획평면도2222 <recent-files__name>",
|
||||
"03.암발파공법적용도_231011 <recent-files__name>",
|
||||
"1.배수공-일반사항_231004. <recent-files__name>",
|
||||
"00.시공상세도 분석 및 목차_2 <recent-files__name>"
|
||||
]
|
||||
},
|
||||
".hm-sw-recent-files__path": {
|
||||
"\"Noto Sans KR\" | 12px | 700 | rgb(212, 203, 189) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(212, 203, 189)": [
|
||||
"Z:\\01.기술개발센터\\04_그리 <recent-files__path>",
|
||||
"Z:\\01.기술개발센터\\04_그리 <recent-files__path>",
|
||||
"Z:\\01.기술개발센터\\04_그리 <recent-files__path>",
|
||||
"Z:\\01.기술개발센터\\04_그리 <recent-files__path>"
|
||||
]
|
||||
},
|
||||
".hm-sw-recent-files [class*=\"preview\"] *": {}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"sw-header--overview": {
|
||||
".hm-sw-header__document-name": {
|
||||
"Dotum | 14px | 700 | rgb(240, 247, 245) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(240, 247, 245)": [
|
||||
"Sample-Drawing-01. <header__document-name>"
|
||||
]
|
||||
},
|
||||
".hm-sw-header__field-value": {
|
||||
"Dotum | 14px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"0_Layer_Cludmark <header__field-value>",
|
||||
"255,229,0 <header__field-value>"
|
||||
]
|
||||
},
|
||||
".hm-sw-header__field-label": {
|
||||
"Dotum | 12px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"레이어 <header__field-label>",
|
||||
"색상 <header__field-label>"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sw-header--composed-controls": {
|
||||
".hm-sw-header__document-name": {},
|
||||
".hm-sw-header__field-value": {
|
||||
"Dotum | 14px | 700 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"0 <header__field-value>",
|
||||
"255,229,0 <header__field-value>",
|
||||
"Continuous <header__field-value>",
|
||||
"0.25 <header__field-value>"
|
||||
]
|
||||
},
|
||||
".hm-sw-header__field-label": {
|
||||
"Dotum | 12px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"레이어 <header__field-label>",
|
||||
"색상 <header__field-label>",
|
||||
"선스타일 <header__field-label>",
|
||||
"가중치 <header__field-label>"
|
||||
]
|
||||
},
|
||||
".hm-sw-header__font-name": {
|
||||
"Dotum | 16px | 700 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"Arial <header__font-name>"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sw-footer--full-footer": {
|
||||
".hm-sw-footer-side__title": {
|
||||
"Dotum | 14px | 700 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"보조기능 <footer-side__title>",
|
||||
"명령어 <footer-side__title>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-side__subtitle": {
|
||||
"Dotum | 14px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"전체보기 <footer-side__subtitle>",
|
||||
"전체보기 <footer-side__subtitle>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-menu__tab": {
|
||||
"Dotum | 14px | 700 | rgb(255, 92, 0) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 92, 0)": [
|
||||
"도형 <footer-menu__tab>"
|
||||
],
|
||||
"Dotum | 14px | 700 | rgb(212, 203, 189) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(212, 203, 189)": [
|
||||
"수정 <footer-menu__tab>",
|
||||
"편집 <footer-menu__tab>",
|
||||
"문자 <footer-menu__tab>",
|
||||
"치수/연산 <footer-menu__tab>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-tab__label, .hm-sw-footer-tab__select": {
|
||||
"Dotum | 12px | 400 | rgb(22, 20, 16) | none | 0px rgb(22, 20, 16)": [
|
||||
"Layout 02 <footer-tab__select>",
|
||||
"Layout 02 <footer-tab__label>",
|
||||
"Layout 01 <footer-tab__select>",
|
||||
"Layout 01 <footer-tab__label>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-aux__label": {
|
||||
"Dotum | 13px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"객체스냅 <footer-aux__label>",
|
||||
"직각교차 <footer-aux__label>",
|
||||
"선가중치 <footer-aux__label>",
|
||||
"격자스냅 <footer-aux__label>"
|
||||
],
|
||||
"Dotum | 13px | 400 | rgb(255, 92, 0) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 92, 0)": [
|
||||
"격자배경 <footer-aux__label>",
|
||||
"객체스냅추적 <footer-aux__label>"
|
||||
]
|
||||
},
|
||||
".hm-sw-footer-tool__label": {
|
||||
"Dotum | 14px | 400 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"LINE <footer-tool__label>",
|
||||
"PLINE <footer-tool__label>",
|
||||
"ARC <footer-tool__label>",
|
||||
"CIRCLE <footer-tool__label>"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sw-viewer--viewer-header": {
|
||||
".hm-sw-viewer-header__brand-mark": {},
|
||||
".hm-sw-viewer-header__document-name": {
|
||||
"Dotum | 14px | 700 | rgb(255, 255, 255) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 255, 255)": [
|
||||
"C0060202-001-평면및종단 <viewer-header__document-name>"
|
||||
]
|
||||
},
|
||||
".hm-sw-viewer-header__label": {
|
||||
"Dotum | 14px | 700 | rgb(255, 255, 255) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 255, 255)": [
|
||||
"파일 열기 <viewer-header__label>",
|
||||
"샘플 <viewer-header__label>",
|
||||
"전체 보기 <viewer-header__label>",
|
||||
"레이어 <viewer-header__label>"
|
||||
]
|
||||
},
|
||||
".hm-sw-viewer-header__tab": {
|
||||
"Dotum | 14px | 700 | rgb(255, 198, 0) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 198, 0)": [
|
||||
"Model17,377 <viewer-header__tab>"
|
||||
],
|
||||
"Dotum | 14px | 700 | rgb(255, 255, 255) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(255, 255, 255)": [
|
||||
"Layout237 <viewer-header__tab>"
|
||||
]
|
||||
},
|
||||
".hm-sw-viewer-header__count": {
|
||||
"Dotum | 11px | 400 | rgb(255, 198, 0) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(255, 198, 0)": [
|
||||
"17,377 <viewer-header__count>"
|
||||
],
|
||||
"Dotum | 11px | 400 | rgb(255, 255, 255) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(255, 255, 255)": [
|
||||
"237 <viewer-header__count>"
|
||||
]
|
||||
}
|
||||
},
|
||||
"sw-header--home-menu": {
|
||||
".hm-sw-recent-files__name": {
|
||||
"Dotum | 14px | 700 | rgb(246, 244, 242) | rgb(0, 0, 0) 1.3px 0px 0px, rgb(0, 0, 0) 1.2px 0.5px 0px, rg | 0px rgb(246, 244, 242)": [
|
||||
"001-연결종합 계획평면도2222 <recent-files__name>",
|
||||
"03.암발파공법적용도_231011 <recent-files__name>",
|
||||
"1.배수공-일반사항_231004. <recent-files__name>",
|
||||
"00.시공상세도 분석 및 목차_2 <recent-files__name>"
|
||||
]
|
||||
},
|
||||
".hm-sw-recent-files__path": {
|
||||
"Dotum | 12px | 700 | rgb(212, 203, 189) | rgb(0, 0, 0) 1px 0px 0px, rgb(0, 0, 0) 0.92px 0.38px 0px, rg | 0px rgb(212, 203, 189)": [
|
||||
"Z:\\01.기술개발센터\\04_그리 <recent-files__path>",
|
||||
"Z:\\01.기술개발센터\\04_그리 <recent-files__path>",
|
||||
"Z:\\01.기술개발센터\\04_그리 <recent-files__path>",
|
||||
"Z:\\01.기술개발센터\\04_그리 <recent-files__path>"
|
||||
]
|
||||
},
|
||||
".hm-sw-recent-files [class*=\"preview\"] *": {}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
Binary file not shown.
|
After Width: | Height: | Size: 115 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 198 KiB |
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,51 @@
|
||||
# SW 작업 PC 이전 인수인계 (2026-10-20)
|
||||
|
||||
HMDesign 저장소(`feature/sw-package`)와 SW 소비 프로젝트(`HMDesignSwTest-viewer`)는 **별개 저장소**입니다. 이 문서는 HMDesign 저장소의 Push 범위만 다룹니다.
|
||||
|
||||
## 1. HMDesign 저장소
|
||||
|
||||
- 원격: `https://gitea.hmac.kr/b25027/HMDesign.git`, 브랜치 `feature/sw-package` (main 병합·Docker 배포는 아직 안 함)
|
||||
- 확인한 환경: Node.js v22.23.2, npm 10.9.8 (`engines` 지정 없음)
|
||||
|
||||
```bash
|
||||
git clone -b feature/sw-package https://gitea.hmac.kr/b25027/HMDesign.git HMDesign-SW
|
||||
cd HMDesign-SW
|
||||
npm ci
|
||||
npm run storybook # http://localhost:6024
|
||||
npm run typecheck:sw
|
||||
npm run build:sw
|
||||
npm run build-storybook
|
||||
npm run check:ai-docs
|
||||
```
|
||||
|
||||
### 브라우저 테스트 (`packages/sw/tests/*.browser.mjs`)
|
||||
|
||||
Playwright는 저장소 의존성이 아닙니다. 기존 PC는 저장소 밖 런타임(`C:/Users/user/.cache/codex-runtimes/.../node_modules`)을 기본값으로 씁니다. 새 PC에서는 환경 변수로 지정합니다.
|
||||
|
||||
- `SW_RUNTIME_MODULES` — `playwright`가 설치된 `node_modules` 경로 (예: 별도 폴더에서 `npm i playwright` 후 그 `node_modules`)
|
||||
- `SW_CHROME_PATH` — Chrome 실행 파일(기본 `C:/Program Files/Google/Chrome/Application/chrome.exe`)
|
||||
- Firefox 테스트는 설치된 Firefox를 WebDriver BiDi로 사용
|
||||
- 실행 전 `npm run build-storybook`(일부 테스트는 `npm run storybook`의 6024 포트) 필요
|
||||
|
||||
## 2. 현재 상태와 남은 문제
|
||||
|
||||
- 완료: SW 기본 글꼴 Noto Sans KR 복귀, 요청 범위 Bold([sw-noto-bold-2026-10-20.md](./sw-noto-bold-2026-10-20.md)), Hover 위치 고정, Footer 말줄임·반응형, Header Open/More, Viewer Header More.
|
||||
- 미해결(이번 이전에서 수정하지 않음): Firefox `Continuous` 6.4px 잘림, Composed Controls `1.0000` 말줄임, 기존 테스트 기준선 실패(dropdown-consolidation 5, home-menu-integration 1), Figma와 글꼴(Dotum → Noto)·Home Menu Hover 1px 차이.
|
||||
- 다음 작업 우선순위: ① 소비 프로젝트 `HMDesignSwTest-viewer` 정리·Submodule 갱신 ② Firefox `Continuous` 별도 검토 ③ 기준선 테스트 기대값 갱신 여부 결정 ④ main 병합·Docker 배포(별도 승인).
|
||||
|
||||
## 3. Git에 없는 자료
|
||||
|
||||
| 자료 | 위치(기존 PC) | 필수 여부 / 이전 방법 |
|
||||
|---|---|---|
|
||||
| Figma 원본 | 온라인 `이지빔-SW`(파일 키 `rj6wpsfk24lOWvWiVRAANP`), 로컬 사본 `D:\디자인시스템\이지빔 SW.fig` | 필수 아님 — Figma 계정으로 온라인 접근. 오프라인 사본이 필요할 때만 수동 복사 |
|
||||
| 참고 이미지 | `D:\디자인시스템\레이아웃 분리.png`, `ani_hover_move.gif`(SHA-256은 `sw-header-design-spec.md`) | 필수 아님 — 값은 문서에 기록됨 |
|
||||
| 브라우저 회귀 로그 | `docs/sw/*-qa/**/*.log` (`*.log` ignore) | 필수 아님 — FAIL 요약은 보고서에 기록 |
|
||||
| DWG/DXF 샘플 | 소비 프로젝트 `public/samples/`(그 저장소에 Commit됨) | 소비 프로젝트 Clone으로 전달 |
|
||||
| 로컬 설정 | `.claude/settings.local.json`, `_local/`, `.env*` | 이전 대상 아님 |
|
||||
|
||||
## 4. SW 소비 프로젝트 `HMDesignSwTest-viewer` (별도)
|
||||
|
||||
- 원격 `https://gitea.hmac.kr/kimminsung/dwg-dxf-viewer-hm.git`, HEAD `15ef6ef`(detached), Submodule `HMDesign` → `68fbcf6`(`feature/sw-viewer-header`) + Submodule 안 미커밋 `sw.css` 6줄.
|
||||
- 미커밋 변경 20개(수정 16·삭제 3·신규 `ViewerHeader.tsx`, `viewer-panels.css`, `vite`)가 있으며 **HMDesign Push에 포함되지 않습니다.** 이 세션은 해당 프로젝트를 수정하지 않았습니다.
|
||||
- 새 PC로 가져가려면 그 저장소에서 별도 승인 후 브랜치 Commit·Push 하거나, `node_modules`·`dist`를 제외하고 폴더를 수동 복사해야 합니다. Push 전에는 원격 Clone만으로 재현되지 않습니다.
|
||||
- 구조: 소비 프로젝트 → Git Submodule `HMDesign` + npm Workspace(별도 npm publish 없음). 새 PC: `git clone --recurse-submodules <소비 프로젝트 URL>` → Submodule을 원하는 SHA(`feature/sw-package` 최신)로 checkout → 루트 `npm install`. 상세는 [external-install-submodule.md](../guidelines/external-install-submodule.md).
|
||||
Reference in new issue
Block a user