Files
C.E.L_Slide_test2/figma_to_html_agent/block-tests/prerequisites-3col.html
kyeongmin 51548fdc41 figma_to_html_agent 추가 + MCP/Claude 설정
figma_to_html_agent/:
- Figma MCP 기반 블록 추출 에이전트 (CLAUDE.md, PLAN.md, PROCESS.md 등)
- block-tests/: Figma→HTML 변환 결과물 (bim-3roles-cards 등)
- templates_staging/: Jinja2 템플릿 + meta.yaml + example.yaml
- figma-analysis/, figma-assets/: Figma 분석 데이터 + 에셋
- scripts/: gradient_math.py 등 유틸리티

설정:
- .mcp.json: Figma MCP 서버 연결 설정
- .claude/settings.json: Claude Code 프로젝트 설정

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 11:00:31 +09:00

266 lines
11 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">
<meta name="viewport" content="width=1280">
<title>필수조건 3열 비교 블록 (LEGACY)</title>
<!--
⚠️ ⚠️ ⚠️ LEGACY — 구 방법론 변환물. 레퍼런스로 사용 금지. ⚠️ ⚠️ ⚠️
이 파일은 R8/R9 도입 이전의 변환 방식을 사용합니다:
- 모든 px 값을 수동으로 0.60290 곱셈 (R8 신규 권장 위반: transform: scale() 미사용)
- 색상바를 div + linear-gradient 단일 사용, 본격적인 Pure CSS div 패턴 미적용 (R9 미적용)
- frame_1171281190_flat.md 도 신규 변환의 STEP 5 형식과 다름
동일 패턴 (3-column-comparison) 이 다시 등장하면:
1. 이 파일을 베끼지 말 것
2. PROCESS.md 의 신규 10단계로 처음부터 변환
3. blocks_index.md 의 "변환 완료 (현행 방법론)" 섹션에 등록
4. 이 파일은 archive 또는 그대로 두되 절대 참조 금지
============================================================
Figma → HTML 수학적 변환 (bottom-up) — LEGACY METHODOLOGY
============================================================
원본 Frame: 2123.13 × 724 px (node 45:15, Frame 1171281190)
타겟 슬라이드: 1280 × 720 px (16:9)
Scale factor S = 1280 / 2123.13 = 0.60290
모든 CSS 값 = Figma 원본 값 × 0.60290 (legacy 방식)
플래튼 목록: frame_1171281190_flat.md 참조
============================================================
-->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@500;700&display=swap" rel="stylesheet">
<style>
/* S = 0.60290 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #f5f5f5;
font-family: 'Noto Sans KR', sans-serif;
}
/* 슬라이드 (16:9, 흰색 배경) */
.slide {
width: 1280px;
height: 720px;
background: #ffffff;
position: relative;
display: flex;
justify-content: center;
align-items: center;
box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
/* 블록: 2123.13×724 → 1280×437 */
.block {
width: 1280px;
height: 437px;
background: #ffffff; /* 미리보기용 흰색. 원본: #000000 */
position: relative;
overflow: hidden;
}
/* ── 아이콘: abs(0,13) → (0,8), 50×61 → 30×37 ── */
.icon {
position: absolute;
left: 0; top: 8px;
width: 30px; height: 37px;
display: flex; align-items: center; justify-content: center;
}
.icon img { height: 30px; width: auto; object-fit: contain; }
/* ── 타이틀 "필수조건": abs(75,0), font 70→42.2px ── */
.title {
position: absolute;
left: 45px; top: 0;
font-weight: 700;
font-size: 42.2px;
line-height: 1.448;
background: linear-gradient(180deg, #000 0%, #883700 100%);
-webkit-background-clip: text; background-clip: text;
-webkit-text-fill-color: transparent;
filter: drop-shadow(0px 0px 2.4px rgba(50,44,30,1));
}
/* ── 열 공통: top 129→78, H 595→359 ── */
.col { position: absolute; top: 78px; height: 359px; }
.col--tech { left: 0; width: 416px; }
.col--people { left: 431px; width: 416px; }
.col--nature { left: 862px; width: 418px; }
/* ── 색상바: (0,0) 152.5×595 → 92×359 ── */
.bar { position: absolute; left: 0; top: 0; width: 92px; height: 359px; }
.col--tech .bar { background: linear-gradient(180deg, #0D78D0 0%, #023056 100%); }
.col--people .bar { background: linear-gradient(180deg, #FF9A23 0%, #CC5200 100%); }
.col--nature .bar { background: linear-gradient(180deg, #39BE49 21%, #23742C 100%); }
/* ── 한자: 바 오른쪽 절반 중앙, font 50→30px ── */
.kanji {
position: absolute;
left: 55px; width: 26px; height: 131px;
font-weight: 700; font-size: 30px; line-height: 4.2;
text-align: center; color: #FFF; z-index: 2;
display: flex; align-items: center; justify-content: center;
}
.kanji--top { top: 22px; }
.kanji--bottom { top: 205px; }
/* ── 제목 (그라데이션): left 171.89→104, font 45→27.1px ── */
.heading {
position: absolute; left: 104px;
font-weight: 700; font-size: 27.1px; line-height: 1;
padding-bottom: 7px;
/* Figma lh=1em 유지. Noto Sans KR descender=288/1000 → half-leading=-6.07px
→ padding-bottom:7px로 descender(g,y,p,쉼표) 잘림 방지 */
-webkit-background-clip: text; background-clip: text;
-webkit-text-fill-color: transparent; z-index: 2;
}
.heading--top { top: 18px; }
.heading--bottom { top: 194px; }
.col--tech .heading--top { background: linear-gradient(180deg, #0D78D0 0%, #134D7F 100%); -webkit-background-clip: text; background-clip: text; }
.col--tech .heading--bottom { background: linear-gradient(180deg, #0D78D0 0%, #023056 100%); -webkit-background-clip: text; background-clip: text; }
.col--people .heading--top { background: linear-gradient(180deg, #FE900C 0%, #D18B37 100%); -webkit-background-clip: text; background-clip: text; }
.col--people .heading--bottom{ background: linear-gradient(180deg, #F58806 0%, #CE7914 100%); -webkit-background-clip: text; background-clip: text; }
.col--nature .heading--top { background: linear-gradient(180deg, #3CA649 21%, #23742C 100%); -webkit-background-clip: text; background-clip: text; }
.col--nature .heading--bottom{ background: linear-gradient(180deg, #3CA649 0%, #23742C 100%); -webkit-background-clip: text; background-clip: text; }
/* ── 설명: font 35→21.1px, #3E3523 ── */
.desc {
position: absolute; left: 104px;
font-weight: 500; font-size: 21.1px; line-height: 1.286;
color: #3E3523; z-index: 2;
}
.desc--top { top: 95px; }
.desc--bottom { top: 266px; }
/* ── 테두리선 ── */
.line-top-h { position: absolute; left: 0; top: 0; right: 0; border-top: 1.2px solid #000; }
.line-bot-h { position: absolute; left: 0; bottom: 0; right: 0; border-top: 1.2px solid #000; }
.line-mid-h { position: absolute; left: 92px; right: 0; top: 180px; border-top: 1.2px dashed #000; }
.line-mid-short { position: absolute; left: 46px; width: 46px; top: 180px; }
.col--tech .line-mid-short { border-top: 1.2px dashed #84D1F4; }
.col--people .line-mid-short { border-top: 1.2px dashed #FFF; }
.col--nature .line-mid-short { border-top: 1.2px dashed #FFF; }
.line-vert { position: absolute; left: 46px; top: 1px; height: 358px; }
.col--tech .line-vert { border-left: 1.2px dashed #84D1F4; }
.col--people .line-vert { border-left: 1.2px dashed #FFF; }
.col--nature .line-vert { border-left: 1.2px dashed #FFF; }
/* ── 세로 라벨: 좁은 박스 + <br> 줄바꿈, 바 왼쪽 절반(0~46px) 중앙 ── */
.vlabel {
position: absolute;
font-weight: 700; color: #FFF; z-index: 3;
text-align: center; line-height: 1.2;
}
/* 괄호: Figma bbox 60×19 (정상 ~18×50) → 90° 회전 확인됨.
br1 = 여는 괄호 (name과 sub 사이), rotate(90deg)
br2 = 닫는 괄호 (sub 아래), rotate(-90deg) */
.vlabel--br1,
.vlabel--br2 {
font-size: 18px;
display: flex; align-items: center; justify-content: center;
}
.vlabel--br1 { transform: rotate(90deg); }
.vlabel--br2 { transform: rotate(-90deg); }
/* 열1 기술(디지털) */
.col--tech .vlabel--name { left: 0; width: 46px; top: 73px; font-size: 30px; }
.col--tech .vlabel--sub { left: 0; width: 46px; top: 162px; font-size: 30px; }
.col--tech .vlabel--br1 { left: 0; width: 46px; top: 151px; }
.col--tech .vlabel--br2 { left: 0; width: 46px; top: 274px; }
/* 열2 사람(역량) */
.col--people .vlabel--name { left: 0; width: 46px; top: 100px; font-size: 30px; }
.col--people .vlabel--sub { left: 0; width: 46px; top: 189px; font-size: 30px; }
.col--people .vlabel--br1 { left: 0; width: 46px; top: 177px; }
.col--people .vlabel--br2 { left: 0; width: 46px; top: 265px; }
/* 열3 자연(여건) */
.col--nature .vlabel--name { left: 0; width: 46px; top: 100px; font-size: 30px; }
.col--nature .vlabel--sub { left: 0; width: 46px; top: 189px; font-size: 30px; }
.col--nature .vlabel--br1 { left: 0; width: 46px; top: 177px; }
.col--nature .vlabel--br2 { left: 0; width: 46px; top: 265px; }
</style>
</head>
<body>
<div class="slide">
<div class="block">
<!-- 타이틀 "필수조건" + 아이콘: 삭제 (블록 외부에서 처리) -->
<!-- 열1: 기술 (파랑) -->
<div class="col col--tech">
<div class="bar"></div>
<div class="line-top-h"></div>
<div class="line-bot-h"></div>
<div class="line-mid-h"></div>
<div class="line-mid-short"></div>
<div class="line-vert"></div>
<span class="kanji kanji--top"></span>
<span class="kanji kanji--bottom"></span>
<span class="vlabel vlabel--name"><br></span>
<span class="vlabel vlabel--sub"><br><br></span>
<span class="vlabel vlabel--br1">(</span>
<span class="vlabel vlabel--br2">(</span>
<div class="heading heading--top">깊은 기반<br>(건설산업, 토목) 지식</div>
<div class="desc desc--top">건설단계별 근본적인 이해와<br>경험이 기반된 높은 전문지식 보유</div>
<div class="heading heading--bottom">높은 S/W 기술<br>(Digital Technology)</div>
<div class="desc desc--bottom">다양한 기술적도구(S/W,H/W)와<br>Process의 효과적인 통합</div>
</div>
<!-- 열2: 사람 (주황) -->
<div class="col col--people">
<div class="bar"></div>
<div class="line-top-h"></div>
<div class="line-bot-h"></div>
<div class="line-mid-h"></div>
<div class="line-mid-short"></div>
<div class="line-vert"></div>
<span class="kanji kanji--top"></span>
<span class="kanji kanji--bottom"></span>
<span class="vlabel vlabel--name"><br></span>
<span class="vlabel vlabel--sub"><br></span>
<span class="vlabel vlabel--br1">(</span>
<span class="vlabel vlabel--br2">(</span>
<div class="heading heading--top">분야별 전문지식<br>역량을 갖춘 기술자</div>
<div class="desc desc--top">엔지니어의 Know-how와<br>디지털지식이 융합된 지식의 축적</div>
<div class="heading heading--bottom">디지털화 역량 및<br>개발경험 많은 개발자</div>
<div class="desc desc--bottom">다양한 형태의 Solution S/W<br>개발 역량 Programmer</div>
</div>
<!-- 열3: 자연 (초록) -->
<div class="col col--nature">
<div class="bar"></div>
<div class="line-top-h"></div>
<div class="line-bot-h"></div>
<div class="line-mid-h"></div>
<div class="line-mid-short"></div>
<div class="line-vert"></div>
<span class="kanji kanji--top"></span>
<span class="kanji kanji--bottom"></span>
<span class="vlabel vlabel--name"><br></span>
<span class="vlabel vlabel--sub"><br></span>
<span class="vlabel vlabel--br1">(</span>
<span class="vlabel vlabel--br2">(</span>
<div class="heading heading--top">받아들일 수 있는<br>사회·기업·제도 등의 여건</div>
<div class="desc desc--top">목표설정형 지침에서 탈피하여<br>수행사례, 효과검증을 통해 시행</div>
<div class="heading heading--bottom">지속적·장기적 투자를<br>수행할 능력과 의지</div>
<div class="desc desc--bottom">기술 개발을 위한 대규모 투자 및<br>Process 혁신을 위한 지속적인 투자</div>
</div>
</div>
</div>
</body>
</html>