Skip to content

[Fix] Paperlogy 굵기별 폰트 매핑 안정화 - #92

Open
lioba00700 wants to merge 1 commit into
devfrom
fix/paperlogy-font-family-mapping
Open

lioba00700 wants to merge 1 commit into
devfrom
fix/paperlogy-font-family-mapping

Conversation

@lioba00700

Copy link
Copy Markdown
Member

🎯 작업 내용

Paperlogy 정적 폰트 9개 굵기가 NativeWind/Tailwind의 기본 font-weight 유틸리티와 충돌하지 않도록 font-family 매핑을 전면 정리했습니다.

공용 UI 컴포넌트와 화면의 기존 굵기 클래스를 새 Paperlogy family 유틸리티로 이관하고, 같은 충돌 이름이 다시 도입되지 않도록 회귀 테스트를 추가했습니다.

🔍 기존 문제

기존 설정은 --font-bold, --font-semibold처럼 Tailwind가 기본 font-weight 용도로 사용하는 이름을 Paperlogy font-family 토큰에도 사용했습니다.

이전 수정은 공용 컴포넌트에서 font-sans를 제거해 당시 클래스 우선순위 문제를 완화했지만 이름 충돌 자체는 남아 있었습니다. 따라서 컴파일 순서, 캐시, 컴포넌트별 기본 클래스 조합에 따라 Paperlogy 굵기가 다시 풀릴 수 있었습니다.

✅ 주요 변경 사항

충돌 없는 Paperlogy 토큰

  • font-paperlogy-thin부터 font-paperlogy-black까지 9개 family 유틸리티 정의
  • Tailwind 기본 font-bold, font-medium 등과 이름 공간 분리
  • 기본 sans 및 Regular fallback은 기존 Paperlogy 설정 유지

공용 UI 및 화면 이관

  • Text, Heading, ButtonText, Input, Textarea에 Paperlogy family 명시
  • Checkbox, FormControl, Fab, Tabs, Badge, Avatar 등 공용 primitive 이관
  • 화면과 feature의 기존 weight 클래스 사용처를 새 family 유틸리티로 교체
  • RTC 반응 picker의 일반 안내 문구를 공용 Text 경계로 통일
  • emoji glyph는 플랫폼 emoji font를 사용하도록 React Native Text 유지

회귀 방지

  • 9개 굵기와 실제 파일명 매핑 검증
  • 충돌 가능한 기존 font utility 재도입 여부를 전체 src에서 검사
  • 공용 Text의 Regular/Bold family 계약 검증
  • test:typography 스크립트 추가

🧪 확인 사항

  • Typography 회귀 테스트 3개 통과
  • 약관 UI 테스트 12개 통과
  • Input NativeWind 회귀 테스트 2개 통과
  • TypeScript 검사 통과
  • ESLint 오류 0개
  • Steiger FSD 검사 통과
  • iOS Expo export 성공
  • Paperlogy 9개 폰트 asset 번들 포함 확인

📌 참고 사항

Expo Font의 config plugin과 runtime useFonts 로딩 구조는 변경하지 않았습니다. 이번 PR은 로딩 방식이 아니라 NativeWind font-family 선택 계약만 수정합니다.

웹 export는 기존 react-native-pager-view의 native-only import 문제로 실패하며 이번 폰트 변경과는 무관합니다. iOS 대상 Metro 번들은 정상 생성됐습니다.

@coderabbitai

coderabbitai Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

This review ran on the open-source allowance, not this organization's plan, because the pull request author doesn't have an assigned seat. Waiting won't change this — ask an organization admin to assign them a seat, or add seats in Billing if every seat is already assigned, then retry.

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 578d65d1-ba8c-4e94-aae4-92be2ab687a6
📥 Commits

Reviewing files that changed from the base of the PR and between c21301f and 9cf9513.

📒 Files selected for processing (48)
  • package.json
  • src/app/global.css
  • src/features/camera/capture-photo/ui/camera-aspect-ratio-control.tsx
  • src/features/camera/capture-photo/ui/camera.tsx
  • src/features/camera/guide-feed/ui/camera-guide-feedback-banner.tsx
  • src/features/camera/guide-feed/ui/guide-feed-bottom-sheet.tsx
  • src/features/camera/guide-feed/ui/guide-selection-control.tsx
  • src/features/feed/report-content/ui/report-content-modal.tsx
  • src/features/feed/save-feed/ui/feed-processing-badge.tsx
  • src/features/feed/save-feed/ui/save-feed-button.tsx
  • src/features/profile/save-user-setup/ui/setup-button.tsx
  • src/features/rtc/host-controls/ui/rtc-camera-room-menu.tsx
  • src/features/rtc/host-controls/ui/rtc-finalization-overlay.tsx
  • src/features/rtc/reactions/ui/rtc-viewer-reaction-picker.tsx
  • src/features/tags/select-feed-tags/ui/tag-bottom-sheet.tsx
  • src/features/user/save-social-login/__tests__/terms-agreement.test.cjs
  • src/pages/feed/ui/feed-edit-page.tsx
  • src/pages/feed/ui/feed-page.tsx
  • src/pages/profile/blocked-users/ui/profile-blocked-users-page.tsx
  • src/pages/profile/edit/ui/profile-edit-page.tsx
  • src/pages/profile/feeds/ui/profile-like-feed-page.tsx
  • src/pages/profile/feeds/ui/profile-my-feed-page.tsx
  • src/pages/profile/feeds/ui/profile-save-feed-page.tsx
  • src/pages/profile/overview/ui/profile-page.tsx
  • src/pages/profile/rtc-photos/ui/profile-rtc-photo-page.tsx
  • src/pages/welcome/ui/welcome-page.tsx
  • src/shared/ui/avatar/index.tsx
  • src/shared/ui/badge/index.tsx
  • src/shared/ui/button/index.tsx
  • src/shared/ui/checkbox/index.tsx
  • src/shared/ui/fab/index.tsx
  • src/shared/ui/form-control/index.tsx
  • src/shared/ui/heading/styles.tsx
  • src/shared/ui/image-viewer/index.tsx
  • src/shared/ui/image-viewer/index.web.tsx
  • src/shared/ui/input/index.tsx
  • src/shared/ui/photo-gallery/photo-gallery-modal.tsx
  • src/shared/ui/tabs/index.tsx
  • src/shared/ui/text/__tests__/paperlogy-font-mapping.test.cjs
  • src/shared/ui/text/styles.tsx
  • src/shared/ui/textarea/index.tsx
  • src/widgets/camera/capture-workspace/ui/captured-photos-layer.tsx
  • src/widgets/feed/detail/ui/content-actions-menu.tsx
  • src/widgets/feed/detail/ui/feed-comments.tsx
  • src/widgets/feed/detail/ui/feed-detail-content.tsx
  • src/widgets/feed/edit/ui/album-selector-bottom-sheet.tsx
  • src/widgets/feed/edit/ui/image-selector.tsx
  • src/widgets/profile/rtc-photo-preview/ui/profile-rtc-photo-preview.tsx
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant