import { TrkSectionHeader, Trk } from '../lib/Trk'; import { Button } from '@shared/components/ui/button'; import { BUTTON_VARIANT_META, BUTTON_VARIANT_ORDER, BUTTON_SIZE_ORDER, } from '@lib/theme/variantMeta'; import { Plus, Download, Trash2, Search, Save } from 'lucide-react'; export function ButtonSection() { return ( <> {/* 매트릭스 */}

변형 매트릭스

{BUTTON_SIZE_ORDER.map((size) => ( ))} {BUTTON_VARIANT_ORDER.map((variant) => ( {BUTTON_SIZE_ORDER.map((size) => ( ))} ))}
variant ↓ / size → {size}
{variant}
{/* 아이콘 버튼 */}

아이콘 포함 패턴

{/* 상태 */}

상태

{/* variant 의미 가이드 (variantMeta에서 자동 열거) */}

Variant 의미 가이드

{BUTTON_VARIANT_ORDER.map((variant) => { const meta = BUTTON_VARIANT_META[variant]; return (
{meta.description}
); })}
{/* 사용 예시 */}

사용 예시

{`import { Button } from '@shared/components/ui/button'; import { Plus } from 'lucide-react'; // 금지 // ❌