// DesignContent.tsx — 디자인 토큰 탭 콘텐츠 (다크/라이트 테마 지원) import type { DesignTheme } from './designTheme'; // ---------- 06 타이포그래피 스케일 데이터 ---------- interface TypoRow { size: string; sampleNode: (theme: DesignTheme) => React.ReactNode; properties: string; isData?: boolean; } // ---------- 공통 섹션 타이틀 ---------- interface SectionTitleProps { num: string; title: string; sub?: string; rightNode?: React.ReactNode; theme: DesignTheme; } const SectionTitle = ({ num, title, sub, rightNode, theme }: SectionTitleProps) => (

{num} {title}

{rightNode}
{sub && (

{sub}

)}
); // ---------- 타이포그래피 행 ---------- const TYPO_ROWS: TypoRow[] = [ { size: '9px / Meta', sampleNode: (t) => ( 메타정보 Meta info ), properties: 'Regular / 400', }, { size: '10px / Table', sampleNode: (t) => ( 테이블 데이터 Table data ), properties: 'Medium / 500', }, { size: '11px / Action', sampleNode: (t) => ( 입력/버튼 Input/Button text ), properties: 'Medium / 500', }, { size: '13px / Header', sampleNode: (t) => ( 섹션 헤더 Section Header ), properties: 'Bold / 700', }, { size: '15px / Title', sampleNode: (t) => ( 패널 타이틀 Panel Title ), properties: 'ExtraBold / 800', }, { size: 'Data / Mono', sampleNode: (t) => (
1,234.56 km² 35° 06' 12" N
), properties: 'JetBrains Mono / 11px', isData: true, }, ]; // ---------- 컴포넌트 ---------- export interface DesignContentProps { theme: DesignTheme; } export const DesignContent = ({ theme }: DesignContentProps) => { const t = theme; const isDark = t.mode === 'dark'; return (
{/* ── 헤더 섹션 ── */}

디자인 토큰

Comprehensive design token reference for the WING-OPS operational interface.

{/* 상태 뱃지 */}
System Active
{/* ── 2컬럼 그리드 ── */}
{/* ── 행 1 좌측: 01 배경색 ── */}
{t.bgTokens.map((item) => (
{/* 색상 스와치 */}
{/* 정보 */}
{item.token} {item.hex} {item.desc}
))}
{/* ── 행 1 우측: 02 테두리 색상 + 03 텍스트 색상 ── */}
{/* 02 테두리 색상 */}
{t.borderTokens.map((item) => (
{item.token} {item.hex}
))}
{/* 03 텍스트 색상 */}
{t.textTokens.map((item) => (
{item.token} {item.sampleText} {item.desc}
))}
{/* ── 행 2 좌측: 04 강조 색상 ── */}
{t.accentTokens.map((item) => (
{/* 좌측: 색상 원 + 이름/토큰 */}
{item.name} {item.token} / {item.color}
{/* 우측: 뱃지 */}
{item.badge}
))}
{/* ── 행 2 우측: 05 상태 표시기 ── */}
{t.statusTokens.map((item) => (
{item.label} {item.hex}
))}
{/* ── 행 3: 06 타이포그래피 스케일 (전체 열 span) ── */}
Noto Sans KR JetBrains Mono
} />
{/* 헤더 행 */}
{(['Size / Role', 'Sample String', 'Properties'] as const).map((col, i) => (
{col}
))}
{/* 데이터 행 */} {TYPO_ROWS.map((row) => (
{/* Size */}
{row.size}
{/* Sample */}
{row.sampleNode(t)}
{/* Properties */}
{row.properties}
))}
{/* ── 행 4: 07 테두리 곡률 (전체 열 span) ── */}
{/* radius-sm */}
{t.radiusSmLabel}
Small Elements

Applied to tactical buttons, search inputs, and micro-cards for a precise, sharp industrial feel.

{/* radius-md */}
{t.radiusMdLabel}
Structural Panels

Applied to telemetry cards, floating modals, and primary operational panels to soften high-density data.

{/* ── 푸터 ── */}
{/* 좌측 */}
{['Precision Engineering', 'Safety Compliant', 'Optimized v8.42'].map((label) => ( {label} ))}
{/* 우측 */}
Generated for Terminal: 1440x900_PR_MKT
); }; export default DesignContent;