From bf2a5c748988e7b8227e730366ed77539c892925 Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 15 May 2026 18:58:16 +0900 Subject: [PATCH] =?UTF-8?q?feat(typography):=20XML=20Typography=20?= =?UTF-8?q?=EC=8A=A4=ED=83=80=EC=9D=BC=EC=9D=84=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values/typography.xml | 69 +++++++++++ .../20260515_XMLTypography스타일추가.md | 107 +++++++++++++++++ docs/prd/20260515_typography_xml_style_prd.md | 112 ++++++++++++++++++ 3 files changed, 288 insertions(+) create mode 100644 app/src/main/res/values/typography.xml create mode 100644 docs/plan-task/20260515_XMLTypography스타일추가.md create mode 100644 docs/prd/20260515_typography_xml_style_prd.md diff --git a/app/src/main/res/values/typography.xml b/app/src/main/res/values/typography.xml new file mode 100644 index 00000000..d2b8a383 --- /dev/null +++ b/app/src/main/res/values/typography.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/plan-task/20260515_XMLTypography스타일추가.md b/docs/plan-task/20260515_XMLTypography스타일추가.md new file mode 100644 index 00000000..5fffdb08 --- /dev/null +++ b/docs/plan-task/20260515_XMLTypography스타일추가.md @@ -0,0 +1,107 @@ +# XML Typography 스타일 추가 + +## 작업 목표 +- XML 레이아웃에서 재사용할 수 있는 Typography 스타일 리소스를 추가한다. + +## 구현 계획 + +### Task 1: Typography 리소스 파일 추가 + +**Files:** +- Create: `app/src/main/res/values/typography.xml` + +- [x] **Step 1: `typography.xml` 생성** + +```xml + + + +``` + +- [x] **Step 2: 요청된 13개 스타일 완성** + +`Heading1-4`, `Body1-6`, `Caption1-3`을 모두 추가하고 각 스타일은 `android:fontFamily`, `android:textSize`만 포함한다. + +- [x] **Step 3: 리소스 빌드 검증** + +Run: `./gradlew :app:assembleDebug` +Expected: `BUILD SUCCESSFUL` + +### Task 2: Typography 사용 샘플 문서화 + +**Files:** +- Modify: `docs/prd/20260515_typography_xml_style_prd.md` +- Modify: `docs/plan-task/20260515_XMLTypography스타일추가.md` + +- [x] **Step 1: XML 사용 샘플 추가** + +```xml + +``` + +- [x] **Step 2: Kotlin 사용 샘플 추가** + +```kotlin +val textView = TextView(requireContext()).apply { + text = "본문" + setTextAppearance(R.style.Typography_Body3) +} +``` + +- [x] **Step 3: Kotlin 리소스명 규칙 기록** + +XML 스타일명 `Typography.Body3`는 Kotlin `R.style`에서 `Typography_Body3`처럼 점(`.`) 대신 밑줄(`_`)로 참조한다. + +## 체크리스트 +- [x] AC1: `Typography.Heading1`부터 `Typography.Heading4`까지 4개 스타일이 존재한다. + - QA: `app/src/main/res/values/typography.xml`에서 스타일명, `textSize`, `fontFamily` 확인 +- [x] AC2: `Typography.Body1`부터 `Typography.Body6`까지 6개 스타일이 존재한다. + - QA: `app/src/main/res/values/typography.xml`에서 스타일명, `textSize`, `fontFamily` 확인 +- [x] AC3: `Typography.Caption1`부터 `Typography.Caption3`까지 3개 스타일이 존재한다. + - QA: `app/src/main/res/values/typography.xml`에서 스타일명, `textSize`, `fontFamily` 확인 +- [x] AC4: 기존 XML 레이아웃은 변경하지 않는다. + - QA: 변경 파일 목록에서 레이아웃 XML 변경이 없는지 확인 +- [x] AC5: 변경 파일 진단/빌드 검증을 수행한다. + - QA: `lsp_diagnostics`, `./gradlew :app:assembleDebug` +- [x] AC6: Typography 사용 샘플을 XML과 Kotlin 기준으로 확인할 수 있다. + - QA: PRD 문서의 Usage Samples 섹션에서 `style="@style/Typography.Heading1"`와 `R.style.Typography_Body3` 확인 + +## 검증 기록 +- 2026-05-15 + - 무엇/왜/어떻게: 구현 전 계획 문서 작성. XML 기반 프로젝트이므로 Compose Typography 대신 values 리소스 스타일 추가로 범위를 한정했다. + - 실행 명령/도구: + - `read(docs/prd/sample-prd.md)` + - `read(app/src/main/res/values/themes.xml)` + - `rg --files app/src/main/res/values` + - 결과: + - PRD와 계획/TASK 문서를 기준으로 `typography.xml` 신규 생성 작업을 진행한다. +- 2026-05-15 + - 무엇/왜/어떻게: `app/src/main/res/values/typography.xml`을 추가해 요청된 Heading, Body, Caption Typography 스타일 13개를 정의했다. Android 점 표기 스타일은 부모 스타일을 참조하므로 AAPT 리소스 링크 오류를 방지하기 위해 빈 베이스 스타일 `Typography`를 함께 추가했다. + - 실행 명령/도구: + - `lsp_diagnostics(app/src/main/res/values/typography.xml)` + - `./gradlew :app:assembleDebug` + - `rg("