Files
C.E.L_Slide_test2/templates/blocks/new/split-panel-numbered.html
kyeongmin 360cd8e44c 블록 템플릿 업데이트: 수정 3개 + 신규 17개 + catalog.yaml 재정비
수정:
- compare-2col-badge, compare-detail-gradient, hero-icon-cards 개선

신규 블록:
- cards: category-strip-table, system-2col-center, hero-icon-cards_1
- emphasis: checklist-dark
- visuals: cycle-orbit
- new/: cards-3col-persona, compare-vs-rows, cycle-3way-intersect 등 8개
- redesign/: card_hero-icon-cards_1
- svg/: arc_left, arrow_conclusion, arrow_down, line_divider
- BEPs: process-product-2col SVG + 테스트

catalog.yaml 전면 재정비 (슬롯 스키마, height_cost, 카테고리 정리)

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

173 lines
6.1 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.
<!-- 분할 패널: 좌측 카테고리 + 우측 번호 설명 -->
<!--
📋 split-panel-numbered
─────────────────
용도: 좌측 카테고리별 항목 + 우측 번호 설명 2단 배치
슬롯:
title_icon — 아이콘 이미지
title (HTML — <span class="model">, <span class="sub">)
left_bg_color — 좌측 셰브론 배경 CSS gradient (기본값 제공)
categories[] (name, color, items[])
mid_arrow_img — 중간 화살표 이미지
right_items[] (number, text, badge_img)
arrow_img — 우측 화살표 이미지
Figma 원본: Frame 1171281202 (node 45:27, 1863×834)
수학적 계산:
scale = 1280 / 1863 = 0.68706
title: Model=70px gradient(#cc5200→#883700), sub=50px gradient(#296b55→#000) (MCP 확인)
cat bar: 단색 #417d38, #008e52, #008970 (픽셀 분석, MCP=이미지)
right bar: #e8ede3 단색 (픽셀 분석)
left-bg: 셰브론 형태 + alpha gradient (픽셀 분석)
CSS 요소: title gradient text, cat bars, right bars, left-bg, mid-deco
이미지 요소: title icon, 3D badge(일러스트), arrow(아이콘), mid arrow
-->
<div class="block-spn">
{% if title_icon or title %}
<div class="spn-header">
{% if title_icon %}<div class="spn-title-icon"><img src="{{ title_icon | default('svg/icon_title.png') }}" alt=""></div>{% endif %}
{% if title %}<div class="spn-title">{{ title|safe }}</div>{% endif %}
</div>
{% endif %}
<div class="spn-body">
<!-- 좌측 패널 -->
<div class="spn-left">
<div class="spn-left-bg"></div>
<div class="spn-categories">
{% for cat in categories %}
<div class="spn-cat">
<div class="spn-cat-bar" style="background: {{ cat.color|default('#417d38') }};"></div>
<div class="spn-cat-title">{{ cat.name }}</div>
<div class="spn-cat-items">
{% for item in cat.items %}
<div class="spn-cat-item">· {{ item }}</div>
{% endfor %}
</div>
</div>
{% endfor %}
</div>
</div>
<!-- 중간 장식 -->
<div class="spn-mid">
<div class="spn-mid-deco"></div>
{% if mid_arrow_img %}<img src="{{ mid_arrow_img | default('svg/arrow_mid.png') }}" class="spn-mid-arrow" alt="">{% endif %}
</div>
<!-- 우측 패널 -->
<div class="spn-right">
{% for item in right_items %}
<div class="spn-row">
{% if item.badge_img %}<div class="spn-badge"><img src="{{ item.badge_img }}" alt=""></div>
{% elif loop.index <= 5 %}<div class="spn-badge"><img src="svg/badge_num_0{{ loop.index }}.png" alt=""></div>{% endif %}
<div class="spn-row-bar">
<div class="spn-row-text">{{ item.text }}</div>
{% if arrow_img %}<img src="{{ arrow_img | default('svg/arrow_right.png') }}" class="spn-row-arrow" alt="">{% endif %}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
<style>
.block-spn {
display: flex; flex-direction: column;
width: 100%; height: 100%;
word-break: keep-all;
}
.spn-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.spn-title-icon { flex: none; width: 26px; height: 27px; }
.spn-title-icon img { width: 100%; height: 100%; object-fit: contain; }
/* title: MCP 확인 gradient text */
.spn-title { font-weight: 900; line-height: 1.1; white-space: nowrap; }
.spn-title .model {
font-size: 34px;
background-image: linear-gradient(180deg, #cc5200 0%, #883700 100%);
-webkit-background-clip: text; background-clip: text; color: transparent;
}
.spn-title .sub {
font-size: 24px;
background-image: linear-gradient(180deg, #296b55 0%, #000 100%);
-webkit-background-clip: text; background-clip: text; color: transparent;
}
.spn-body { display: flex; flex: 1; }
/* 좌측: 셰브론 배경 (CSS clip-path + gradient) */
.spn-left { position: relative; flex: 52; overflow: hidden; }
.spn-left-bg {
position: absolute; inset: 0;
background: linear-gradient(90deg,
rgba(192,213,208,0.19) 0%, rgba(195,214,209,0.66) 50%, rgba(211,227,226,1) 95%);
clip-path: polygon(0 0, 82% 0, 100% 50%, 82% 100%, 0 100%);
border-radius: 20px 0 0 20px;
}
.spn-categories {
position: relative; z-index: 1;
display: flex; flex-direction: column;
justify-content: space-between; flex: 1;
padding: 8px 16px;
}
.spn-cat { display: flex; flex-direction: column; }
/* cat bar: CSS 단색 (픽셀 분석, Figma=이미지) */
.spn-cat-bar {
height: 34px; border-radius: 5px;
background: linear-gradient(90deg, currentColor 0%, currentColor 85%, transparent 100%);
margin-bottom: 4px;
}
.spn-cat-title {
position: relative; z-index: 1; margin-top: -30px;
font-size: 20px; font-weight: 700; color: #fff;
text-shadow: 0 0 4px rgba(0,0,0,0.5);
padding-left: 12px; line-height: 34px;
}
.spn-cat-items { padding: 4px 12px; }
.spn-cat-item {
font-size: 16px; font-weight: 500; color: #000;
line-height: 1.6; text-shadow: 0 0 4px rgba(0,0,0,0.5);
}
/* 중간 장식: CSS radial-gradient */
.spn-mid {
position: relative; flex: none; width: 8%;
display: flex; align-items: center; justify-content: center;
}
.spn-mid-deco {
position: absolute; inset: 10% 0;
background: radial-gradient(ellipse 60% 50% at 100% 50%,
rgba(217,217,217,0.8) 0%, rgba(217,217,217,0.13) 60%, transparent 100%);
}
.spn-mid-arrow { position: relative; z-index: 1; width: 50px; height: 108px; object-fit: contain; }
/* 우측: 번호 + 설명 */
.spn-right {
flex: 40; display: flex; flex-direction: column;
justify-content: space-between; padding: 4px 0;
}
.spn-row { display: flex; align-items: center; gap: 4px; }
/* badge: 3D 큐브 일러스트 → 이미지 유지 */
.spn-badge { flex: none; width: 42px; height: 44px; z-index: 2; }
.spn-badge img { width: 100%; height: 100%; object-fit: contain; }
/* right bar: CSS #e8ede3 (픽셀 분석) */
.spn-row-bar {
flex: 1; display: flex; align-items: center;
min-height: 48px; padding: 8px 16px;
background: #e8ede3; border-radius: 10px;
}
.spn-row-text {
flex: 1; font-size: 18px; font-weight: 500;
color: #11231d; line-height: 1.4;
}
.spn-row-arrow {
flex: none; width: 22px; height: 21px;
transform: rotate(180deg); object-fit: contain;
}
</style>