Skip to content

[#918] 루트 404 시맨틱 토큰 마이그레이션 (bespoke 브랜드 페이지는 유지) #1058

Description

@thxforall

Parent

#918 — 🗺️ [wayfinder] Error page 준수 (결정 D6·D7 / 리스크 R3)

What to build

루트 not-found.tsx는 브랜드 정체성(워드마크, 2px 룰, 라임 액센트)은 좋은데 팔레트가 다크로 하드코딩돼 있다(#050505 배경, #f7e64a 액센트). 리디자인의 기본 테마는 라이트이므로 이 페이지만 테마를 따르지 않고 혼자 까맣게 뜬다.

중요 — 이건 브랜드를 버리는 작업이 아니다. --primary가 이미 그 라임이다(globals.cssoklch(0.9122 0.1686 102.99)#eafd67, 라이트 표면에서 텍스트 대비가 필요한 자리를 위한 --primary-strong도 따로 있다). 하드코딩된 hex는 토큰 값을 손으로 베낀 것이고, docs/design-system/redesign/shell.md의 R4가 이 하드코딩을 이미 회귀 리스크로 규정해 뒀다. 즉 기존 표준의 미적용분을 회수하는 일이다.

워드마크·2px 룰·트래킹·레이아웃 등 시각적 아이덴티티는 그대로 유지하고 색 값만 토큰으로 옮긴다.

루트 404는 shared/ErrorState 조합으로 바꾸지 않는다(D7). 오타 URL과 외부 유입이 착지하는 마케팅성 표면이라 인라인 상태 블록과 성격이 다르다 — bespoke 풀페이지를 유지한다.

스코프 경계: 하드코딩 hex는 코드베이스 전체에 92곳/20+ 파일 산재해 있다. 이 슬라이스는 루트 not-found.tsx 하나만 다룬다. 나머지 레거시 다크 표면 토큰화는 별도 티켓이다.

Acceptance criteria

  • not-found.tsx에 하드코딩 hex가 0이다 (#050505·#f7e64a·#eafd67 전부 제거)
  • 라이트 테마에서 페이지가 라이트로, 다크 테마에서 다크로 뜬다 — 양쪽 스크린샷 확인
  • 브랜드 아이덴티티(워드마크 트래킹, 2px 룰, 라임 액센트, CTA 2개 구성)가 시각적으로 보존된다
  • R3 검증: 라이트 테마에서 라임 액센트가 흰 배경 위에 놓이는 자리의 대비비가 WCAG AA를 만족한다. --primary가 미달이면 --primary-strong을 쓴다 (docs/design-system/colors.md 기준). 측정값을 PR에 남긴다
  • bespoke 풀페이지 구조 유지 — shared/ErrorState로 대체하지 않는다 (D7)
  • 문구가 i18n 메시지로 들어간다 (ko/en)
  • 오타 URL(/ko/asdf·/asdf) 양쪽에서 이 페이지가 뜨는 것을 확인

Blocked by

None - can start immediately

Metadata

Metadata

Assignees

No one assigned

    Labels

    bump:patchBug fixes / internal refactorfrontend프론트엔드ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions