version: '4.0' # Phase Q: min_height_px, relation_types, category, min_items, max_items # Phase R: variants[] — 블록 변형. 기존 CSS를 유지하면서 내부 구조만 변경. # variants[].id: 변형 ID (default = 기존 블록 그대로) # variants[].description: 변형 설명 # variants[].template: 변형 전용 템플릿 경로 (없으면 기존 template 사용) # variants[].when: 이 변형이 적합한 상황 blocks: # ═══════════════════════════════════════ # HEADERS (5개) — 꼭지/섹션 제목용 # ═══════════════════════════════════════ - id: section-title-with-bg name: 배경 이미지 타이틀 category: headers template: blocks/headers/section-title-with-bg.html height_cost: large min_height_px: 300 relation_types: [] visual: 전체 너비 배경 이미지(파란 그라데이션+웨이브) 위에 흰색 영문 소제목(15px) + 한글 대제목(35px). 높이 약 500px. when: '자세히보기(detail) 페이지의 맨 첫 화면 전용. 배경 이미지 위에 타이틀을 올려 페이지 주제를 시각적으로 강렬하게 선언할 때.' not_for: '일반 슬라이드 내부 소제목 → topic-left-right 또는 topic-center 사용. 배경 이미지 없이 텍스트만 → topic-center. 높이 200px 이하 → section-header-bar.' purpose_fit: [] slots: required: [title_ko] optional: [title_en, breadcrumb, bg_image] - id: section-header-bar name: 섹션 헤더 바 category: headers template: blocks/headers/section-header-bar.html height_cost: compact min_height_px: 40 relation_types: [] visual: 전체 너비 파란 배경 바(~50px) + 중앙 흰색 제목. 섹션 구분용. 컴팩트. when: '같은 페이지 안에서 주제 전환이 필요할 때. 높이 예산이 적을 때 섹션 구분.' not_for: '페이지 전체 타이틀 → section-title-with-bg. 꼭지별 소제목 → topic-left-right 또는 topic-numbered.' purpose_fit: [] slots: required: [title] optional: [subtitle] schema: title: {max_lines: 1, font_size: 18, ref_chars: {body: 25, sidebar: 20}, note: '18px bold white, 중앙정렬'} subtitle: {max_lines: 1, font_size: 13, ref_chars: {body: 40, sidebar: 30}, note: '13px, 1줄'} - id: topic-left-right name: 좌우 꼭지 헤더 category: headers template: blocks/headers/topic-left-right.html height_cost: compact min_height_px: 50 relation_types: [] visual: 좌측에 파란 굵은 제목(24px, 240px 고정) + 우측에 본문 설명(16px). 가로 2단. when: '좌측에 핵심 주장/질문, 우측에 근거/설명을 배치하는 구조. 문제 제기의 도입부로 적합. 예: "용어의 혼용" + "DX와 BIM이 혼용되고 있다..."' not_for: '중앙 정렬 대제목 → topic-center. 번호가 붙은 순서형 → topic-numbered. 섹션 전체 타이틀 → section-title-with-bg.' purpose_fit: [문제제기] slots: required: [title, description] optional: [] schema: title: {max_lines: 2, font_size: 24, ref_chars: {body: 20}, note: '24px bold, 240px 고정폭'} description: {max_lines: 2, font_size: 16, ref_chars: {body: 100}, note: '16px, 510px 너비'} - id: topic-center name: 중앙 정렬 꼭지 헤더 category: headers template: blocks/headers/topic-center.html height_cost: medium min_height_px: 60 relation_types: [] visual: 중앙 정렬 대제목(26px 굵게) + 파란 서브타이틀 + 하단 설명. 단독 강조. when: '하나의 주제를 페이지 중심에 크게 선언할 때. sidebar 영역의 섹션 라벨로도 사용 가능.' not_for: '좌:제목 우:설명 구조 → topic-left-right. 번호 순서 → topic-numbered.' purpose_fit: [] slots: required: [title] optional: [subtitle, description] schema: title: {max_lines: 1, font_size: 26, ref_chars: {body: 25, sidebar: 20}, note: '26px bold'} subtitle: {max_lines: 1, font_size: 14, ref_chars: {body: 40, sidebar: 30}, note: '14px accent'} description: {max_lines: 3, font_size: 16, ref_chars: {body: 120, sidebar: 80}, note: '16px'} - id: topic-numbered name: 번호 꼭지 헤더 category: headers template: blocks/headers/topic-numbered.html height_cost: compact min_height_px: 45 relation_types: [] visual: 파란 원형 번호(①②③) + 굵은 제목 + 파란 구분선 + 설명. 세로 배치. when: '순서가 있는 꼭지를 시작할 때. 1번, 2번, 3번 식의 단계별 섹션.' not_for: '순서 없는 꼭지 → topic-left-right 또는 topic-center. 카드 안의 순서 → card-numbered.' purpose_fit: [] slots: required: [number, title] optional: [description, color] # ═══════════════════════════════════════ # CARDS (9개) — 항목 나열/비교용 # ═══════════════════════════════════════ - id: card-image-3col name: 이미지 카드 3열 category: cards template: blocks/cards/card-image-3col.html height_cost: large min_height_px: 250 relation_types: [] min_items: 2 max_items: 3 visual: 3열 카드. 각 카드 상단에 이미지(160px) + 하단에 색상 밑줄 제목 + 불릿 목록. when: '이미지가 핵심인 항목 3개를 나란히. 예: 설계단계(3D모델) / 시공단계(현장) / 유지관리(자산).' not_for: '이미지 없이 텍스트만 → card-icon-desc. 키워드+짧은 설명만 → card-dark-overlay. 2개 비교 → compare-pill-pair.' purpose_fit: [핵심전달, 근거사례] slots: required: ['cards[]'] optional: [] - id: card-dark-overlay name: 다크 오버레이 카드 category: cards template: blocks/cards/card-dark-overlay.html height_cost: medium min_height_px: 100 relation_types: [] min_items: 3 max_items: 5 visual: 3~5열 카드. 다크 배경 이미지 + 그라데이션 오버레이 + 흰색 굵은 제목 + 짧은 설명. when: '키워드를 시각적으로 강조할 때. 짧은 설명(2줄 이내)과 함께. 예: 협업지원 / 오류감소 / 생산성향상.' not_for: '긴 설명(3줄+) → card-icon-desc. 이미지가 크게 보여야 함 → card-image-3col. 순서/단계 → process-horizontal.' purpose_fit: [핵심전달, 구조시각화] zone: full-width-only slots: required: ['cards[]'] optional: [] schema: card_title: {max_lines: 1, font_size: 18, ref_chars: {body: 15}, note: '18px bold white, 1줄'} card_description: {max_lines: 2, font_size: 12, ref_chars: {body: 30}, note: '12px white, 1~2줄'} max_cards: {body: 5, note: '카드 수'} - id: card-tag-image name: 태그 이미지 카드 category: cards template: blocks/cards/card-tag-image.html height_cost: large min_height_px: 250 relation_types: [] min_items: 2 max_items: 3 visual: 3열 카드. 좌상단 색상 태그 라벨 + 이미지 + 제목 + 설명. when: '카테고리 태그로 분류가 핵심일 때. 예: 제조업(파란) / 건축(초록) / 인프라(빨간).' not_for: '태그 불필요 → card-image-3col. 이미지 없음 → card-icon-desc.' purpose_fit: [핵심전달] slots: required: ['cards[]'] optional: [] - id: card-icon-desc name: 아이콘 설명 카드 category: cards template: blocks/cards/card-icon-desc.html height_cost: medium min_height_px: 120 relation_types: [definition] min_items: 2 max_items: 4 variants: - id: default description: 아이콘 + 제목 + 설명 (기본 그리드) - id: compact description: 아이콘 축소, 설명 2줄 제한, 패딩 축소 (높이 부족 시) template: blocks/cards/card-icon-desc--compact.html when: "컨테이너 높이가 150px 미만일 때" visual: 2~4열. 중앙 큰 이모지 아이콘(2.5rem) + 굵은 제목 + 설명. 밝은 배경. when: '독립적인 항목/개념/특성을 이모지 아이콘과 함께 나열. 순서 없는 개별 항목. 예: 🔧기술기반 / 💻S/W역량 / 🌏여건조성.' not_for: '이미지(사진) 필요 → card-image-3col. 순서 번호 필요 → card-numbered. 텍스트만(아이콘 불필요) → dark-bullet-list.' purpose_fit: [핵심전달, 근거사례, 구조시각화] zone: full-width-only slots: required: ['cards[]'] optional: [] schema: card_title: {max_lines: 1, font_size: 15, ref_chars: {body: 10}, note: '15px bold, 1줄'} card_description: {max_lines: 3, font_size: 13, ref_chars: {body: 60}, note: '13px, 3줄 이내'} max_cards: {body: 4, note: '카드 수 (3열 grid)'} - id: card-compare-3col name: 3단 비교 카드 category: cards template: blocks/cards/card-compare-3col.html height_cost: large min_height_px: 200 relation_types: [comparison] min_items: 3 max_items: 3 visual: 3열 카드. 각 카드 상단 색상 헤더(제목+서브) + 이미지 + 불릿 목록. when: '3개 카테고리를 비교할 때. 각 카테고리에 다른 색상 헤더. 예: 상용SW(회색) vs 3rd Party(파랑) vs 전문SW(빨강).' not_for: '2개 비교 → compare-pill-pair + compare-2col-split. 다항목 표 → compare-3col-badge.' purpose_fit: [핵심전달] zone: full-width-only slots: required: ['cards[]'] optional: [] schema: card_title: {max_lines: 1, font_size: 15, ref_chars: {body: 15}, note: '15px bold white, 1줄'} bullet_item: {max_lines: 1, font_size: 13, ref_chars: {body: 40}, note: '13px, 불릿 1개당'} max_bullets_per_card: {body: 5, note: '카드당 불릿 수'} - id: card-step-vertical name: 세로 단계 카드 category: cards template: blocks/cards/card-step-vertical.html height_cost: xlarge min_height_px: 250 relation_types: [sequence] min_items: 2 max_items: 4 visual: 세로 나열. 좌측 색상 마커(단계명) + 우측 콘텐츠 박스(제목+이미지+설명). 연결선. when: '생애주기/프로세스 단계별 설명. 각 단계에 이미지+상세 설명. 예: 설계→시공→운영 단계.' not_for: '가로 흐름(간단) → process-horizontal. 높이 예산 부족 → card-numbered. 독립 사례(순서 아님) → card-icon-desc.' purpose_fit: [핵심전달, 구조시각화] slots: required: ['steps[]'] optional: [] schema: step_title: {max_lines: 1, font_size: 16, ref_chars: {body: 15, sidebar: 12}, note: '16px bold'} step_description: {max_lines: 3, font_size: 14, ref_chars: {body: 60, sidebar: 40}, note: '14px, 2~3줄'} max_steps: {body: 4, sidebar: 3, note: '단계 수'} - id: card-image-round name: 원형 이미지 카드 category: cards template: blocks/cards/card-image-round.html height_cost: large min_height_px: 200 relation_types: [] min_items: 2 max_items: 3 visual: 2~3열. 원형 이미지(140px, 테두리+그림자) + 제목 + 설명. 중앙 정렬. when: '포트폴리오형 나열. 비전/가치 표현. 원형 이미지가 있는 경우.' not_for: '사각형 이미지 → card-image-3col. 이미지 없음 → card-icon-desc.' purpose_fit: [] slots: required: ['cards[]'] optional: [] - id: card-stat-number name: 통계 숫자 카드 category: cards template: blocks/cards/card-stat-number.html height_cost: medium min_height_px: 80 relation_types: [] min_items: 2 max_items: 4 visual: 2~4열. 매우 큰 숫자(36px, 색상) + 단위 + 라벨 + 설명. when: 'KPI, 성과 수치, 달성률, 비용 절감율 등 숫자가 핵심인 데이터. 예: 30% 절감 / 220명+.' not_for: '숫자가 아닌 텍스트 항목 → card-icon-desc. 비교 구조 → compare-3col-badge.' purpose_fit: [핵심전달, 근거사례] slots: required: ['stats[]'] optional: [] - id: card-numbered name: 번호 항목 카드 category: cards template: blocks/cards/card-numbered.html height_cost: medium min_height_px: 55 relation_types: [definition] min_items: 1 max_items: 5 variants: - id: default description: 번호 + 제목 + 설명 (세로 나열) - id: horizontal description: 항목을 가로 2열로 배치 (사례 비교, 같은 구조 항목 나란히) template: blocks/cards/card-numbered--horizontal.html when: "같은 구조의 항목 2-3개를 나란히 비교할 때" visual: 세로 나열. 색상 원형 번호(①②③) + 제목 + 설명. 밝은 배경 카드. when: '번호가 의미 있는 항목 나열. 순서가 있는 단계(1→2→3)이거나, 번호로 구분되는 정의 목록. sidebar 용어 정의에 적합(1.건설산업 2.BIM 3.DX). 조건/요구사항 나열.' not_for: '순서 없는 독립 항목 → card-icon-desc. 이미지 포함 단계 → card-step-vertical. 가로 흐름 → process-horizontal.' purpose_fit: [용어정의, 핵심전달] slots: required: ['items[]'] optional: [] # ═══════════════════════════════════════ # TABLES (3개) — 비교표/데이터 표 # ═══════════════════════════════════════ - id: compare-3col-badge name: VS 배지 비교표 category: tables template: blocks/tables/compare-3col-badge.html height_cost: large min_height_px: 150 relation_types: [comparison] visual: 3단 테이블. 좌(하늘색 헤더) | 중앙(파란 VS 배지) | 우(파란 헤더). 행별 비교. when: '두 개념의 다항목 비교(5행 이상). 구분 기준(중앙)을 두고 좌우로 비교. 예: BIM vs DX — S/W, 프로세스, 성과물 비교.' not_for: '시각적 대비(짧음) → compare-pill-pair. 2단 분할 → compare-2col-split. 범용 데이터 → table-simple-striped. A vs B 간단 비교(2~3행) → comparison-2col.' purpose_fit: [핵심전달] slots: required: ['headers[]', 'rows[][]'] optional: [] schema: cell: {max_lines: 2, font_size: 13, ref_chars: {body: 30, sidebar: 20}, note: '13px, 셀당 1~2줄'} max_rows: {body: 7, sidebar: 5, note: '헤더 제외 행 수'} - id: compare-2col-split name: 2단 분할 비교표 category: tables template: blocks/tables/compare-2col-split.html height_cost: large min_height_px: 150 relation_types: [comparison] visual: 파란 헤더(좌/구분/우) + 행별 좌:항목 | 중앙:기준 라벨(파란) | 우:항목. 상세 비교. when: '두 기술/개념의 항목별 상세 비교. 중앙에 비교 기준 라벨. 예: DX vs BIM — 정의/범위/역할 비교. 원본에 이미 비교표 데이터가 있을 때.' not_for: 'VS 배지 → compare-3col-badge. 범용 데이터 → table-simple-striped. 간단 A vs B(2~3항목) → comparison-2col.' purpose_fit: [핵심전달] zone: full-width-only slots: required: [left_title, right_title, 'rows[]'] optional: [] schema: cell: {max_lines: 1, font_size: 13, ref_chars: {body: 30}, note: '13px, 셀당'} max_rows: {body: 7, note: '행 수'} - id: table-simple-striped name: 범용 줄무늬 테이블 category: tables template: blocks/tables/table-simple-striped.html height_cost: medium min_height_px: 100 relation_types: [] visual: 진한 남색 헤더 + 줄무늬 행 교차. 첫 열 굵은 글씨. 범용 데이터 표. when: '비교가 아닌 일반 데이터 표. 스펙표, 일정표, 항목 목록. 예: 구분/현재/목표/비고.' not_for: 'A vs B 비교 → compare-3col-badge 또는 compare-2col-split.' purpose_fit: [핵심전달, 근거사례] slots: required: ['headers[]', 'rows[][]'] optional: [] # ═══════════════════════════════════════ # VISUALS (6개) — 시각화/다이어그램 # ═══════════════════════════════════════ - id: venn-diagram name: SVG 벤 다이어그램 category: visuals template: blocks/visuals/venn-diagram.html height_cost: xlarge min_height_px: 300 relation_types: [hierarchy, inclusion] min_items: 2 max_items: 5 visual: SVG. 진한 파란 큰 원(중심) + 3~5개 작은 원(주황/민트/골드 등). 그라데이션+글로우. 동적 N-item 지원. when: '상위-하위 포함 관계를 시각화. 기술 융합/포함 구조. 예: DX 안에 GIS/BIM/디지털트윈. relation_type=hierarchy 또는 inclusion일 때. ★ 반드시 단독 배치. 다른 블록과 같은 zone에 쌓으면 공간 부족.' not_for: '텍스트로 관계 설명 가능하면 사용 금지. sidebar(35%) 배치 금지. 높이 300px 미만 금지. 순차 흐름(A→B→C) → process-horizontal. 대등 비교 → compare-pill-pair.' purpose_fit: [핵심전달, 구조시각화] slots: required: [center_label, 'items[]'] optional: [center_sub, description] - id: circle-gradient name: 원형 라벨 category: visuals template: blocks/visuals/circle-gradient.html height_cost: compact min_height_px: 50 relation_types: [] visual: 파란 그라데이션 원(190px) + 이중 테두리 + 중앙 흰색 텍스트. when: '섹션 전환점에서 키워드를 원형으로 강조. 아래에 카드/표가 올 때 주제 선언.' not_for: '본문 텍스트 → topic-header 계열. 결론 한 줄 → banner-gradient. 단독 사용 비추.' purpose_fit: [] slots: required: [label] optional: [sub_label] schema: label: {max_lines: 1, font_size: 22, ref_chars: {body: 6, sidebar: 6}, note: '22px bold white, 원 안'} sub_label: {max_lines: 1, font_size: 12, ref_chars: {body: 15, sidebar: 12}, note: '12px, 원 아래'} - id: compare-pill-pair name: 둥근 박스 VS category: visuals template: blocks/visuals/compare-pill-pair.html height_cost: compact min_height_px: 60 relation_types: [comparison] visual: 이중 테두리 둥근 박스 2개 나란히 + 'VS'. 하늘색 테두리 + 시안 텍스트. when: '2개 개념 시각적 대비. 비교 테이블 위 헤더로 사용. 예: "DX 협업 프로세스" VS "BIM 정보 관리".' not_for: '상세 비교(5행+) → compare-3col-badge. 3개 이상 → card-compare-3col.' purpose_fit: [핵심전달] zone: full-width-only slots: required: [left_label, right_label] optional: [left_sub, right_sub] schema: left_label: {max_lines: 1, font_size: 18, ref_chars: {body: 10}, note: '18px bold, 350px 필 안'} right_label: {max_lines: 1, font_size: 18, ref_chars: {body: 10}, note: '18px bold, 350px 필 안'} - id: process-horizontal name: 가로 단계 흐름 category: visuals template: blocks/visuals/process-horizontal.html height_cost: medium min_height_px: 100 relation_types: [sequence] min_items: 2 max_items: 5 visual: 가로 방향. 파란 원형 번호 + 제목 + 설명(카드). → 화살표 연결. when: '논리적 순서가 있는 단계를 가로로. A→B→C→D 프로세스 흐름. 각 단계에 제목+설명이 필요할 때.' not_for: '독립 사례 나열(순서 없음) → card-icon-desc 또는 dark-bullet-list. 세로 나열 → card-numbered. 간결한 흐름(설명 불필요) → flow-arrow-horizontal.' purpose_fit: [핵심전달, 구조시각화] slots: required: ['steps[]'] optional: [] - id: flow-arrow-horizontal name: 가로 흐름 화살표 category: visuals template: blocks/visuals/flow-arrow-horizontal.html height_cost: compact min_height_px: 50 relation_types: [sequence] min_items: 2 max_items: 6 visual: SVG. 색상 둥근 캡슐이 가로 나열 + 사이 화살표. 컴팩트. 각 캡슐 120px 폭. when: '명확한 시간 순서 또는 인과 흐름이 있을 때만 사용. A→B→C 순서가 핵심. 예: GIS→SPCC→토공→BIM (기술 발전 순서). ★ 각 라벨은 8자 이내로 짧아야 함(120px 캡슐 안에 들어가야 함).' not_for: '독립 사례/증거 나열(순서 없음) → dark-bullet-list 또는 card-icon-desc. 정책 문서 나열 → dark-bullet-list. 각 단계에 설명 필요 → process-horizontal. 라벨이 길면(8자 초과) → process-horizontal 또는 card-numbered.' purpose_fit: [구조시각화] zone: full-width-only slots: required: ['steps[]'] optional: [] schema: step_label: {max_lines: 1, font_size: 13, ref_chars: {body: 8}, note: '13px bold, 120px 캡슐 안. 8자 이내 필수.'} max_steps: {body: 6, note: '단계 수'} - id: keyword-circle-row name: 키워드 원형 행 category: visuals template: blocks/visuals/keyword-circle-row.html height_cost: medium min_height_px: 120 relation_types: [hierarchy] min_items: 2 max_items: 5 visual: SVG 그라데이션 원 안에 큰 글자(G,S,I,M 등 약어) + 아래 라벨 + 설명. when: '약어 풀이. 핵심 키워드를 원형으로 시각 강조. 예: G(Geographic) + S(Structure) + I(Information) + M(Model).' not_for: '아이콘+설명 → card-icon-desc. 용어 정의(문장형) → card-numbered. 약어가 아닌 일반 텍스트 → 사용 금지.' purpose_fit: [구조시각화] slots: required: ['keywords[]'] optional: [] schema: letter: {max_lines: 1, font_size: 14, ref_chars: {body: 2, sidebar: 2}, note: '약어 1~2글자'} label: {max_lines: 1, font_size: 14, ref_chars: {body: 10, sidebar: 8}, note: '14px bold, 1줄'} description: {max_lines: 2, font_size: 12, ref_chars: {body: 25, sidebar: 20}, note: '12px, 140px 폭, 2줄'} max_keywords: {body: 5, sidebar: 3, note: '키워드 수'} # ═══════════════════════════════════════ # EMPHASIS (10개) — 강조/인용/결론 # ═══════════════════════════════════════ - id: quote-big-mark name: 큰따옴표 인용 category: emphasis template: blocks/emphasis/quote-big-mark.html height_cost: medium min_height_px: 80 relation_types: [] visual: 좌상단 ❝ + 우하단 ❞ 큰따옴표 장식. 연한 배경 박스 + 인용문 + 우측 출처. when: '임팩트 있는 인용문. 문제 제기를 인용 형태로 강조. 출처가 있는 인용.' not_for: '짧은 질문(1~2줄) → quote-question. 결론 한 줄 강조 → banner-gradient. 불릿 나열 → dark-bullet-list.' purpose_fit: [문제제기, 근거사례] slots: required: [quote_text] optional: [source] schema: quote_text: {max_lines: 3, font_size: 16, ref_chars: {body: 120, sidebar: 70}, note: '16px, 큰따옴표 장식 안, 3줄 이내'} source: {max_lines: 1, font_size: 14, ref_chars: {body: 30, sidebar: 20}, note: 'caption, 1줄'} - id: quote-question name: 질문형 강조 category: emphasis template: blocks/emphasis/quote-question.html height_cost: medium min_height_px: 80 relation_types: [] visual: 밝은 파란 배경 + 파란 테두리 + 큰 질문 텍스트(22px) + 부연 설명. when: '독자에게 질문을 던져 문제 인식을 유도. 전환점. 예: "지금의 방식으로도 가능할까?"' not_for: '인용(출처 있음) → quote-big-mark. 결론 선언 → banner-gradient. 경고/문제 → callout-warning.' purpose_fit: [문제제기] slots: required: [question] optional: [description] schema: question: {max_lines: 1, font_size: 22, ref_chars: {body: 35, sidebar: 25}, note: '22px bold, 1줄 권장'} description: {max_lines: 3, font_size: 14, ref_chars: {body: 120, sidebar: 80}, note: '14px, 3줄 이내'} - id: comparison-2col name: 2단 병렬 비교 category: emphasis template: blocks/emphasis/comparison-2col.html height_cost: medium min_height_px: 80 relation_types: [comparison] variants: - id: default description: 좌우 2단 텍스트 비교 (기본) - id: cards-in-container description: 큰 박스 안에 카드 N개 (포함 관계 시각화, DX⊃BIM) template: blocks/emphasis/comparison-2col--cards-in-container.html when: "hierarchy/inclusion — A 안에 B,C,D가 포함됨을 보여줄 때. 포함 관계 시각화" visual: 좌우 2단. 좌 파란 헤더(밑줄) + 우 빨간 헤더(밑줄). 중앙 구분선. 서브타이틀+본문. when: 'A vs B 간단 비교. 2~3개 항목을 좌우로 대비. 장단점, Before/After 등 대비 구조. 예: BIM(하위기술) vs DX(상위개념).' not_for: '다항목 표(5행+) → compare-3col-badge. 결론 한 줄 강조 → banner-gradient. 핵심 메시지 선언 → banner-gradient. footer에서 결론 강조용으로 쓰지 마라.' purpose_fit: [핵심전달] slots: required: [left_title, left_content, right_title, right_content] optional: [left_subtitle, right_subtitle] - id: banner-gradient name: 그라데이션 배너 category: emphasis template: blocks/emphasis/banner-gradient.html height_cost: compact min_height_px: 40 relation_types: [] visual: 전체 너비 파란 그라데이션 배경(둥근 모서리 8px) + 중앙 흰색 굵은 텍스트(16px) + 선택적 서브텍스트. when: '★ 결론 강조에 가장 적합. 핵심 메시지 한 줄 선언. footer 배치에 최적(compact, 50~60px). 페이지의 "기억해야 할 단 하나의 문장". 예: "BIM은 DX의 기초가 되는 일부분이다. DX ≠ BIM"' not_for: '인용(출처) → quote-big-mark. 긴 설명(3줄+) → callout-solution. A vs B 비교 → comparison-2col.' purpose_fit: [결론강조] slots: required: [text] optional: [sub_text] schema: text: {max_lines: 1, font_size: 16, ref_chars: {body: 38, sidebar: 18}, note: '16px bold white, 1줄'} sub_text: {max_lines: 1, font_size: 12, ref_chars: {body: 50, sidebar: 30}, note: '12px, 1줄'} - id: dark-bullet-list name: 다크 배경 불릿 category: emphasis template: blocks/emphasis/dark-bullet-list.html height_cost: medium min_height_px: 80 relation_types: [cause_effect] min_items: 2 max_items: 5 variants: - id: default description: 다크 배경 + 불릿 나열 (기본) - id: before-after description: Before→After 2열 구조 (프로세스 변화, 전환) template: blocks/emphasis/dark-bullet-list--before-after.html when: "기존 방식 → 새 방식으로의 전환/변화를 보여줄 때. 각 항목이 before/after 쌍일 때" visual: 짙은 남색 배경 + 파란 제목 + 흰 텍스트 불릿. 파란 불릿 마커. 시각적 무게감. when: '★ 독립적인 사례/증거/포인트를 나열할 때 적합. 순서 없는 항목을 강조하며 나열. 정책 문서 사례, 근거 자료 나열.' not_for: '밝은 배경 → card-icon-desc 또는 card-numbered. 순서가 있는 단계 → card-numbered 또는 process-horizontal. 시각화(다이어그램) → venn-diagram.' purpose_fit: [근거사례, 문제제기, 핵심전달] slots: required: ['bullets[]'] optional: [title] schema: title: {max_lines: 1, font_size: 16, ref_chars: {body: 30, sidebar: 20}, note: '16px bold, 1줄'} bullet_item: {max_lines: 1, font_size: 14, ref_chars: {body: 86, sidebar: 41}, note: '14px, 1불릿 기준'} max_bullets: {body: 5, sidebar: 4, note: '불릿 수'} - id: highlight-strip name: 강조 분류 스트립 category: emphasis template: blocks/emphasis/highlight-strip.html height_cost: compact min_height_px: 35 relation_types: [] visual: 가로 색상 구간들. 각 구간에 흰 라벨. 카테고리 색상 분류 바. when: '카테고리별 색상 분류를 한 줄로. 예: 상용(회색) | 3rd Party(파랑) | 전문SW(빨강).' not_for: '탭 전환 → tab-label-row. 결론 강조 → banner-gradient. 독립 항목 나열 → dark-bullet-list.' purpose_fit: [구조시각화] slots: required: ['segments[]'] optional: [] schema: label: {max_lines: 1, font_size: 14, ref_chars: {body: 15, sidebar: 10}, note: '14px bold white, nowrap, 세그먼트당'} max_segments: {body: 4, sidebar: 3, note: '세그먼트 수'} - id: callout-solution name: 솔루션 콜아웃 category: emphasis template: blocks/emphasis/callout-solution.html height_cost: medium min_height_px: 80 relation_types: [cause_effect] visual: 밝은 파란 배경 + 파란 테두리 + 아이콘 + 파란 제목 + 설명 + 출처. when: '핵심 해결책, 솔루션, 방향성을 강조. 예: "💡 Solution 제시 포인트".' not_for: '경고/문제 → callout-warning. 인용 → quote-big-mark. 결론 한 줄 → banner-gradient.' purpose_fit: [핵심전달] slots: required: [title, description] optional: [icon, source] schema: title: {max_lines: 1, font_size: 17, ref_chars: {body: 40, sidebar: 25}, note: '17px bold, 1줄'} description: {max_lines: 4, font_size: 14, ref_chars: {body: 150, sidebar: 90}, note: '14px, 3~4줄'} - id: callout-warning name: 경고 콜아웃 category: emphasis template: blocks/emphasis/callout-warning.html height_cost: medium min_height_px: 80 relation_types: [cause_effect] visual: 연한 빨간 배경 + 빨간 테두리 + 아이콘 + 빨간 제목 + 진한 빨간 설명. when: '문제점 지적, 잘못된 인식 경고, 주의사항. 문제 제기 purpose에 적합. 예: "⚠️ 현재 접근 방식의 한계".' not_for: '해결책 → callout-solution. 인용 → quote-big-mark. 결론 → banner-gradient.' purpose_fit: [문제제기] slots: required: [title, description] optional: [icon] - id: tab-label-row name: 탭 라벨 행 category: emphasis template: blocks/emphasis/tab-label-row.html height_cost: compact min_height_px: 35 relation_types: [] visual: 가로 탭 버튼. 선택됨=색상 배경+흰 텍스트, 나머지=회색. 밝은 바탕. when: '카테고리 전환/분류 표시. 현재 선택된 항목 강조. 예: 제조 | 건축 | [인프라/토목].' not_for: '색상 바 → highlight-strip. 실제 클릭 전환 미지원.' purpose_fit: [] slots: required: ['tabs[]'] optional: [] schema: tab_label: {max_lines: 1, font_size: 14, ref_chars: {body: 10, sidebar: 8}, note: '14px bold, 탭당'} max_tabs: {body: 5, sidebar: 3, note: '탭 수'} - id: divider-text name: 텍스트 구분선 category: emphasis template: blocks/emphasis/divider-text.html height_cost: compact min_height_px: 25 relation_types: [] visual: 좌우 가는 회색 선 + 중앙 작은 회색 텍스트(13px bold). 시각적 휴식점. when: 'sidebar 영역의 섹션 라벨. 주제 전환점에 가벼운 구분. 예: ── 용어 정의 ──' not_for: '강한 구분 → section-header-bar. 결론 → banner-gradient. body 영역 메인 제목 → topic 계열.' purpose_fit: [] slots: required: [text] optional: [] # ═══════════════════════════════════════ # MEDIA (5개) — 이미지/사진 # ═══════════════════════════════════════ - id: image-row-2col name: 이미지 2열 category: media template: blocks/media/image-row-2col.html height_cost: large min_height_px: 200 relation_types: [] visual: 이미지 2장 나란히. 각 캡션 선택. when: '시공 사진 2장 나란히, 현장 비교.' not_for: '4장 → image-grid-2x2. 이미지+텍스트 → image-side-text. 1장 → image-full-caption.' purpose_fit: [근거사례] slots: required: ['images[]'] optional: [] - id: image-grid-2x2 name: 이미지 2x2 그리드 category: media template: blocks/media/image-grid-2x2.html height_cost: large min_height_px: 350 relation_types: [] visual: 이미지 4장 2x2 격자. 각 캡션 선택. when: '현장 사진 4장, 4개 관점 이미지.' not_for: '2장 → image-row-2col. 이미지+텍스트 → image-side-text.' purpose_fit: [근거사례] slots: required: ['images[]'] optional: [] - id: image-side-text name: 이미지+텍스트 가로 category: media template: blocks/media/image-side-text.html height_cost: medium min_height_px: 150 relation_types: [] visual: 좌측 이미지(320px 고정) + 우측 제목+설명+불릿. 가로 배치. when: '이미지에 대한 설명. 제품/시스템 소개. 다이어그램+해설.' not_for: '이미지만 → image-row-2col. 여러 장 → image-grid-2x2.' purpose_fit: [핵심전달, 근거사례] slots: required: [image_src] optional: [image_alt, title, description, bullets] - id: image-full-caption name: 전체 너비 이미지 category: media template: blocks/media/image-full-caption.html height_cost: large min_height_px: 200 relation_types: [] visual: 전체 너비 이미지 1장(둥근 모서리) + 하단 캡션. when: '핵심 도표, 대형 다이어그램, 전경 사진을 크게.' not_for: '2장+ → image-row-2col/image-grid-2x2. 이미지+텍스트 → image-side-text.' purpose_fit: [핵심전달] slots: required: [src] optional: [alt, caption] - id: image-before-after name: Before/After 이미지 category: media template: blocks/media/image-before-after.html height_cost: large min_height_px: 200 relation_types: [comparison] visual: 좌 Before(회색 라벨) + → 화살표(파란) + 우 After(파란 라벨). 각 이미지 180px. when: '변화 전후 비교. 디지털 전환 전후, 공정 개선 전후.' not_for: '이미지 단순 나열 → image-row-2col. 텍스트 비교 → comparison-2col.' purpose_fit: [핵심전달, 근거사례] slots: required: [before_src, after_src] optional: [before_label, after_label, caption] # ═══════════════════════════════════════ # LAYOUTS — 프리셋 레이아웃 # ═══════════════════════════════════════ layouts: - id: 65-35 name: 6.5:3.5 좌우 분할 grid_columns: 6.5fr 3.5fr when: 좌측 메인 + 우측 보조 - id: 50-50 name: 5:5 균등 분할 grid_columns: 1fr 1fr when: 대등한 비교 - id: single name: 단일 컬럼 grid_columns: 1fr when: 순차 구조 - id: 35-65 name: 3.5:6.5 좌우 분할 grid_columns: 3.5fr 6.5fr when: 좌측 보조 + 우측 메인