Skip to content

feat: 포트폴리오 전면 리디자인 — 에디토리얼 매거진 구조 개편#28

Merged
ShapeKim98 merged 16 commits into
mainfrom
feat/27-editorial-redesign
Apr 24, 2026
Merged

feat: 포트폴리오 전면 리디자인 — 에디토리얼 매거진 구조 개편#28
ShapeKim98 merged 16 commits into
mainfrom
feat/27-editorial-redesign

Conversation

@ShapeKim98
Copy link
Copy Markdown
Owner

@ShapeKim98 ShapeKim98 commented Apr 21, 2026

Summary

잡지식 에디토리얼 매거진을 레이아웃 언어로 채택한 전면 리디자인 + PDF 출력 페이징 시스템 정비.

  • 기존 한국어 컨텐츠(프로젝트/경험/스킬 항목)는 1:1 보존, 새 문구 창작 없음
  • Hero 포함 display 타이포 52px 상한, 800/900 weight 제거
  • 장식적 blur blob / accent dot / Scroll 인디케이터 / 150vh sticky divider 전면 제거
  • PDF 출력을 위한 6단 계층 페이징 매트릭스(L0~L6) + 컴포넌트 계층(SectionGroup > DesignGroup > DesignUnit) 도입

Key Changes

디자인 토큰

  • `theme.css`: warm off-white 배경 + 딥블루(#1D4ED8) accent 1종, `--radius: 10px` 단일, `--text-display clamp(2.25rem, 4vw, 3.25rem)`, 전역 `tabular-nums`, 불필요한 chart/sidebar 토큰 제거

공통 컴포넌트 (`design-system.tsx`)

  • 신설: `EditorialGrid` (12-col), `Figure`, `MetaList`, `DefList`, `NumberedFeatureList`, `HighlightBox`, `DesignUnit`, `DesignGroup`
  • 단일화: `ContentCard`/`FeatureCard`/`Badge`/`IconButton` → `rounded-[10px]` + 1px hairline
  • 제거: SectionHeading accent bar, shadow 전역
  • `SubSectionTitle` size에 `"2xl"` 추가, `SectionGroup` 헤더 시각 강화 (text-2xl + border-t-2)

레이아웃 시스템

  • `Navigation`: 데스크톱 좌측 `SideIndex`(번호 매겨진 목차) + 모바일 `TopBar` 분기
  • `SectionIndicator` 폐기 (기능 흡수)
  • App 본문에 `lg:pl-[clamp(200px,16vw,240px)]` 으로 SideIndex 공간 확보

섹션 구조 재편

`Hero → About → Background → Experience → Projects → Contact`

  • Hero: 키-밸류 에디토리얼 (Role/Based in/Email/GitHub MetaList)
  • About: Type A 그리드 + VALUES 번호 리스트
  • Background(ProfileSection 재구성): Skills dl, Education/Awards/Activities 타임라인
  • Experience: 2컬럼 그리드, monochrome bullets, hairline chip
  • Projects: 프로젝트별 ProjectCover(커버 풀블리드 + 오버레이 메타) + ProjectLayout(sticky sidebar + 긴 본문)
    • Variant L (RxCompose): Overview → Architecture → Features(NumberedList) → Use Cases (ShowPot 적용사례, UseCaseCover로 표지 오버레이 패턴 통일)
    • Variant A (Filtee/Pokit/Interest): Overview → Features(NumberedList) + 내부 다이어그램
  • Contact (FooterSection): Type A 그리드, 연락처 MetaList

모션

  • `ParallaxSection`에 `SPRING_SNAP / SPRING_SMOOTH / SPRING_SOFT` 상수 export
  • Hero/About 다층 패럴럭스/blur/stagger 제거 → FadeInView 진입만 유지
  • 진입 거리 24px로 축소
  • `FadeInView`가 HTML attrs 를 motion.div 로 spread (data-print-* 부여 가능)

삭제

  • `ProjectShowPot.tsx` — App에서 렌더되지 않는 고아 파일 (RxCompose "적용 사례"로만 노출)
  • `src/imports/PortfolioDesignRequest*` — 미사용 Figma import
  • `SectionIndicator.tsx` — SideIndex가 역할 흡수

PDF 출력 페이징 시스템 (10차에 걸쳐 정비)

컴포넌트 계층

```
SectionGroup ("프로젝트 설계" 챕터)
└ DesignGroup ("채팅 기능 설계" 등 xl 묶음)
└ DesignUnit ("CoreData 선택" 등 단위 주제)
└ Figure / Diagram / ProblemSolvingBlock / HighlightBox / TwoColumnLayout
```

6단 페이징 매트릭스

등급 단위 정책
L0 Project Article `break-before: page` 강제
L1 SectionGroup `break-before: page` 강제 ("프로젝트 설계" 챕터마다 새 페이지)
L2 DesignGroup `break-inside: avoid` (들어감/미루기/자름)
L3 DesignUnit `break-inside: avoid`
L4 TwoColumnLayout / 모든 Diagram `break-inside: avoid` 절대 보호
L5 ProblemSolvingBlock / HighlightBox `break-inside: avoid` 절대 보호
L6 `

` / Figure / MetaItem 한 행

`break-inside: avoid` 절대 보호

비프로젝트 섹션(Hero/About/Profile/Experience/Footer)은 의도적으로 `SectionGroup/DesignGroup` 계층 미사용. 시각 언어가 다른 `EditorialGrid` 기반이므로 계층 변경 대신 묶음 단위로 `data-print-keep` 부여해 매트릭스에 편입.

새 anchor 컴포넌트

  • `DesignGroup` (xl 묶음 wrapper, divider prop으로 자식 사이 hairline 옵션)
  • `DesignUnit` (md/lg 단위 wrapper)
  • `HighlightBox` (강조 박스, `border-l-[3px] border-primary`)
  • `InlineDiagram` (인라인 SVG/grid 다이어그램 wrapper)
  • `UseCaseCover` (Use Case에 ProjectCover 패턴 재사용)

시각 정비

  • SectionGroup 진입 표시: 헤더 위 `border-t-2 border-foreground/30` 두꺼운 구분선
  • DesignGroup 진입 표시: 헤더 아래 `border-b border-border` 얇은 hairline
  • 두 단위가 시각적으로 차별화

print.css 주요 정책

  • `SectionGroup` 강제 새 페이지 + `DesignGroup` 들어감/미루기/자름 알고리즘
  • `ProjectCover img max-height: 60vh` (Interest Cover 컴팩트 → Features row 단위 분리)
  • `article > section:not(:first-child) padding-y: 0` (빈 페이지 8 해결)
  • `section[id="contact"] border-top: none` (Footer 비대칭 해소)
  • `

    ` 통째 보호, ul/ol/dl > 항목 보호, MetaList 행 보호

  • `data-print-cover-library` (10차 신설): library variant 표지 + 다음 본문 묶기

10차 진화 요약

  1. 표지 dim, OG 카드, WCSession 다이어그램 재설계
  2. 카드 컨테이너 제거 + Problem/Solution 색 복원
  3. 다이어그램 외곽 카드 제거, 연속 PSB 구분선
  4. 표지 세로폭 확장, 빈 페이지 제거, Layer 라벨 겹침
  5. 자르지 않기 원칙 강화
  6. 6단 매트릭스 도입 + DesignGroup/DesignUnit/HighlightBox/InlineDiagram 신설
  7. 계층 정리 (SectionGroup > DesignGroup > DesignUnit) + 시각 정비
  8. 빈 페이지/제목 중복/Footer 비대칭 수정
  9. 22페이지 PDF 안정화
  10. 비프로젝트 섹션 anchor 부여 + library cover 빈 페이지 해결 (27→22 페이지, AWARDS 잘림 / Work 11 orphan / RxCompose 표지 단독 페이지 모두 해소)

Test Plan

  • `npm run build` 경고/에러 0
  • preview로 Hero/About/Experience/Projects 육안 확인 (라이트/다크)
  • 데스크톱 SideIndex 고정 + active 섹션 딥블루 bar 전환 동작
  • `npm run build:pdf` PDF 정상 생성 (22페이지, 15.28 MB)
  • 한국어 컨텐츠 diff — About VALUES, Experience WORK_ITEMS, RxCompose FEATURES, Skills/Education/Activities 원문 보존 확인
  • PDF 페이징 매트릭스 위배 케이스 전수 점검 — Project Article/SectionGroup 새 페이지, DesignGroup 들어감/미루기/자름, Diagram/HighlightBox/ProblemSolvingBlock 절대 보호, Cover+Overview+Features 자연 흐름
  • 비프로젝트 섹션 빈 페이지 검증 — AWARDS/Activities 묶임, Work 11 packed, RxCompose library cover + 본문 같은 페이지
  • 모바일 TopBar + 햄버거 메뉴 상세 확인

Notes

  • `.claude/launch.json`에 워크트리 격리 실행용 `Worktree Dev Server`(port 5174, `--root` 포함) 추가
  • PDF 출력 결과: `dist/portfolio.pdf` 22페이지
  • `AGENTS.md` 에 컴포넌트 계층 + PDF anchor 카탈로그 + 새 섹션 추가 가이드 인라인 (Linux Foundation AGENTS.md 표준 권장 패턴)

Closes #27

🤖 Generated with Claude Code

레이아웃 언어·정보 구조·그리드를 잡지식 에디토리얼로 전환.
기존 한국어 컨텐츠 문구 및 프로젝트/경험/스킬 항목은 1:1 보존.

주요 변경:
- theme.css: warm off-white + 딥블루 accent 1종, radius 10px 단일,
  타이포 스케일 축소 (display 52px 상한), 800/900 weight 제거,
  tabular-nums 전역, 불필요한 chart/sidebar 토큰 제거
- design-system: EditorialGrid(12col) · Figure · MetaList · DefList
  · NumberedFeatureList 신설. SectionHeading accent bar 제거,
  ContentCard/FeatureCard/Badge/IconButton 단일 규격화
- ParallaxSection: SPRING_SNAP/SMOOTH/SOFT 토큰화, 진입 거리 축소
- Navigation: 데스크톱 좌측 SideIndex(번호 목차) + 모바일 TopBar 분기
- IA 재구성: Hero → About → Background(Skills/학력/수상/활동)
  → Experience → Projects(4) → Contact
- Hero: 잡지 키-밸류 메타 라인, Scroll 인디케이터/blob 제거
- About: Type A 그리드, Contact 4분할 Footer로 이관
- Background: Skills를 dl 레이아웃, Education/Awards/Activities 타임라인
- Experience: 2컬럼 그리드, monochrome bullets, hairline chip
- Projects: ProjectCover(커버 풀블리드 + 오버레이 메타) +
  ProjectLayout(sticky sidebar + 긴 본문) 구조 도입
  · Variant L(RxCompose): Overview/Architecture/Features(번호 리스트)
    /Use Cases(ShowPot 적용사례, monochrome)
  · Variant A(Filtee/Pokit/Interest): Overview/Features(번호 리스트)
    + 기존 내부 다이어그램 유지
- Footer: Contact 섹션으로 재정의, text-8xl 축소
- App.tsx: SideIndex padding, ProjectDivider(150vh sticky) 제거
- print.css: SideIndex/ProjectCover 대응, 불필요 규칙 정비

삭제:
- ProjectShowPot.tsx (미사용 고아 파일, RxCompose 적용 사례로만 노출)
- src/imports/PortfolioDesignRequest* (사용되지 않는 Figma import)
- SectionIndicator.tsx (SideIndex가 기능 흡수)

워크트리에서 작업하여 launch.json에 Worktree Dev Server (port 5174,
--root 경로 명시) 추가.

Closes #27

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
portfolio Ready Ready Preview, Comment Apr 24, 2026 7:30am

@ShapeKim98 ShapeKim98 added the ai-generated AI 에이전트가 작업한 PR label Apr 21, 2026
@ShapeKim98 ShapeKim98 self-assigned this Apr 21, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 21, 2026

🔍 PR Preview: 삭제됨 (PR closed)

- Hero/SideIndex/Footer 연도 2025 → 2026
- Background: "기술 스택과 경력, 학력, 수상, 활동 이력을 담은 섹션입니다." 문구로 교체 + Career(경력사항) 블록 추가
- ProjectCover: 라이브러리(library) 종류는 표지 이미지 영역 제거, 프로젝트 이미지는 ClickableImage 래핑 + 원본 비율 유지(max-h-80vh / object-contain)
- RxCompose "적용 사례" 카드: Badge 칩 제거 후 번호+eyebrow 에디토리얼 레이아웃으로 재배치
- Filtee "채팅 검색 시 미로드 영역 스크롤 이동" 블록을 SyncFlowDiagram 으로 교체 → "실시간 수신과 동기화 충돌 고려"와 동일 레이아웃 (description + PSB + flow + 스크린샷)
- SyncFlowDiagram: screenshotAlt prop 추가
- ProjectInterest: Apple Watch ↔ iPhone 통신 다이어그램 원본 컬러(블루/그린 2톤 + WCSession 양방향 화살표) 복구
- ProjectSidebar: subtitle 중복 노출 제거 (ProjectCover 텍스트 헤더에서 1회 표기)
- print.css: 각 li/dl row/figure break-inside avoid, article 내부 section 단위 유지, print-mode 에서 프로젝트 sidebar 를 본문 상단 가로 메타바로 재배치, 이미지 max-height 제한

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
표지 복원 & 비율 유지
- ProjectCover: 이전처럼 full-bleed 이미지 + 좌하단 번호·타이틀·부제 오버레이, 우하단 메타 오버레이로 복원
- 이미지는 object-contain + max-h-[85vh] 로 원본 비율 최대한 유지
- 클릭 시 상세보기(ClickableImage) 유지

ShowPot "적용 사례" 카드 정렬
- flex-wrap 으로 우측 메타가 가운데로 밀리던 문제 수정
- grid-cols-[1fr_auto] 로 좌측 본문 + 우측 메타 명확 분리
- 우측: items-end + text-right 로 날짜/팀/GitHub 전부 우측 정렬

ProjectSidebar 개선
- 번호 + 종류(Project/Library) + 프로젝트 이름을 상단에 추가해 스크롤 중에도 컨텍스트 유지

ProjectLayout 컬럼 비율
- lg: 사이드바 col-span-4 → 3, 본문 col-span-8 → 9 (본문 가로폭 확대)

PDF / print.css
- 표지 이미지 max-height 260px 로 제한 → 표지+사이드바 메타+본문 도입부가 한 페이지에 함께 흐름
- ProjectCover 에 print-only 텍스트 헤더(번호/종류/제목/부제/메타) 추가 → PDF에서 오버레이 대신 깔끔하게 표시
- ContentCard/figure/li/dl row 전반에 break-inside: avoid 적용 → 섹션 내부 쪼개짐 최소화
- article 단위 break-before: page 로 프로젝트 경계 명확화
- article 의 sticky 사이드바는 본문 상단 가로 메타바로 재배치(col-span-3 대응 셀렉터 추가)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PDF 표지 — 웹과 동일한 디자인 유지
- ProjectCover 의 print-only 텍스트 헤더 제거
- 이미지 위 다크 오버레이 + 번호/종류/제목/부제/메타 오버레이를 PDF 에서도 그대로 표시
- PDF 에서는 오버레이 gradient 를 약간 더 진하게(0.25/0.25/0.75) 해서 가독성 보강

프로젝트 단위 새 페이지
- 모든 project article 이 새 페이지에서 시작하도록 break-before: page 강제
- 첫 article(RxCompose) 예외 제거 → RxCompose 표지가 이전 페이지 하단에 끼던 문제 해결
- article 의 첫 section(cover)은 break-inside/after avoid 로 본문 도입부가 같은 페이지 유지
- 표지 이미지 max-height 280px 로 제한해 표지+메타+본문 도입부가 한 페이지에 흐름

블록 쪼개짐 방지 (CSS 셀렉터 수정 — 기존 double-backslash 가 매칭 실패했음)
- [class*="rounded-[10px]"][class*="border-border"] 등으로 ContentCard/FeatureCard 전부 break-inside: avoid 정상 적용
- ol > li / ul > li / dl > div / figure 모든 항목 쪼개짐 방지
- TwoColumnLayout 내부 열, article section 도 break-inside: avoid-page
- 내용이 한 페이지보다 크면 자동으로 다음 페이지에서 시작

Background (02) 섹션
- #background .grid 전체(GridLabel + GridBody) 블록을 break-inside: avoid-page
- AWARDS/Education/Activities 서브섹션 라벨만 남고 본문이 다음 페이지로 밀리던 orphan 문제 해결

Footer (Contact)
- section[id="contact"] 전체 break-inside: avoid-page
- 하단 "© 2026 / All rights reserved" 라인은 앞 내용과 같은 페이지에 강제

Eyebrow (uppercase tracking-widest span) 뒤 본문이 분리되지 않게 break-after: avoid

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PDF 표지 이미지 웹과 동일한 full-bleed 렌더링
- print 모드 이미지 규칙에서 width: auto / max-height 280px 제약 제거
- width: 100% + max-height: 520px + object-cover 로 컨테이너 전체 폭 채움
- 이전에는 1130px 컨테이너에 520px 이미지가 들어가 우측에 큰 빈 공간 발생했던 문제 해결

Experience 헤더(03 — EXPERIENCE / 미스고(주) / iOS Developer) 와 WORK 리스트 동거
- Experience 섹션의 두 번째 EditorialGrid(Work) 에 break-before: avoid
- 인트로 블록 + Work 리스트 첫 항목이 가능한 한 같은 페이지에 이어짐

대제목(SectionGroup title, SubSectionTitle size="xl") 페이지 분리
- SectionGroup 컴포넌트 래퍼에 data-print-section-break 속성 추가
- print-mode CSS: [data-print-section-break] / article h4.text-xl 에 break-before: page
- "프로젝트 설계", "사진 필터 제작 기능 설계", "채팅 기능 설계", "결제 기능 설계",
  "URL 제목 및 썸네일 파싱 설계" 등 대제목이 나오면 공간이 남아도 새 페이지에서 시작
- 대제목 바로 아래 첫 블록에 break-after: avoid 로 제목이 본문과 분리되지 않도록 보강

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
문제: PDF 에서 프로젝트 표지 + 사이드바 identity block 만 한 페이지, 본문은 다음 페이지로 밀리던 증상
원인: 사이드바의 "01 · LIBRARY / RxCompose" identity block 이 표지 바로 아래 렌더되면서, break-inside avoid 가 identity block 내부(eyebrow vs 제목)에서 분리될 여지를 남겼고, cover section 과 다음 콘텐츠 사이에도 break-after: avoid 결속이 없었음

해결
- ProjectSidebar identity block 에 data-print-hide 부착 → PDF에서는 ProjectCover 가 이미 번호/종류/타이틀/부제를 prominently 표시하므로 중복 제거
- print.css: 표지 section 에 break-after: avoid 추가 → 표지 다음에 오는 본문이 같은 페이지에 이어짐
- print.css: aside(사이드바) 에 break-after: avoid 추가 → 사이드바 메타 다음 본문 도입부도 같은 페이지에 이어짐

결과: RxCompose / Filtee / Pokit / Interest 모두 표지 + 메타 + 본문 도입부가 같은 페이지에서 이어지고 프로젝트 이름/표지와 내용이 분리되지 않음

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ProblemSolvingBlock을 정의 리스트 구조(Eyebrow + hairline divide)로 재작성.
다이어그램은 색 구분을 유지하되 에디토리얼 형태 규약 일괄 적용:
- radius: rounded-xl/2xl/lg → rounded-[10px] 단일화
- border: border-2 / border-dashed → 1px solid hairline
- shadow 전면 제거
- 컬러 필 알약(/10+) → /5 수준 희미 틴트 + 보더/텍스트 색 유지

카드/정보 블럭은 bg-card + border-border 로 통일:
- Pokit: Modular Architecture / Tuist Graph / 원인 파악 박스 + OG 카드 목업
- Filtee: 스냅샷 시점 박스 + 결제 검증 박스
- OG 목업 상단 라벨을 Eyebrow 컴포넌트로 교체

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ProblemSolvingBlock: 외곽 카드 제거, 좌측 3px 컬러바(destructive/green-500)
  + 컬러 Eyebrow(text-destructive / text-green-600)로 재설계.
  색 구분을 유지한 채 카드 chrome 없이 프로즈로 흐르게.
- design-system: FeatureCard/FeatureItem/NumberedStep 박스 제거,
  border-b 행 구조로 전환. ContentCard는 다이어그램 래퍼 용도로 유지.
- SectionGroup: 하위 children 사이에 hairline Divider 자동 삽입하여
  카드 제거 후에도 섹션 구분 명확.
- 프로젝트 파일: Project{RxCompose,Filtee,Pokit,Interest} 내 모든 외곽
  ContentCard 삭제 (총 15건). bg-primary/5 틴트 콜아웃 4건은
  border-l-[3px] border-primary 좌측 바로 전환.
- Pokit Modular Architecture 3이유 카드 그리드 → 번호 행 리스트로 전환.
- Pokit JWT 비교, Filtee Stack 다이어그램 외곽 박스 제거 (hairline만).
- Pokit OG 링크 프리뷰 목업 2개: border-t/border-b hairline으로 단순화.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Diagrams.tsx 7개 컴포넌트(LayerDiagram, FlowChart, DBSchema,
  DBRelationDiagram, DBSchemaWithERD, SyncFlowDiagram,
  RxComposeArchitectureDiagram)의 외곽 ContentCard 전면 제거.
  다이어그램 제목은 Eyebrow 스타일(text-xs uppercase tracking-widest
  muted-foreground)로 통일. 내부 노드/SVG/컬러 코딩은 그대로.
- ProblemSolvingList 추가 — 연속된 Problem/Solution 블럭을 hairline
  Divider로 자동 구분. Filtee 1, Pokit 3, Interest 2 총 6개 그룹에
  적용 (PSB 12개 포함).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- OG 태그 파싱 링크 프리뷰 카드 디자인 복원 (rounded + border + bg-card).
- 프로젝트 표지 그라데이션 dim 완화: 0.2/0.15/0.65 → 0.1/0.05/0.45.
- WCSession 다이어그램 — 양방향 통신 의도 시각화 강화:
  모바일/데스크톱 모두 Watch(좌) ↔ iPhone(우) 좌우 배치 유지하여
  수평 화살표가 박스 위치와 공간적으로 일치하도록 함.
  - 파란 화살표 → (Watch→iPhone, 심박수·칼로리), 초록 화살표 ←
    (iPhone→Watch, 운동 제어 명령) — 출발 기기 색과 일치.
  - 모바일에서는 박스 크기를 100×100 (데스크톱 160×160) 로 축소하여
    가로 공간 확보. 라벨 위/화살표 아래 2단 구조로 가독성 확보.
  - 하단 "WCSession · 1초 주기 동기화" 캡션.
- 페이징 잘림 수정:
  - print.css: article 첫 section 의 break-after:avoid 제거 —
    표지+사이드바+본문이 반드시 한 페이지에 붙어야 한다는 제약이
    빈 페이지(page 24) 유발. 표지 break-inside:avoid 만 유지.
  - LayerDiagram / SyncFlowDiagram / DBSchemaWithERD /
    RxComposeArchitectureDiagram 본체 래퍼에 data-print-keep 부착 →
    break-inside:avoid 로 페이지 경계에서 다이어그램 쪼개짐 방지.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
사용자 피드백: "연관되거나 동일한 주제에 대한 내용이면 자르면 안돼".
관련된 타이틀/본문/다이어그램/Problem-Solution은 같은 페이지에 모인다.

주요 변경:

1) ProblemSolvingBlock — dl 래퍼에 data-print-keep 부착.
   Problem/Solution 행이 페이지 경계에서 쪼개지지 않음.
   ("타이머 설계" Problem/Solution 분리 해소)

2) SyncFlowDiagram — 전체 블럭(SubSectionTitle + 설명 + PSB + 다이어그램
   + 스크린샷)을 data-print-keep 으로 묶음. "채팅 검색 시 미로드 영역
   스크롤 이동" 제목과 다이어그램 분리 해소.

3) LayerDiagram — subtitle / description prop 추가. Pokit "모듈 구성 및
   레이어 설계"와 Filtee "4계층 구조 설계"의 외부 SubSectionTitle/설명을
   LayerDiagram 내부 data-print-keep 래퍼로 이동하여 제목 + 본문 +
   계층 카드가 한 덩어리로 유지.

4) Interest 서브섹션(HealthKit, Clean Architecture, 타이머 설계) —
   각 FadeInView 내부를 data-print-keep div 로 감싸 SubSectionTitle +
   설명 + PSB 가 분리되지 않도록.

5) 표지 연결 복원 — article 첫 section(ProjectCover) 에 break-after:avoid
   복원, aside(사이드바)에도 break-inside:avoid + break-after:avoid 부착.
   표지 이미지 max-height 520px → 340px 로 축소해 표지 + 사이드바 + 본문
   도입부가 한 페이지에 모이기 쉽게 조정. (빈 페이지 24 현상 대응 포함)

6) Experience 내러티브 — max-w-prose 제거. WORK 리스트와 동일한 폭으로
   확장되어 레이아웃 일관성 확보.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1) LayerDiagram 레이어 행 레이아웃 — 라벨 컬럼 min-w-[100px] 에서 고정
   w-[170px] + md:shrink-0 으로 변경. 모바일에서는 라벨과 설명이 세로로
   스택되도록 flex-col 로 반응형. "Util / SharedThirdPartyLib" 같은 긴
   라벨이 설명 텍스트와 겹치지 않음.

2) 표지 이미지 max-height 340px → 480px. 원본 웹 디자인의 세로 비율을
   최대한 살리기.

3) print.css — article 첫 section / aside 의 break-after:avoid 제거.
   "cover + sidebar + body 가 반드시 같은 페이지에 있어야 함" 제약이
   블록 총 높이가 페이지를 넘길 때 빈 페이지(23) 를 만들던 원인. 이제
   각 요소는 내부적으로만 쪼개지지 않고, 페이지 경계에 자연스럽게 배치.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…정비 (#27)

- 컴포넌트 계층: SectionGroup(강제 새 페이지) > DesignGroup(들어감/미루기/자름) > DesignUnit
- DesignGroup divider prop 추가, 헤더 하단 진입 구분선
- SectionGroup 헤더 시각 강화(text-2xl + border-t-2)
- HighlightBox / InlineDiagram / DesignUnit / DesignGroup / UseCaseCover 신설
- ShowPot 표지 오버레이(UseCaseCover로 ProjectCover 패턴 재사용)
- Cover img max-height 60vh로 Interest Features 행 단위 분리
- 빈 페이지 8 해결(article 본문 section padding-bottom 0)
- Footer border-top 제거(수평·수직 비대칭 해소)
- 제목 중복 제거(LayerDiagram subtitle / DBSchemaWithERD title)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 비프로젝트 섹션(About/Profile/Experience/Footer)에 data-print-keep 부여
  → AWARDS 단독 잔류, Work 11 orphan 해결
- ProjectCover library variant 에 data-print-cover-library + 다음 본문과 묶기
  → RxCompose 표지 단독 페이지 해결
- FadeInView 가 HTML attrs 를 motion.div 로 spread
- AGENTS.md anchor 카탈로그 + 비프로젝트 섹션 가이드 보강

총 27 → 22 페이지 (5p 절약).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Work 묶음의 data-print-keep 제거 — wrapper anchor 가 Work 통째 새 페이지로
미루기를 유발해 헤더가 이전 페이지(Awards/Activities) 끝에 packing 되며
헤더-Work 가 다른 페이지에 갈리는 문제 발생.

제거 후: 헤더 + Work 01-02 같은 페이지, Work 09-11 도 3개 묶여 orphan 아님.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ShapeKim98 ShapeKim98 merged commit 77ce303 into main Apr 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-generated AI 에이전트가 작업한 PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

전면 리디자인: Editorial Magazine 구조 개편

1 participant