Files
C.E.L_Slide_test2/templates/blocks/new/issues-paired-rows.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

136 lines
5.2 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.
<!-- 이슈 쌍 행: 좌/우 pill(두루마리 이미지) + 2열 텍스트 박스 -->
<!--
📋 issues-paired-rows
─────────────────
용도: 좌/우 대비되는 이슈를 쌍으로 나열. pill(두루마리)이 박스 위/아래로 걸침.
슬롯:
header (icon, title) — 선택
pill_bg — 두루마리 배경 이미지 (R16 프레임 배치, crop 대상이므로 이미지 유지)
rows[] (left {label, text}, right {label, text}, pills_bottom: bool)
Figma 원본: Frame 1171281194 (node 45:19, 1857×1326)
수학적 계산:
scale = 1280 / 1857 = 0.68933
pill: 458×95.6, width=24.7% of row
pill R16 이미지 프레임: left:-45.3% width:145.3% (좌), left:0 width:151.25% (우)
bottom pill: rotate(180deg) + 이미지 반전
text: 36px → 25px, lh 65px → 45px
pill label: 40px → 28px
box: border 3px #60a451, radius 30px, bg rgba(250,237,203,0.15) (MCP 확인)
divider: 1px dashed rgba(96,164,81,0.4)
CSS 요소: box border/bg/radius, divider, header gradient text
이미지 요소: pill_bg (두루마리, R16 crop), header icon
-->
<div class="block-ipr">
{% if header %}
<div class="ipr-header">
{% if header.icon %}<div class="ipr-header-icon"><img src="{{ header.icon | default('svg/icon_header.png') }}" alt=""></div>{% endif %}
<div class="ipr-header-title">{{ header.title }}</div>
</div>
{% endif %}
<div class="ipr-rows">
{% for row in rows %}
<div class="ipr-row">
{% if not row.pills_bottom %}
<div class="ipr-pills ipr-pills--top">
<div class="ipr-pill ipr-pill--left">
{% if pill_bg %}<img src="{{ pill_bg | default('svg/pill_scroll.png') }}" alt="">{% endif %}
<span class="ipr-pill-label">{{ row.left.label }}</span>
</div>
<div class="ipr-pill ipr-pill--right">
{% if pill_bg %}<img src="{{ pill_bg | default('svg/pill_scroll.png') }}" alt="">{% endif %}
<span class="ipr-pill-label">{{ row.right.label }}</span>
</div>
</div>
{% endif %}
<div class="ipr-text-row">
<div class="ipr-text">{{ row.left.text|safe }}</div>
<div class="ipr-divider"></div>
<div class="ipr-text ipr-text--right">{{ row.right.text|safe }}</div>
</div>
{% if row.pills_bottom %}
<div class="ipr-pills ipr-pills--bottom">
<div class="ipr-pill ipr-pill--left">
{% if pill_bg %}<img src="{{ pill_bg | default('svg/pill_scroll.png') }}" alt="">{% endif %}
<span class="ipr-pill-label">{{ row.left.label }}</span>
</div>
<div class="ipr-pill ipr-pill--right">
{% if pill_bg %}<img src="{{ pill_bg | default('svg/pill_scroll.png') }}" alt="">{% endif %}
<span class="ipr-pill-label">{{ row.right.label }}</span>
</div>
</div>
{% endif %}
</div>
{% endfor %}
</div>
</div>
<style>
.block-ipr {
display: flex; flex-direction: column;
width: 100%; word-break: keep-all; padding: 12px 16px;
}
/* header: MCP 확인 gradient(#cc5200→#883700) */
.ipr-header { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.ipr-header-icon { width: 28px; height: 28px; flex: none; }
.ipr-header-icon img { width: 100%; height: 100%; object-fit: contain; }
.ipr-header-title {
font-weight: 700; font-size: 32px;
background-image: linear-gradient(180deg, #cc5200 0%, #883700 100%);
-webkit-background-clip: text; background-clip: text; color: transparent;
text-shadow: 0 0 4px rgba(50,44,30,0.4);
}
.ipr-rows { display: flex; flex-direction: column; gap: 6px; }
/* box: MCP 확인 border=#60a451, radius=30px, bg=rgba(250,237,203,0.15) */
.ipr-row {
border: 2px solid #60a451; border-radius: 16px;
background: rgba(250,237,203,0.15);
display: flex; flex-direction: column;
}
/* pill 배치: 두루마리 이미지(R16 crop) */
.ipr-pills { display: flex; justify-content: space-between; }
.ipr-pills--top { margin-top: -1.8rem; }
.ipr-pills--bottom { margin-bottom: -1.8rem; }
.ipr-pill {
position: relative; width: 25%; height: 3.8rem;
overflow: hidden; flex: none;
}
/* R16: 좌pill 우측 곡선만 보임, 우pill 좌측 곡선만 보임 */
.ipr-pill--left img {
position: absolute; top: 0; height: 100%;
left: -45.3%; width: 145.3%;
}
.ipr-pill--right img {
position: absolute; top: 0; height: 100%;
left: 0; width: 151.25%;
}
/* bottom: rotate(180) + 이미지 반전 */
.ipr-pills--bottom .ipr-pill { transform: rotate(180deg); }
.ipr-pills--bottom .ipr-pill--left img { left: 0; width: 151.25%; }
.ipr-pills--bottom .ipr-pill--right img { left: -45.3%; width: 145.3%; }
.ipr-pill-label {
position: absolute; inset: 0;
display: flex; align-items: center; justify-content: center;
font-weight: 700; font-size: 20px; color: #fff;
white-space: nowrap; z-index: 2;
}
.ipr-pills--bottom .ipr-pill-label { transform: rotate(180deg); }
/* 텍스트: 2열 grid */
.ipr-text-row { display: grid; grid-template-columns: 1fr 1px 1fr; padding: 8px 12px; }
.ipr-divider { border-left: 1px dashed rgba(96,164,81,0.4); margin: 4px 0; }
.ipr-text {
font-weight: 500; font-size: 18px; line-height: 1.8;
color: #0c271e; padding: 4px 10px;
}
.ipr-text--right { text-align: right; }
</style>