// LayoutContent.tsx — WING-OPS Layout 카탈로그 (신한 UX 벤치마킹) import type { DesignTheme } from './designTheme'; // ---------- Props ---------- interface LayoutContentProps { theme: DesignTheme; } // ---------- 데이터 타입 ---------- interface WebResolution { label: string; gridLabel: string; gutter: string; margin: string; } const WEB_RESOLUTIONS: WebResolution[] = [ { label: 'WEB - 1280', gridLabel: '12 Grid (1280)', gutter: '24px', margin: '24px (px-6)' }, { label: 'WEB - 1440', gridLabel: '12 Grid (1440)', gutter: '24px', margin: '32px (px-8)' }, { label: 'WEB - 1600', gridLabel: '12 Grid (1600)', gutter: '24px', margin: '32px (px-8)' }, { label: 'WEB - 1920', gridLabel: '12 Grid (1920)', gutter: '24px', margin: '32px (px-8)' }, ]; // ---------- 컴포넌트 ---------- export const LayoutContent = ({ theme }: LayoutContentProps) => { const t = theme; const isDark = t.mode === 'dark'; const previewBg = isDark ? '#1a1f30' : '#f1f5f9'; const innerBg = isDark ? '#0a0e1a' : '#ffffff'; const colCyan = 'rgba(6,182,212,0.18)'; const gutterCyan = 'rgba(6,182,212,0.45)'; const marginCyan = 'rgba(6,182,212,0.5)'; return (
{/* ── 섹션 1: Layout grid ── */}

Layout grid

그리드 시스템은 columns, gutters, margins 세 가지 요소로 구성됩니다.

{/* 다이어그램 */}
{/* Gutters 어노테이션 상단 */}
⌐ Gutters ¬
{/* 그리드 시각화 */}
{/* Margin 좌 */}
{/* 내부 컬럼 4개 그룹 */}
{[0, 1, 2, 3].map((g) => (
))}
{/* Margin 우 */}
{/* 어노테이션 하단 레이블 */}
Margin
Columns
Gutters
{/* ── 섹션 2: 컬럼 ── */}

컬럼 (Column)

컬럼 단위를 사용해 콘텐츠의 크기를 조정합니다.

콘텐츠 영역을 동일 너비의 균일한 컬럼으로 나눠 1개 이상의 컬럼을 조합해 콘텐츠의 크기를 결정합니다.

WING-OPS는 데스크톱 전용 앱으로 12컬럼 그리드를 사용하며, 거터는 24px(gap-6)입니다.

{/* 해상도별 서브섹션 */}
{WEB_RESOLUTIONS.map((res) => (

{res.label}

해상도 {res.label.replace('WEB - ', '')}은 12컬럼 {res.gutter}거터 사용을 권장합니다.

{/* 프리뷰 박스 */}
{res.gridLabel}
{Array.from({ length: 12 }).map((_, colIdx) => (
{/* 이미지 영역 */}
{/* 텍스트 라인 3개 */}
))}
))}
{/* ── 섹션 3: 거터 ── */}

거터 (Gutters)

거터는 컬럼간의 사이 공간으로 콘텐츠 간의 간격입니다. 거터의 너비는 고정값으로 정의됩니다.

상황에 따라 화면의 너비에 비례하는 거터값을 사용할 수 있습니다.

거터값은 4의 배수를 기본으로 합니다. WING-OPS 기본 거터: 24px (gap-6)

{/* 거터 다이어그램 */}
{/* Gutters 어노테이션 */}
[ Gutters ]
{/* 3컬럼 거터 하이라이트 */}
{[0, 1, 2].map((colIdx) => (
{/* 컬럼 본체 */}
{/* 거터 (마지막 컬럼 제외) */} {colIdx < 2 && (
)}
))}
{/* 거터 레이블 */}
Gutter — 24px (gap-6)
); };