크라우니 오피스 문서 편집기 — Phase 1-D(반응형) + 1-E(크로스플랫폼)
개요
오피스-개발계획.md Phase 1(문서 완성)의 마지막 두 게이트, 1-D(사이즈/반응형 대응)와 1-E(플랫폼 변경 대응)를 실측 기반으로 완료. 앱 번들(bundle/office/app) 무수정, crownyBridge.js(즉시층)만 보강. 회귀 하니스 27/27 유지.
무엇을 했는지
실측 도구 신규 제작
bundle/office/bridge/반응형측정.js+ 정본반응형측정.한선— headless Chrome CDP로
Emulation.setDeviceMetricsOverride로 강제하며
좌측개요/편집영역/우패널 rect, 브릿지 팝오버(표/드롭다운) rect를 측정하고 스크린샷 저장.1-D 반응형 — 실측 발견 3건 + 보강
- 앱 자체 CSS
@media쿼리 0건(완전 비반응형) — 3열(좌측개요250/편집영역flex/우패널270)
- 툴바(21버튼 단일 flex row)가 756px대에서 이미 총폭 초과 — 뒤쪽 버튼(🔗/▦표/🖼이미지/
▦ 표 버튼
rect가 뷰포트 390 밖).
- 브릿지 팝오버(표 그리드·스타일/폰트/크기 드롭다운)에 뷰포트 클램프 없음 — 앵커 좌표
보강(crownyBridge.js):
clampPopoverCard()신규 —openTablePopover/openGenericDropdown둘 다 append 직후
max-width+box-sizing:border-box 방어.
ensureToolbarScrollable()신규 — 툴바 row에overflow-x:auto상시 적용(여유 있으면
applyNarrowLayout()신규 — 창폭 <900(스펙 예시값)에서 좌측개요/우패널을display:none
- 재렌더 방어:
schedule()매 틱 +window resize이벤트 양쪽에서 재적용(앱이 DOM을 다시
수정 후 재실측: 768·390 모두 outline/rightPanel-editable 겹침 해소, 표 팝오버 390px에서 right=382(정확히 클램프), 1280/1024 무변화(회귀 없음).
1-E 크로스플랫폼 — 점검 결과
- Cmd/Ctrl 추상화: 이미 punch #9에서
isMod(e){return e.metaKey||e.ctrlKey}로 완료 —
navigator.platform/UA스니핑 0건 확인).
- CSS Custom Highlight API: 이미
HL_SUPPORTED피처감지로 안전(미지원 시 조용히 no-op). - caretRangeFromPoint/caretPositionFromPoint: 이미 폴백 체인 존재(Chromium+WebKit 모두
- 폰트 폴백: 4옵션 전부 마지막 값이 총칭 패밀리(sans-serif/serif/monospace)라 3플랫폼
- 스크립트 주입 시점: crownyBridge.js는 자체
setInterval폴링(섹션 7, 기존 코드)으로
- 신규 문서
spec/오피스-브릿지-크로스플랫폼.md— 스크립트 주입(WKUserScript/WebView2
회귀
bundle/office/bridge/회귀실행.sh최종 재실행 27/27 PASS 유지(spec/문서-회귀리포트.md).- 기본 headless 뷰포트가 756×469라 이미 <900(narrow 로직 상시 활성) 상태로 27/27 통과 —
hanseonc_high로반응형측정.한선컴파일 통과(760 큐브 생성)../CrownyAI3초 생존 확인
관련 파일
/Users/ef/crownybrowser/bundle/office/bridge/crownyBridge.js(수정 — clampPopoverCard/
/Users/ef/crownybrowser/bundle/office/bridge/반응형측정.js(신규 — CDP 실측 도구)/Users/ef/crownybrowser/bundle/office/bridge/반응형측정.한선(신규 — 한선씨 정본, 컴파일 확인)/Users/ef/crownybrowser/spec/오피스-브릿지-크로스플랫폼.md(신규 — 1-E 대응표/점검표)/Users/ef/crownybrowser/spec/문서-회귀리포트.md(갱신 — 27/27 최종)/Users/ef/crownybrowser/spec/오피스-개발계획.md(Phase 1-D/1-E 대상 문서, 무수정 참조만)
native/crowny-browser.m, native/crowny-shell.m, native/Makefile 기존 타깃,
.app 번들, bundle/office/app/index.html — 전부 손대지 않음.잔여 이슈
- 모듈 탭 행(홈/문서/시트/…) 라벨이 768px 이하에서 셀 안 강제 개행(기능 손실은 없음, 미관만)
- outline/rightPanel은 지금 "900px 미만 무조건 숨김"만 구현 — 좁은 폭에서도 열람하고 싶다는
- Phase 1-E 메시지 채널 대응표는 Phase 3(브릿지 프로토콜 window.crownyBridge 확장) 착수 전