add: figma_to_html_agent/blocks/ + 변환 도구 docs 갱신
전체 401 files (397 추가 + 4 수정), 14304 insertions.
추가:
- figma_to_html_agent/blocks/ — Figma 변환 결과 (32 frame, ~79MB).
각 frame folder = {analysis.md, flat.md, texts.md, index.html, assets/,
_renders/, _render.py, RELATIONSHIPS.md / STATUS.md / classification.md
(일부 frame)}.
Phase Z 의 *figma source layer* — runtime 에서 직접 사용 X, contract /
partial / builder adapter (미래 axis A) 의 source.
- figma_to_html_agent/DISCUSSION-SUMMARY-20260411.md — 변환 설계 회의 기록.
- figma_to_html_agent/HARNESS.md — 변환 검증 harness.
- figma_to_html_agent/scripts/fetch_figma_screenshots.py — Figma 스크린샷 자동 수집.
수정:
- figma_to_html_agent/PROCESS-CONTROL.md / PROCESS.md / RULES.md —
변환 프로세스 / 룰 갱신 (R8/R9 lock 강화 등).
- figma_to_html_agent/blocks_index.md — 32 frame 인덱스 갱신.
Phase Z 영향 0 (figma_to_html_agent/blocks/ 가 V4 catalog +
templates/phase_z2/families adapter 의 source — runtime 에서 직접 import X).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
107
figma_to_html_agent/blocks/1171281193/RELATIONSHIPS.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Frame 1171281193 — 원본 시각 관계 분석
|
||||
|
||||
> 소스: `design_agent(원본)/figma_to_html_agent/block-tests/bim-issues-quadrant.html`
|
||||
> 목적: hybrid 재구성 전, 보존/flow화/CSS대체 영역을 명확히 분리
|
||||
|
||||
---
|
||||
|
||||
## 1. 반드시 유지할 시각 관계
|
||||
|
||||
### 1-A. 8개 headline box 위치 (absolute 유지)
|
||||
|
||||
| ID | 위치 | 크기 | 정렬 |
|
||||
|----|------|------|------|
|
||||
| h-tl-1 | left:12, top:151.22 | w:771 | left |
|
||||
| h-tl-2 | left:12, top:565.27 | w:885 | left |
|
||||
| h-tr-1 | right:1, top:151.22 | w:771 | right |
|
||||
| h-tr-2 | right:1, top:564.35 | w:807 | right |
|
||||
| h-bl-1 | left:12, top:957.17 | w:657 | left |
|
||||
| h-bl-2 | left:12, top:1298.36 | w:771 | left |
|
||||
| h-br-1 | right:1, top:957.17 | w:539 | right |
|
||||
| h-br-2 | right:1, top:1312.18 | w:820 | right |
|
||||
|
||||
### 1-B. 12개 body box 위치와 폭 (absolute 유지, 높이만 auto)
|
||||
|
||||
| ID | 위치 | 폭 | 원본 높이 | 정렬 | 중심 근접? |
|
||||
|----|------|-----|---------|------|-----------|
|
||||
| b-tl-1 | left:8, top:222.25 | 993 | 239.75 | left | N |
|
||||
| b-tl-2 | left:8, top:645.49 | 870 | 239.75 | left | **Y** (중심 y:582~1166) |
|
||||
| b-tr-1 | right:21, top:222.25 | 1058 | 299.69 | right | N |
|
||||
| b-tr-2 | right:21, top:635.35 | 915 | 119.88 | right | **Y** |
|
||||
| b-tr-3 | right:21, top:775.45 | 751 | 119.38 | right | **Y** |
|
||||
| b-bl-1 | left:8, top:1035.56 | 972 | 179.81 | left | **Y** |
|
||||
| b-bl-2 | left:0, top:1367.52 | 1082 | 239.75 | left | N |
|
||||
| b-br-1 | right:21, top:1028.17 | 880 | 119.88 | right | **Y** |
|
||||
| b-br-2 | right:21, top:1154.20 | 1025 | 119.88 | right | **Y** |
|
||||
| b-br-3 | right:21, top:1379.50 | 1074 | 239.75 | right | N |
|
||||
|
||||
**핵심**: 중심 근접 body box들의 폭이 좁다 → 중심 원 금지영역을 피함.
|
||||
|
||||
### 1-C. 중심 원 금지영역
|
||||
|
||||
```
|
||||
center-quote: left:809.01, top:581.87, w:644.99, h:584.43
|
||||
→ x 범위: 809 ~ 1454
|
||||
→ y 범위: 582 ~ 1166
|
||||
```
|
||||
|
||||
body box의 폭은 이 영역과 겹치지 않도록 설계됨.
|
||||
|
||||
### 1-D. 장식 요소 (absolute 유지)
|
||||
|
||||
- 4 card-bg: gradient 배경, 꼭지점에 배치
|
||||
- 4 header-ribbon: 카테고리 라벨, gradient 배경
|
||||
- center-quote: 이미지 + 오버레이 텍스트
|
||||
|
||||
### 1-E. 우측 body box의 배치 방식
|
||||
|
||||
원본에서 우측 body box는:
|
||||
- `right: 21px` → **박스 자체가 우측에 위치**
|
||||
- `text-align: right` + `list-style-position: inside`
|
||||
|
||||
**하이브리드에서**: bullet-row 블록 자체를 우측에 배치.
|
||||
text-align:right가 아니라 컨테이너가 right에 앵커됨.
|
||||
|
||||
---
|
||||
|
||||
## 2. flow/flex로 바꿔도 되는 내부 영역
|
||||
|
||||
### body box 내부만
|
||||
|
||||
| 원본 | 하이브리드 |
|
||||
|------|-----------|
|
||||
| `<ul><li>` + list-style: disc | R13 flex pair (marker + text) |
|
||||
| height 고정 (239.75, 179.81 등) | height: auto (콘텐츠 결정) |
|
||||
| padding-left: 63px | marker width: 1.5em (≈63px) |
|
||||
|
||||
**절대 바꾸지 않는 것:**
|
||||
- body box의 left/right/top/width (absolute 위치)
|
||||
- headline의 위치/크기
|
||||
- center-quote의 위치
|
||||
|
||||
---
|
||||
|
||||
## 3. CSS로 대체 가능한 자산
|
||||
|
||||
| 원본 자산 | CSS 대체 | 상태 |
|
||||
|----------|---------|------|
|
||||
| card-bg gradient | CSS linear-gradient | 원본에서 이미 CSS |
|
||||
| header-ribbon gradient | CSS linear-gradient | 원본에서 이미 CSS |
|
||||
| center-quote 배경 | img (복잡한 이미지) | 이미지 유지 |
|
||||
|
||||
→ 원본 bim-issues-quadrant.html은 이미 모든 CSS 변환이 완료된 상태.
|
||||
추가 CSS 대체 대상 없음.
|
||||
|
||||
---
|
||||
|
||||
## 4. 하이브리드 재구성 축 순서
|
||||
|
||||
**축1 (먼저)**: body 내부 flow화
|
||||
- body box의 absolute 위치는 원본 그대로
|
||||
- 내부만: ul/li → R13 flex pair
|
||||
- height 고정 → auto
|
||||
- 이 단계에서는 우측 정렬 방식은 아직 안 건드림
|
||||
|
||||
**축2 (다음)**: 우측 bullet-row 배치
|
||||
- 우측 body box: text-align:right 제거
|
||||
- bullet-row 블록을 우측 앵커 컨테이너 안에 좌→우 읽기로 배치
|
||||
25
figma_to_html_agent/blocks/1171281193/STATUS.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Frame 1171281193 — STATUS
|
||||
|
||||
## classification: rewrite (text-box hybrid)
|
||||
|
||||
## 현재 축: 축1 — body 내부 flow화
|
||||
|
||||
### target axis
|
||||
- body-text 내부: `<ul><li>` → R13 flex pair (marker + text)
|
||||
- body-text height: 고정값 → auto
|
||||
|
||||
### do not touch
|
||||
- headline 8개의 위치/크기 (absolute)
|
||||
- body box 12개의 left/right/top/width (absolute)
|
||||
- center-quote 위치/크기
|
||||
- card-bg 4개
|
||||
- header-ribbon 4개
|
||||
- 우측 body의 text-align:right (축2에서 처리)
|
||||
- zoom 값
|
||||
|
||||
### baseline
|
||||
원본 bim-issues-quadrant.html (transform:scale → zoom만 변경)
|
||||
|
||||
### stop condition
|
||||
- body 내부 변경으로 headline/body 간 겹침 발생 시 → 중단
|
||||
- center-quote 영역과의 관계가 깨질 시 → 중단
|
||||
BIN
figma_to_html_agent/blocks/1171281193/_renders/alignend.png
Normal file
|
After Width: | Height: | Size: 415 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/fix2.png
Normal file
|
After Width: | Height: | Size: 415 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/flex.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/flex2.png
Normal file
|
After Width: | Height: | Size: 410 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/r13.png
Normal file
|
After Width: | Height: | Size: 415 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/r13fix.png
Normal file
|
After Width: | Height: | Size: 415 KiB |
|
After Width: | Height: | Size: 393 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/slide_fix2.png
Normal file
|
After Width: | Height: | Size: 392 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/slide_flex.png
Normal file
|
After Width: | Height: | Size: 390 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/slide_r13.png
Normal file
|
After Width: | Height: | Size: 392 KiB |
BIN
figma_to_html_agent/blocks/1171281193/_renders/slide_r13fix.png
Normal file
|
After Width: | Height: | Size: 392 KiB |
64
figma_to_html_agent/blocks/1171281193/analysis.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Frame 1171281193 — BIM 수행 이슈 4사분면
|
||||
|
||||
## 내용 설명
|
||||
|
||||
BIM 수행 실정의 4가지 근본 이슈를 4사분면 레이아웃으로 정리하는
|
||||
디자인. 중앙에 인용("Rome wasn't Built in a day!") + 4사분면에
|
||||
각각 정책 집행 인정주의, 수행 개념 정립 부재, 근본 취지 이해부족,
|
||||
지속 투자 의지 부재 배치. BIM 수행 4가지 근본 이슈·4사분면 문제
|
||||
진단·정책/개념/이해/투자 축 결핍 분석에 적합. 긍정형 나열·주체별
|
||||
나열·시간 순서·3개 이하·5개 이상 항목·2개 비교·필수요건 나열
|
||||
(기술/사람/자연)에는 부적합.
|
||||
|
||||
## 후보 키워드
|
||||
|
||||
정책집행, 인정주의, 수행개념, 근본취지, 투자의지, 개념부재, 이해부족, 지속투자, 이슈
|
||||
|
||||
## 정제 Anchor Sets
|
||||
|
||||
- **bim_four_issues**: 정책집행, 인정주의, 수행개념, 근본취지, 투자의지
|
||||
- **concept_gaps**: 개념부재, 이해부족, 지속투자
|
||||
- **quadrant_structure**: 이슈
|
||||
|
||||
## 구조 매칭 정보
|
||||
|
||||
- **family**: cards
|
||||
- **layout**: quadrant-4
|
||||
- **axis**: horizontal
|
||||
- **relation_type**: parallel
|
||||
- **cardinality**: ideal 4 / min 4 / max 4
|
||||
- **slots** (10개, required 9개): title, center_quote, quadrant_1_label, quadrant_1_body, quadrant_2_label, quadrant_2_body, quadrant_3_label, quadrant_3_body, quadrant_4_label, quadrant_4_body
|
||||
- **source title**: BIM 수행 이슈 4사분면
|
||||
- **original layout**: quadrant-issues
|
||||
|
||||
## 적합/부적합 기준
|
||||
|
||||
### suits
|
||||
- BIM 수행 4가지 근본 이슈
|
||||
- 4사분면 문제 진단
|
||||
- 정책/개념/이해/투자 축 결핍
|
||||
|
||||
### not_suits
|
||||
- 긍정형 효과 나열
|
||||
- 주체별 나열 (발주자/시공자/설계자)
|
||||
- 시간 순서
|
||||
- 3개 이하 항목
|
||||
- 5개 이상 항목
|
||||
- 2개 비교
|
||||
- 필수요건 나열 (기술/사람/자연)
|
||||
|
||||
## 재구성 허용
|
||||
|
||||
- **split**: False
|
||||
- **merge**: False
|
||||
- **infer_missing_slot**: False
|
||||
- **rewrite_label**: True
|
||||
- **rewrite_body**: True
|
||||
|
||||
## 메타
|
||||
|
||||
- schema_version: template-fit-v1 mirror
|
||||
- source_of_truth: structure_ontology.yaml + keyword_base.yaml
|
||||
- structure_content_original_tagged_by: claude-opus-4-7 (2026-04-21)
|
||||
- keyword_base_sync_at: 2026-04-22
|
||||
- anchor_sets_cleaned_at: 2026-04-22
|
||||
@@ -0,0 +1,17 @@
|
||||
# Frame 1171281193 — BIM 수행 이슈 4사분면
|
||||
|
||||
## 구조
|
||||
- **layout**: quadrant-issues
|
||||
- **detail**: 중앙 인용("Rome wasn't Built in a day!") + 4사분면 이슈(정책집행/수행개념/근본취지/투자의지)
|
||||
|
||||
## 내용
|
||||
BIM 수행 실정 — 4가지 근본 이슈(정책 집행 인정주의, 수행 개념 정립 부재, 근본 취지 이해부족, 지속 투자 의지 부재)를 4사분면으로 정리.
|
||||
|
||||
## 후보 키워드
|
||||
BIM수행, 수행실정, 정책집행, 인정주의, 수행개념, 개념부재, 근본취지, 이해부족, 투자의지, 지속투자, 4사분면, 이슈, Rome, 인용구
|
||||
|
||||
## 메타
|
||||
- source: texts.md + flat.md
|
||||
- schema_version: analysis-v1
|
||||
- tagged_by: claude-opus-4-7
|
||||
- tagged_at: 2026-04-21
|
||||
|
After Width: | Height: | Size: 226 KiB |
|
After Width: | Height: | Size: 32 KiB |
32
figma_to_html_agent/blocks/1171281193/classification.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Frame 1171281193 — 분류: rewrite
|
||||
|
||||
## 근거
|
||||
1. 전체 absolute 배치 → R17 flex/flow 전환 필요
|
||||
2. `<ul><li>` 불릿 → R13 flex pair 전환 필요
|
||||
3. 구조 변경 범위가 patch 수준을 초과
|
||||
|
||||
## 변경 대상
|
||||
- Layout: absolute → CSS Grid 2x2 + flex column
|
||||
- Bullets: `<ul><li>` → R13 flex pair (marker + text)
|
||||
- Card backgrounds: 별도 div → ::before/::after pseudo-elements
|
||||
|
||||
## 변경하지 않는 것
|
||||
- 색상, gradient 값 (ribbon, card-bg)
|
||||
- 텍스트 내용
|
||||
- Center quote 이미지 + 오버레이 텍스트
|
||||
- zoom 값 (0.575022)
|
||||
- 에셋 파일
|
||||
|
||||
## 구조 결정 (HARNESS §4)
|
||||
```
|
||||
이 블록의 레이아웃은?
|
||||
├── CSS Grid 2×2 (사분면 배치)
|
||||
│ → grid-template-columns: 1080px 1080px
|
||||
│ → column-gap: 57px, row-gap: 72px
|
||||
├── 각 사분면: flex column (ribbon + sections)
|
||||
│ → sections 내부도 flex column (section 간 gap: 80px)
|
||||
│ → section 내부도 flex column (headline → bullet-list)
|
||||
├── Center quote: absolute overlay (사분면 경계에 걸침)
|
||||
│ → left:50% top:50% transform:translate(-50%,-50%)
|
||||
└── Card backgrounds: pseudo-elements (장식, flow 영향 없음)
|
||||
```
|
||||
112
figma_to_html_agent/blocks/1171281193/flat.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Frame 1171281193 — 실측 기록 (flat)
|
||||
|
||||
> 원본: 2226 × 1766 px (node 106:205)
|
||||
> 패턴: quadrant-2x2-issues (2×2 이슈 진단)
|
||||
> Scale: 1280 / 2226 = 0.57503
|
||||
|
||||
## 구조
|
||||
|
||||
```
|
||||
Frame 106:205 (2226 × 1766)
|
||||
├── 106:206 "가운데" (0, 0) 2226×1766
|
||||
│ ├── 106:207 "수행실정" (0, 0) 2226×1766
|
||||
│ │ ├── 배경 텍스처 (PNG, border-radius:50px)
|
||||
│ │ │ ├── 106:210 image2380 (5, 0) 1080×270 — 상단좌
|
||||
│ │ │ ├── 106:211 image2381 (1142, 0) 1080×270 — 상단우
|
||||
│ │ │ ├── 106:208 image2382 (5, 1495.69) 1080×270 rotate(180deg) — 하단좌
|
||||
│ │ │ └── 106:209 image2383 (1146, 1495.69) 1080×270 rotate(180deg) — 하단우
|
||||
│ │ │
|
||||
│ │ ├── 장식 사각형 (fill 없음, 투명)
|
||||
│ │ │ ├── 106:213 (228, 117.12) 872×564 — 상단좌
|
||||
│ │ │ ├── 106:237 (1148, 1171.11) 872×564 rotate(180deg) — 하단우
|
||||
│ │ │ └── 106:239 (229, 1171.11) 872×564 rotate(180deg) — 하단좌
|
||||
│ │ │
|
||||
│ │ ├── 중앙 원
|
||||
│ │ │ ├── 106:216 IMG (809.01, 581.87) 644.99×584.43
|
||||
│ │ │ └── 106:217 TEXT "Rome wasn't Built in a day!" center(1132.46, 880.59) 552×221 — 55px Bold white
|
||||
│ │ │
|
||||
│ │ ├── 좌상 — 정책 집행
|
||||
│ │ │ ├── 106:218 TEXT "인정주의 정책 집행" (12, 151.22) 771×60 — 55px Bold red
|
||||
│ │ │ ├── 106:225 TEXT body (8, 222.25) 993×240 — 42px Regular black, bullet list
|
||||
│ │ │ ├── 106:229 TEXT "적용효과도 사례도 없는 방침부터 남발" (12, 565.27) 885×60 — 55px Bold red
|
||||
│ │ │ └── 106:230 TEXT body (8, 645.49) 870×240 — 42px Regular black, bullet list
|
||||
│ │ │
|
||||
│ │ ├── 우상 — 수행 개념
|
||||
│ │ │ ├── 106:221 TEXT "공학적 개념 정립 부재" right(2225, 151.22) 771×60 — 55px Bold red, -translateX(100%)
|
||||
│ │ │ ├── 106:226 TEXT body right(2205, 222.25) 1058×300 — 42px Regular black, -translateX(100%)
|
||||
│ │ │ ├── 106:224 TEXT "'본업 기술력 확보' 우선의 개념 부재" right(2225, 564.35) 807×60 — 55px Bold red
|
||||
│ │ │ ├── 106:233 TEXT body right(2205, 635.35) 915×120 — 42px Regular black
|
||||
│ │ │ └── 106:234 TEXT body right(2205, 775.45) 751×119 — 42px Regular black
|
||||
│ │ │
|
||||
│ │ ├── 좌하 — 근본 취지의 이해부족
|
||||
│ │ │ ├── 106:223 TEXT "기술투자 없는 성과 창출 기대" (12, 957.17) 657×60 — 55px Bold red
|
||||
│ │ │ ├── 106:228 TEXT body (8, 1035.56) 972×180 — 42px Regular black
|
||||
│ │ │ ├── 106:220 TEXT "엔지니어링 S/W에 대한 개념 부재" (12, 1298.36) 771×60 — 55px Bold red
|
||||
│ │ │ └── 106:235 TEXT body (0, 1367.52) 1082×240 — 42px Regular black, bullet list
|
||||
│ │ │
|
||||
│ │ └── 우하 — 지속적 투자 의지 부재
|
||||
│ │ ├── 106:219 TEXT "근본적인 역할은 회피" right(2225, 957.17) 539×60 — 55px Bold red
|
||||
│ │ ├── 106:231 TEXT body right(2205, 1028.17) 880×120 — 42px Regular black
|
||||
│ │ ├── 106:232 TEXT body right(2205, 1154.20) 1025×120 — 42px Regular black
|
||||
│ │ ├── 106:222 TEXT "과거의 타성에 머무르고 있는 업계" right(2225, 1312.18) 820×60 — 55px Bold red
|
||||
│ │ └── 106:227 TEXT body right(2205, 1379.50) 1074×240 — 42px Regular black
|
||||
│ │
|
||||
│ ├── 106:240 헤더바 우상 "수행 개념"
|
||||
│ │ ├── 106:241 bar (1142, 0.01) 1080×118 rotate(180deg) — gradient green → CSS
|
||||
│ │ └── 106:242 TEXT "수행 개념" center(1668.38, 59.02) 899×118 — 60px Black white, text-shadow
|
||||
│ │
|
||||
│ ├── 106:243 헤더바 좌상 "정책 집행"
|
||||
│ │ ├── 106:244 bar (5, 0.83) 1080×119 — gradient brown → CSS
|
||||
│ │ └── 106:245 TEXT "정책 집행" center(540.66, 59.51) 734×119 — 60px Black white, text-shadow
|
||||
│ │
|
||||
│ ├── 106:246 푸터바 우하 "지속적 투자 의지 부재"
|
||||
│ │ ├── 106:247 bar (1146, 1646.99) 1080×118 rotate(180deg) — gradient green → CSS
|
||||
│ │ └── 106:248 TEXT "지속적 투자 의지 부재" center(1672.38, 1706) 899×118 — 60px Black white, text-shadow
|
||||
│ │
|
||||
│ └── 106:249 푸터바 좌하 "근본 취지의 이해부족"
|
||||
│ ├── 106:250 bar (5, 1646.86) 1080×119 — gradient brown → CSS
|
||||
│ └── 106:251 TEXT "근본 취지의 이해부족" center(540.66, 1706.03) 734×118 — 60px Black white, text-shadow
|
||||
```
|
||||
|
||||
## 이미지 에셋
|
||||
|
||||
| hash | 노드 | 의미 |
|
||||
|------|------|------|
|
||||
| fdcafc1b... | 106:208,209,210,211 | 배경 텍스처 PNG (4곳 동일) |
|
||||
| 922ee6f4... | 106:216 | 중앙 원 이미지 |
|
||||
| 5d27ecb1...svg | 106:241 | 우상 헤더바 (green) → CSS 변환 |
|
||||
| 6d311a18...svg | 106:244 | 좌상 헤더바 (brown) → CSS 변환 |
|
||||
| cab8c828...svg | 106:247 | 우하 푸터바 (green) → CSS 변환 |
|
||||
| 42b569ef...svg | 106:250 | 좌하 푸터바 (brown) → CSS 변환 |
|
||||
|
||||
## 색상
|
||||
|
||||
| 요소 | 값 |
|
||||
|------|------|
|
||||
| 헤드라인 | red (#ff0000) |
|
||||
| 본문 | black (#000000) |
|
||||
| 바 라벨 | white, text-shadow 0 0 4px #322c1e |
|
||||
| 브라운 바 | gradient 270deg rgba(165,161,150,0.5) -26.87% → #39321E 73.13% |
|
||||
| 그린 바 | gradient 270deg rgba(41,107,85,0.5) → #032118 |
|
||||
| 중앙 인용 | white, 55px Bold |
|
||||
|
||||
## 이상 탐지
|
||||
|
||||
| 검사 | 결과 |
|
||||
|------|------|
|
||||
| 회전 단일문자 | 없음 |
|
||||
| 좁은 박스 세로 텍스트 | 없음 |
|
||||
| 중복 노드 | 없음 |
|
||||
| -translateX(100%) 우측 정렬 | 106:219,221,222,224,226,227,231,232,233,234 — left값이 우측 기준 |
|
||||
|
||||
## 변형 가능 축
|
||||
|
||||
- quadrants[4] (required) — 각 사분면에 headline + body 쌍
|
||||
- bar_labels[4] (required) — 헤더/푸터 바 라벨
|
||||
- center_quote (optional)
|
||||
- center_image (optional)
|
||||
- bg_texture (optional)
|
||||
|
||||
## Sub-patterns
|
||||
|
||||
- bullet-list: body 텍스트에 `<ul><li>` 불릿 마커 사용 (R13과 유사하나 이미지 마커 없이 텍스트 불릿)
|
||||
337
figma_to_html_agent/blocks/1171281193/index.html
Normal file
@@ -0,0 +1,337 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=1280">
|
||||
<title>BIM 수행실정 (Frame 1171281193)</title>
|
||||
<!--
|
||||
원본: design_agent(원본)/figma_to_html_agent/block-tests/bim-issues-quadrant.html
|
||||
하이브리드: text-box hybrid
|
||||
축1: body 내부 ul/li → R13 flex pair + height:auto ✓
|
||||
축1.5: headline+body → text-group 묶음 (multiline headline → body 밀림) ✓
|
||||
축2 (미적용): 우측 bullet-row 배치 방식
|
||||
변경하지 않은 것: card-bg, ribbon, center-quote, zoom
|
||||
-->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;700;900&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||
body {
|
||||
font-family: 'Noto Sans KR', sans-serif;
|
||||
background: #e8ecf0;
|
||||
display: flex; justify-content: center; align-items: center;
|
||||
min-height: 100vh;
|
||||
padding: 20px;
|
||||
}
|
||||
.slide {
|
||||
width: 1280px;
|
||||
background: #ffffff;
|
||||
position: relative;
|
||||
box-shadow: 0 4px 20px rgba(0,0,0,.15);
|
||||
}
|
||||
.block {
|
||||
width: 1280px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.inner {
|
||||
width: 2226px;
|
||||
height: 1766px;
|
||||
zoom: 0.575022; /* R19 */
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* ─── 카드 배경 (원본 그대로) ─── */
|
||||
.card-bg {
|
||||
position: absolute;
|
||||
width: 1080px;
|
||||
height: 270.183px;
|
||||
background: linear-gradient(180deg, #f2f2f2 0%, #ffffff 100%);
|
||||
}
|
||||
.card-bg.tl { left: 5px; top: 0; border-radius: 50px 50px 0 0; }
|
||||
.card-bg.tr { left: 1142px; top: 0; border-radius: 50px 50px 0 0; }
|
||||
.card-bg.bl { left: 5px; top: 1495.69px; border-radius: 0 0 50px 50px; background: linear-gradient(0deg, #f2f2f2 0%, #ffffff 100%); }
|
||||
.card-bg.br { left: 1146px; top: 1495.69px; border-radius: 0 0 50px 50px; background: linear-gradient(0deg, #f2f2f2 0%, #ffffff 100%); }
|
||||
|
||||
/* ─── Header ribbons (원본 그대로) ─── */
|
||||
.header-ribbon {
|
||||
position: absolute;
|
||||
width: 1080px;
|
||||
height: 119px;
|
||||
border-radius: 50px;
|
||||
}
|
||||
.header-ribbon .text {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
font-weight: 900;
|
||||
font-size: 60px;
|
||||
color: #ffffff;
|
||||
text-shadow: 0 0 4px #322c1e;
|
||||
z-index: 2;
|
||||
}
|
||||
.header-ribbon.tl {
|
||||
left: 5px; top: 0;
|
||||
background: linear-gradient(270deg, rgba(165,161,150,0.5) -26.87%, #39321E 73.13%);
|
||||
}
|
||||
.header-ribbon.bl {
|
||||
left: 5px; top: 1646.86px;
|
||||
background: linear-gradient(270deg, rgba(165,161,150,0.5) -26.87%, #39321E 73.13%);
|
||||
}
|
||||
.header-ribbon.tr {
|
||||
left: 1142px; top: 0;
|
||||
background: linear-gradient(90deg, rgba(41,107,85,0.5) 0%, #032118 100%);
|
||||
}
|
||||
.header-ribbon.br {
|
||||
left: 1146px; top: 1646.99px;
|
||||
background: linear-gradient(90deg, rgba(41,107,85,0.5) 0%, #032118 100%);
|
||||
}
|
||||
|
||||
/* ─── 가운데 원 (원본 그대로) ─── */
|
||||
.center-quote {
|
||||
position: absolute;
|
||||
left: 809.01px;
|
||||
top: 581.87px;
|
||||
width: 644.99px;
|
||||
height: 584.43px;
|
||||
}
|
||||
.center-quote img {
|
||||
width: 100%; height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
.center-quote .text {
|
||||
position: absolute;
|
||||
left: 47.24px; top: 188.26px;
|
||||
width: 552.41px;
|
||||
height: 220.93px;
|
||||
font-weight: 700;
|
||||
font-size: 55px;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
/* ─── Text group (headline + body 묶음) ─── */
|
||||
.text-group {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
/* ─── 빨간 헤드라인 (nowrap 제거 → 폭 안에서 자연 줄바꿈) ─── */
|
||||
.red-h {
|
||||
font-weight: 700;
|
||||
font-size: 55px;
|
||||
line-height: 65px;
|
||||
color: #ff0000;
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
/* ─── 본문 body ─── */
|
||||
.body-text {
|
||||
font-weight: 400;
|
||||
font-size: 42px;
|
||||
line-height: 60px;
|
||||
color: #000000;
|
||||
word-break: keep-all;
|
||||
}
|
||||
|
||||
/* ── R13 flex pair ── */
|
||||
.bullet-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.bullet-row {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.bullet-row .marker {
|
||||
flex: none;
|
||||
width: 1.5em;
|
||||
text-align: center;
|
||||
}
|
||||
.bullet-row .bt {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* ─── Left-side text groups ─── */
|
||||
/* 각 margin-bottom = 원본 (body_top - headline_top - 65px line-height) */
|
||||
|
||||
.tg-tl-1 { left: 8px; top: 151.22px; }
|
||||
.tg-tl-1 .red-h { margin-left: 4px; width: 771px; margin-bottom: 6px; }
|
||||
.tg-tl-1 .body-text { width: 993px; }
|
||||
|
||||
.tg-tl-2 { left: 8px; top: 565.27px; }
|
||||
.tg-tl-2 .red-h { margin-left: 4px; width: 885px; margin-bottom: 15px; }
|
||||
.tg-tl-2 .body-text { width: 870px; }
|
||||
|
||||
.tg-bl-1 { left: 8px; top: 957.17px; }
|
||||
.tg-bl-1 .red-h { margin-left: 4px; width: 657px; margin-bottom: 13px; }
|
||||
.tg-bl-1 .body-text { width: 972px; }
|
||||
|
||||
.tg-bl-2 { left: 0; top: 1298.36px; }
|
||||
.tg-bl-2 .red-h { margin-left: 12px; width: 771px; margin-bottom: 4px; }
|
||||
.tg-bl-2 .body-text { width: 1082px; }
|
||||
|
||||
/* ─── Right-side text groups ─── */
|
||||
.tg-right {
|
||||
width: 1100px;
|
||||
}
|
||||
.tg-right .red-h {
|
||||
text-align: right;
|
||||
}
|
||||
.tg-right .body-text {
|
||||
margin-left: auto;
|
||||
margin-right: 20px; /* body right:21 - group right:1 = 20px */
|
||||
text-align: right;
|
||||
}
|
||||
.tg-right .bullet-row .bt {
|
||||
text-align: right;
|
||||
}
|
||||
.tg-right .bullet-row .marker {
|
||||
width: auto;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.tg-tr-1 { right: 1px; top: 151.22px; }
|
||||
.tg-tr-1 .red-h { margin-bottom: 6px; }
|
||||
.tg-tr-1 .body-text { width: 1058px; }
|
||||
|
||||
.tg-tr-2 { right: 1px; top: 564.35px; }
|
||||
.tg-tr-2 .red-h { margin-bottom: 6px; }
|
||||
|
||||
.tg-br-1 { right: 1px; top: 957.17px; }
|
||||
.tg-br-1 .red-h { margin-bottom: 6px; }
|
||||
|
||||
.tg-br-2 { right: 1px; top: 1312.18px; }
|
||||
.tg-br-2 .red-h { margin-bottom: 2px; }
|
||||
.tg-br-2 .body-text { width: 1074px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="slide">
|
||||
<div class="block">
|
||||
<div class="inner">
|
||||
|
||||
<!-- 카드 배경 4개 -->
|
||||
<div class="card-bg tl"></div>
|
||||
<div class="card-bg tr"></div>
|
||||
<div class="card-bg bl"></div>
|
||||
<div class="card-bg br"></div>
|
||||
|
||||
<!-- 헤더 ribbons -->
|
||||
<div class="header-ribbon tl"><div class="text">정책 집행</div></div>
|
||||
<div class="header-ribbon tr"><div class="text">수행 개념</div></div>
|
||||
<div class="header-ribbon bl"><div class="text">근본 취지의 이해부족</div></div>
|
||||
<div class="header-ribbon br"><div class="text">지속적 투자 의지 부재</div></div>
|
||||
|
||||
<!-- 가운데 원 -->
|
||||
<div class="center-quote">
|
||||
<img src="assets/922ee6f4bea1434652ffc08f962086052286b6c5.png" alt="">
|
||||
<div class="text">Rome wasn't<br>Built in a day!</div>
|
||||
</div>
|
||||
|
||||
<!-- ═══ 좌상 (정책 집행) ═══ -->
|
||||
<div class="text-group tg-tl-1">
|
||||
<p class="red-h">인정주의 정책 집행</p>
|
||||
<div class="body-text">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">수행능력이 없는 업체 선정 후 품질을 낮추어 시행하고 낮은 수준의 성과품을 실적으로 수용</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">모든 설계사가 할 수 있다는 전제하에 정책 시행</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">발주처의 책임회피를 위한 제도 운영</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-group tg-tl-2">
|
||||
<p class="red-h">적용효과도 사례도 없는 방침부터 남발</p>
|
||||
<div class="body-text">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">효과 검증도 없는 지침부터 만들고보는 현실</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">BIM/DX 적용효과를 판단할 사례 부재</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">대부분 홍보목적으로 포장되어 투자 대비 효과 없음</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ═══ 우상 (수행 개념) ═══ -->
|
||||
<div class="text-group tg-right tg-tr-1">
|
||||
<p class="red-h">공학적 개념 정립 부재</p>
|
||||
<div class="body-text" style="width:1058px;">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">DX 개념과 BIM 기술의 차이점의 이해부족으로 전략적 접근방식과 기술적 도구 사이의 혼란만 가중</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">인프라시설의 DX의 기본은 단순 모델이 아닌 위치기반 3D 모델(BIM)을 활용한 과정(Process)의 혁신</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">기술적 도구인 3D 모델 제작S/W에 과도하게 의존</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-group tg-right tg-tr-2">
|
||||
<p class="red-h">'본업 기술력 확보' 우선의 개념 부재</p>
|
||||
<div class="body-text" style="width:915px;">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">깊은 기반지식 바탕의 기술이 축적된 메뉴얼에 대한 중요성 및 필요성에 대한 이해 부족</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="body-text" style="width:751px; margin-top:20px;">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">자체 기술개발 없이 국내 발주처의 지침과 방침에만 의존한 낮은 기술력</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ═══ 좌하 (근본 취지의 이해부족) ═══ -->
|
||||
<div class="text-group tg-bl-1">
|
||||
<p class="red-h">기술투자 없는 성과 창출 기대</p>
|
||||
<div class="body-text">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">이전의 CAD 도입·확장 시기처럼 상용화된 BIM S/W만 구입·구독하면 될거라는 안일한 생각</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">기술개발 노력없이 과거처럼 하면 된다는 착각</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-group tg-bl-2">
|
||||
<p class="red-h">엔지니어링 S/W에 대한 개념 부재</p>
|
||||
<div class="body-text">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">다양한 엔지니어링 S/W의 특성에 대한 깊은 이해없이 단기 비용절감에 치우쳐 범용 S/W 선택</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">대형 Global S/W 회사에 과도한 의존과 이에 예속되는 방침 남발로 전용S/W 소멸</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ═══ 우하 (지속적 투자 의지 부재) ═══ -->
|
||||
<div class="text-group tg-right tg-br-1">
|
||||
<p class="red-h">근본적인 역할은 회피</p>
|
||||
<div class="body-text" style="width:880px;">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">엔지니어의 근본적인 역할인 과정의 혁신과 결과물의 변화에 대한 고민 부재</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="body-text" style="width:1025px; margin-top:6px;">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">기술자가 직접 3D 모델을 만들고 수정하며 설계를 수행해야하는데 정작 모델제작은 외주처리</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-group tg-right tg-br-2">
|
||||
<p class="red-h">과거의 타성에 머무르고 있는 업계</p>
|
||||
<div class="body-text" style="width:1074px;">
|
||||
<div class="bullet-list">
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">설계/감리/시공 임직원들의 디지털무지와 전략적 무지</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">S/W 판매업체의 기능적 사용법을 BIM 교육으로 착각</span></div>
|
||||
<div class="bullet-row"><span class="marker">•</span><span class="bt">교육을 통한 인재양성보다는 당장 실무활용이 가능한 타사의 인력을 빼오기에 집중</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
46
figma_to_html_agent/blocks/1171281193/texts.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# Frame 1171281193 — 텍스트 (TF-IDF 매칭용)
|
||||
|
||||
## 섹션 헤더
|
||||
정책 집행
|
||||
수행 개념
|
||||
근본 취지의 이해부족
|
||||
지속적 투자 의지 부재
|
||||
|
||||
## 중앙 인용
|
||||
Rome wasn't Built in a day!
|
||||
|
||||
## 좌상 — 정책 집행
|
||||
인정주의 정책 집행
|
||||
수행능력이 없는 업체 선정 후 품질을 낮추어 시행하고 낮은 수준의 성과품을 실적으로 수용
|
||||
모든 설계사가 할 수 있다는 전제하에 정책 시행
|
||||
발주처의 책임회피를 위한 제도 운영
|
||||
적용효과도 사례도 없는 방침부터 남발
|
||||
효과 검증도 없는 지침부터 만들고보는 현실
|
||||
BIM/DX 적용효과를 판단할 사례 부재
|
||||
대부분 홍보목적으로 포장되어 투자 대비 효과 없음
|
||||
|
||||
## 우상 — 수행 개념
|
||||
공학적 개념 정립 부재
|
||||
DX 개념과 BIM 기술의 차이점의 이해부족으로 전략적 접근방식과 기술적 도구 사이의 혼란만 가중
|
||||
인프라시설의 DX의 기본은 단순 모델이 아닌 위치기반 기반 3D 모델(BIM)을 활용한 과정(Process)의 혁신
|
||||
기술적 도구인 3D 모델 제작S/W에 과도하게 의존
|
||||
'본업 기술력 확보' 우선의 개념 부재
|
||||
깊은 기반지식 바탕의 기술이 축적된 메뉴얼에 대한 중요성 및 필요성에 대한 이해 부족
|
||||
자체 기술개발 없이 국내 발주처의 지침과 방침에만 의존한 낮은 기술력
|
||||
|
||||
## 좌하 — 근본 취지의 이해부족
|
||||
기술투자 없는 성과 창출 기대
|
||||
이전의 CAD 도입·확장 시기처럼 상용화된 BIM S/W만 구입·구독하면 될거라는 안일한 생각
|
||||
기술개발 노력없이 과거처럼 하면 된다는 착각
|
||||
엔지니어링 S/W에 대한 개념 부재
|
||||
다양한 엔지니어링 S/W의 특성에 대한 깊은 이해없이 단기 비용절감에 치우쳐 범용 S/W 선택
|
||||
대형 Global S/W 회사에 과도한 의존과 이에 예속되는 방침 남발로 전용S/W 소멸
|
||||
|
||||
## 우하 — 지속적 투자 의지 부재
|
||||
근본적인 역할은 회피
|
||||
엔지니어의 근본적인 역할인 과정의 혁신과 결과물의 변화에 대한 고민 부재
|
||||
기술자가 직접 3D 모델을 만들고 수정하며 설계를 수행해야하는데 정작 모델제작은 외주처리
|
||||
과거의 타성에 머무르고 있는 업계
|
||||
설계/감리/시공 임직원들의 디지털무지와 전략적 무지
|
||||
S/W 판매업체의 기능적 사용법을 BIM 교육으로 착각
|
||||
교육을 통한 인재양성보다는 당장 실무활용이 가능한 타사의 인력을 빼오기에 집중
|
||||