Files
C.E.L_Slide_test2/docs/test-bim-page.html
kyeongmin 9bd9dad9ac IMPROVEMENT Phase A~D + Phase 2 전체 반영
## IMPROVEMENT (Phase A~D)
- A-1: 4단계 Sonnet 디자인 조정 (_adjust_design) — CSS 변수 cascade
- A-2: 5단계 HTML 전문 프롬프트 전달
- A-3: shrink/expand 하드코딩 제거 → Sonnet target_ratio 기반
- A-4: rewrite action 구현
- A-5: overflow: visible (area 레벨 텍스트 잘림 방지)
- A-6: object-fit cover → contain (이미지 crop 방지)
- A-7: table-layout: fixed
- A-8: container query 폰트 스케일링
- B-1: details-block 템플릿 신규 (CSS 변수만 사용)
- B-2: 인쇄 시 details 자동 펼침 JS
- B-3: catalog에 details-block 등록
- B-4/B-5: images[]/tables[] 상세 판단 + fallback 3곳 동기화
- B-8: fallback card-grid → topic-header + char_guide 제거
- C-1: CLAUDE.md gradient 원칙 완화
- C-3: border-radius 9개 파일 var(--radius) 통일
- C-4: box-shadow 2레벨 → 1레벨
- D-0: 이미지 경로 입력 UI + API base_path
- D-1: Pillow 의존성 + image_utils.py
- D-2~D-4: 이미지 비율/축소방지 프롬프트 전달
- D-5: HTML에 이미지 base64 삽입

## Phase 2 (다른 Claude 작업)
- P2-A: FAISS 블록 검색 (bge-m3, 46개 블록)
- P2-B: SVG N개 자동 배치 (svg_calculator.py)
- P2-C: Opus 블록 추천 (Kei API 경유)
- P2-D: 5단계 재검토 루프 강화 (MAX_REVIEW_ROUNDS=2)
- P2-E: details-block fallback 연동

## 버그 수정 (BF-8~10)
- BF-8: 컨테이너 예산 기반 블록 배치
- BF-9: grid와 Sonnet 역할 분리
- BF-10: catalog mtime 캐시 자동 갱신

## 블록 라이브러리
- 46개 블록 (6 카테고리), catalog/BLOCK_SLOTS/INDEX 동기화
- 구 블록 제거 (quote-block, card-grid, comparison)
- 13개 _legacy 블록 보존

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:40:20 +09:00

329 lines
7.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>2-1_02 건설정보모델링(BIM) — 레이어 방식 재현</title>
<style>
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css');
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Pretendard Variable', 'Noto Sans KR', sans-serif;
background: #e8ecf0;
display: flex;
justify-content: center;
padding: 20px;
}
/* ═══ 프레임 컨테이너 (920x2179 원본 비율) ═══ */
.frame {
width: 920px;
background: #ffffff;
position: relative;
overflow: hidden;
}
/* ═══ 섹션 1: 배경 헤더 + 타이틀 ═══ */
.header-section {
position: relative;
width: 100%;
height: 515px;
overflow: hidden;
}
.header-bg {
position: absolute;
inset: 0;
z-index: 1;
}
.header-bg img {
width: 100%;
height: 100%;
object-fit: cover;
}
.header-overlay {
position: absolute;
inset: 0;
z-index: 2;
display: flex;
flex-direction: column;
padding: 40px 89px;
}
.close-btn {
position: absolute;
top: 20px;
right: 20px;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 10;
color: white;
font-size: 24px;
}
.section-title-block {
margin-top: auto;
margin-bottom: 30px;
}
.section-title-en {
font-size: 15px;
font-weight: 400;
color: #ffffff;
opacity: 0.9;
margin-bottom: 4px;
}
.section-title-ko {
font-size: 35px;
font-weight: 700;
color: #ffffff;
line-height: 1.3;
}
/* ═══ 섹션 2-3: 꼭지 제목+설명 ═══ */
.topic-section {
padding: 25px 89px 15px;
}
.topic-row {
display: flex;
gap: 20px;
margin-bottom: 20px;
}
.topic-title {
width: 240px;
flex-shrink: 0;
font-size: 24px;
font-weight: 700;
color: #004cbe;
line-height: 1.4;
word-break: keep-all;
}
.topic-desc {
flex: 1;
font-size: 16px;
font-weight: 400;
color: #000000;
line-height: 1.7;
word-break: keep-all;
}
/* ═══ 섹션 4: 이미지 그리드 2열 ═══ */
.image-grid-section {
padding: 0 89px 20px;
display: flex;
gap: 0;
}
.image-grid-item {
flex: 1;
overflow: hidden;
}
.image-grid-item img {
width: 100%;
height: 354px;
object-fit: cover;
}
/* ═══ 섹션 5: 산맥 시각화 ═══ */
.mountain-section {
width: 100%;
overflow: hidden;
}
.mountain-section img {
width: 100%;
height: auto;
}
/* ═══ 섹션 6: 이미지 (EbYopf) ═══ */
.middle-image-section {
width: 100%;
background: #f6f7f9;
padding: 0;
display: flex;
justify-content: center;
}
/* ═══ 섹션 7: 비교 박스 2열 ═══ */
.compare-boxes-section {
padding: 25px 89px;
display: flex;
gap: 15px;
justify-content: center;
align-items: center;
}
.compare-box {
width: 327px;
height: 116px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
position: relative;
}
.compare-box img {
width: 100%;
height: 100%;
object-fit: cover;
}
.vs-label {
background: #ffffff;
border-radius: 8px;
padding: 8px 20px;
font-size: 20px;
font-weight: 700;
color: #006eff;
}
.dx-label, .bim-label {
position: absolute;
font-size: 20px;
font-weight: 700;
color: #ffffff;
z-index: 2;
}
/* ═══ 섹션 8: 비교 테이블 ═══ */
.table-section {
padding: 10px 89px 20px;
}
.table-section img {
width: 100%;
height: auto;
border-radius: 4px;
}
/* ═══ 섹션 9: 원형 라벨 ═══ */
.circle-section {
display: flex;
justify-content: center;
padding: 20px 0;
}
.circle-section img {
width: 190px;
height: 190px;
}
/* ═══ 섹션 10: 카드 3열 ═══ */
.card-section {
padding: 10px 89px 40px;
}
.card-section img {
width: 100%;
height: auto;
border-radius: 4px;
}
/* ═══ 네비게이션 화살표 ═══ */
.nav-arrows {
position: absolute;
bottom: 200px;
width: 100%;
display: flex;
justify-content: space-between;
padding: 0 15px;
z-index: 10;
pointer-events: none;
}
.nav-arrow {
width: 29px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
color: #006aff;
font-size: 24px;
pointer-events: auto;
cursor: pointer;
opacity: 0.5;
}
/* ═══ 브레드크럼 ═══ */
.breadcrumb {
position: absolute;
top: 20px;
left: 89px;
z-index: 5;
font-size: 13px;
color: rgba(255,255,255,0.7);
}
.breadcrumb span {
margin: 0 6px;
color: rgba(255,255,255,0.5);
}
</style>
</head>
<body>
<div class="frame">
<!-- ═══ 섹션 1: 배경 헤더 + 타이틀 ═══ -->
<div class="header-section">
<div class="header-bg">
<img src="figma-assets/bg_header.png" alt="">
</div>
<div class="header-overlay">
<div class="breadcrumb">
건설산업에서의 디지털전환 <span></span> Building Information Modeling
</div>
<div class="close-btn"></div>
<div class="section-title-block">
<div class="section-title-en">Building Information Modeling</div>
<div class="section-title-ko">건설정보모델링(BIM)</div>
</div>
</div>
</div>
<!-- ═══ 섹션 2: 꼭지1 ═══ -->
<div class="topic-section">
<div class="topic-row">
<div class="topic-title">단순 BIM의 적용이<br>D/X가 아닙니다</div>
<div class="topic-desc">BIM은 건설산업의 디지털전환을 수행하는 과정에서 가장 기초가 되는 일부분임을 인지하는 것이 매우 중요합니다.</div>
</div>
<div class="topic-row">
<div class="topic-title">건설산업에서의 BIM</div>
<div class="topic-desc">BIM은 설계, 시공, 유지관리 단계에서의 정보를 통합하고 협업을 촉진하여 인프라 건설 전 생애주기 과정의 효율성을 향상시킵니다.</div>
</div>
</div>
<!-- ═══ 섹션 3: 이미지 그리드 2열 ═══ -->
<div class="image-grid-section">
<div class="image-grid-item">
<img src="figma-assets/image_grid_left.png" alt="시공 현장 1">
</div>
<div class="image-grid-item">
<img src="figma-assets/image_grid_right.png" alt="시공 현장 2">
</div>
</div>
<!-- ═══ 섹션 4: 산맥 시각화 ═══ -->
<div class="mountain-section">
<img src="figma-assets/mountain_viz.png" alt="산맥 시각화">
</div>
<!-- ═══ 섹션 5: 비교 박스 ═══ -->
<div class="compare-boxes-section">
<div class="compare-box">
<img src="figma-assets/compare_box_left.png" alt="DX">
</div>
<div class="vs-label">VS</div>
<div class="compare-box">
<img src="figma-assets/compare_box_right.png" alt="BIM">
</div>
</div>
<!-- ═══ 섹션 6: DX vs BIM 비교 테이블 ═══ -->
<div class="table-section">
<img src="figma-assets/dx_bim_table.png" alt="DX vs BIM 비교">
</div>
<!-- ═══ 섹션 7: 원형 라벨 ═══ -->
<div class="circle-section">
<img src="figma-assets/circle_label.png" alt="단계별 BIM의 활용">
</div>
<!-- ═══ 섹션 8: 카드 3열 ═══ -->
<div class="card-section">
<img src="figma-assets/card_3col.png" alt="설계/시공/유지관리">
</div>
</div>
</body>
</html>