블록 템플릿 업데이트: 수정 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>
This commit is contained in:
2026-04-13 10:58:09 +09:00
parent c42e01f060
commit 360cd8e44c
59 changed files with 2906 additions and 1391 deletions

View File

@@ -0,0 +1,104 @@
<!-- 히어로 카드 변형1: 3D 리본 배지 + N열 카드 (제목+소제목+불릿 계층) -->
<!--
📋 hero-icon-cards_1
─────────────────
용도: 핵심 요건/목표를 N열 카드로 시각화. 각 카드에 제목+소제목+불릿 계층.
슬롯: statement(선택), badge_title, cards[] (title, sections[{title, bullets[]}])
변형 원본: hero-icon-cards
변경점:
- icon/subtitle → sections[{title, bullets[]}] 계층으로 변경
- 배경 #0a0a0a 제거
- 슬라이드(1280x720) 기준 글씨 크기
수학적 계산 (답안지 PNG 기준):
상단 블록 영역: 약 280px
중제목: 16px, 소제목: 13px, 불릿: 12px
리본: 원본 비율 유지, 텍스트 14px
박스 padding-top: 36px (리본 공간)
-->
<div class="block-hic">
{% if statement %}
<div class="hic-statement">{{ statement }}</div>
{% endif %}
<div class="hic-card-area">
{% if badge_title %}
<div class="hic-ribbon">
<img src="{{ ribbon_image | default('svg/badge_solution.png') }}" class="hic-ribbon-img" alt="">
<span class="hic-ribbon-text">{{ badge_title }}</span>
</div>
{% endif %}
<div class="hic-box">
<div class="hic-cards">
{% for card in cards %}
<div class="hic-card">
<div class="hic-title">{{ card.title }}</div>
{% for section in card.sections %}
<div class="hic-sec-title">{{ section.title }}</div>
{% for bullet in section.bullets %}
<div class="hic-bullet">{{ bullet }}</div>
{% endfor %}
{% endfor %}
</div>
{% if not loop.last %}<div class="hic-sep"></div>{% endif %}
{% endfor %}
</div>
</div>
</div>
</div>
<style>
.block-hic {
display: flex; flex-direction: column; align-items: center;
width: 100%; overflow: visible;
}
.hic-statement {
text-align: center; font-size: 16px; font-weight: var(--weight-bold, 700);
color: #1e293b; line-height: 1.6; word-break: keep-all;
margin-bottom: 8px;
}
.hic-card-area { position: relative; width: 100%; margin-top: 4px; }
.hic-ribbon {
position: absolute;
top: -12px;
left: 50%; transform: translateX(-50%);
z-index: 2; width: 337px; text-align: center;
}
.hic-ribbon-img { width: 100%; height: auto; display: block; }
.hic-ribbon-text {
position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
font-size: 14px; font-weight: 700; color: #fff;
letter-spacing: 0.03em; white-space: nowrap;
text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.hic-box {
position: relative; background: #fff;
border: 6px solid #9b1b1b; border-radius: 20px;
padding: 36px 8px 10px;
}
.hic-cards { display: flex; align-items: stretch; width: 100%; }
.hic-card {
flex: 1; display: flex; flex-direction: column;
align-items: center; justify-content: flex-start; text-align: center;
padding: 8px 16px 12px; gap: 0;
}
.hic-sep { width: 1px; background: #e0e0e0; align-self: stretch; margin: 6px 0; }
.hic-title { font-size: 16px; font-weight: var(--weight-black, 900); color: #1a1a1a; line-height: 1.3; margin-bottom: 10px; }
.hic-sec-title {
font-size: 13px; font-weight: var(--weight-bold, 700); color: #1a1a1a;
line-height: 1.4; margin-top: 8px; margin-bottom: 3px; text-align: left; width: 100%;
}
.hic-sec-title:first-of-type { margin-top: 0; }
.hic-bullet {
position: relative; padding-left: 14px; text-align: left; width: 100%;
font-size: 11px; font-weight: var(--weight-medium, 500); color: #444;
line-height: 1.65; word-break: keep-all;
}
.hic-bullet::before { content: '•'; position: absolute; left: 0; color: #999; }
</style>