---
status: active
created: 2026-06-11
type: quality
title: Operator console clean review UI + Pretendard font plan
spec: docs/superpowers/specs/2026-06-11-operator-console-clean-review-ui-design.md
---

# Operator Console Clean Review UI Plan

목표: 전체적 UI 점검 및 폰트 변경, 깔끔하게 잘 떨어지는 심사 프로그램의 목적에 맞게 개선.

## Phase 0 — Baseline (done)

- [x] 전 뷰 데스크톱/모바일 스크린샷 + 오버플로 감사 (`data/logs/ui-font-baseline-*`)
- [x] 정적 테스트 베이스라인: `test_workbench_shell_exposes_all_internal_operator_views` 실패
      (product-purpose 블록/CSS 삭제됨), index.html BOM 유입 확인
- [x] Pretendard Variable woff2 v1.3.9 오프라인 번들 확보
      (`web/operator-gui/assets/fonts/PretendardVariable.woff2`)

## Phase 1 — Font integration

- [ ] `styles.css` 상단에 `@font-face` (Pretendard Variable, weight 45 920, swap)
- [ ] `--font-ui`, `--font-stamp` 토큰을 Pretendard 스택으로 교체 (mono 유지)
- [ ] `index.html`에 woff2 preload 링크 추가, BOM 제거
- [ ] 점수/쿼터/시간 표기에 `font-variant-numeric: tabular-nums`

## Phase 2 — Clean re-skin (token-driven)

- [ ] `:root` 팔레트를 종이톤 → 중성 쿨톤으로 교체 (spec 3.2)
- [ ] body 노이즈 텍스처 + radial-gradient 제거 (플랫 서피스)
- [ ] :root 밖 하드코딩 색상(37 hex, 36 rgba) 중 종이톤 잔재 일괄 정리
- [ ] 그림자/포커스 링을 쿨톤으로 정돈
- [ ] 모든 테스트 계약 문자열 보존 (spec 3.4 목록)

## Phase 3 — Contract restoration

- [ ] top-bar에 `product-purpose` 블록 복원 (HTML + CSS)
- [ ] 큐 오버플로 미세 정리: 데스크톱 `strong`, 모바일 `provider-chip`

## Phase 4 — Verification (사용자 반응성 검토)

- [ ] `pytest tests/operator_gui` 전체 통과
- [ ] 라이브 서버 Playwright 감사: 8개 뷰 × 데스크톱/모바일, docW <= vw
- [ ] `data/logs/ui-overhaul-final-results.json` + 계약 스크린샷 8종 재생성
- [ ] Pretendard 적용 여부 런타임 확인 (document.fonts)
- [ ] 오프라인 검증: GUI 내 외부 fetch 참조 0건
- [ ] `pytest` 전체 회귀

## Phase 5 — Commit

- [ ] 디자인 문서 + 구현 + 산출물 커밋 (feat/chore 분리 없이 단일 feat 커밋)
