와이어프레임에서 구현까지 — 6가지 페이지 골격을 복사하여 즉시 시작합니다.
Dashboard
사이드바 + KPI 레일 + 카드 그리드로 구성된 관리 대시보드 레이아웃입니다.
Explorer
검색 + 필터 사이드바와 상세 패널로 구성된 탐색기 레이아웃입니다.
Landing
히어로 + 마퀴 + 콘텐츠 섹션 + CTA 배너로 구성된 랜딩 페이지입니다.
List / Table
필터 바 + 정렬 가능한 데이터그리드로 구성된 목록 페이지입니다.
Detail
브레드크럼 + 이미지/정보 2단 + 관련 항목 그리드의 상세 페이지입니다.
Form
필드 라벨 + 유효성 검사 + 제출 CTA가 포함된 입력 폼 페이지입니다.
사이드바 네비게이션, KPI 레일, 카드 그리드를 포함하는 관리 대시보드 골격입니다. Dealer ERP의 업무홈 구조를 기반으로 합니다.
<div class="ch-sidebar-layout">
<aside class="ch-sidebar-layout__sidebar">
<div style="padding:var(--space-5)">
<div style="font-family:var(--mono);...">NAVIGATION</div>
<div class="ch-sidebar-nav__item is-active">Dashboard</div>
<div class="ch-sidebar-nav__item">Section 2</div>
</div>
</aside>
<main class="ch-sidebar-layout__main">
<div class="ch-section-header">DASHBOARD TITLE</div>
<div class="ch-kpi-rail ch-mt-4">
<div class="ch-kpi-rail__item">
<div class="ch-kpi-rail__value">0</div>
<div class="ch-kpi-rail__label">METRIC 1</div>
</div>
<!-- ... repeat for 2, 3, 4 -->
</div>
<div class="ch-grid ch-grid--auto ch-mt-6">
<div class="ch-card">Card 1</div>
<div class="ch-card">Card 2</div>
<div class="ch-card">Card 3</div>
</div>
</main>
</div>
| Token / Class | Value | Description |
|---|---|---|
--sidebar-width | 260px | 사이드바 너비 |
.ch-sidebar-layout | grid: sidebar + main | 사이드바 레이아웃 컨테이너 |
.ch-kpi-rail | 4-col grid | KPI 지표 레일 |
.ch-grid--auto | auto-fill, minmax(280px,1fr) | 자동 카드 그리드 |
--charcoal | #1A1A1A | 헤더 배경 |
--space-5 | 24px | 사이드바 내부 패딩 |
사이드바 숨김 (햄버거 토글). KPI 레일 2x2 그리드. 카드 1열 스택.
사이드바 축소 (아이콘만). KPI 레일 4열 유지. 카드 2열 그리드.
풀 사이드바 260px 표시. KPI 레일 4열. 카드 3열 이상 auto-fill.
검색과 필터가 있는 사이드바 + 상세 패널(탭 포함)로 구성된 탐색기 레이아웃입니다. Artists DB 페이지의 구조를 기반으로 합니다.
<div class="ch-sidebar-layout">
<aside class="ch-sidebar-layout__sidebar">
<div style="padding:var(--space-4)">
<input class="ch-input ch-input--sm" placeholder="Search...">
<div>FILTERS</div>
<button class="ch-btn ch-btn--ghost ch-btn--sm">Filter 1</button>
<div>RESULTS</div>
<div class="ch-list">
<div class="ch-list__item is-active">Item 1</div>
<div class="ch-list__item">Item 2</div>
</div>
</div>
</aside>
<main class="ch-sidebar-layout__main">
<div class="ch-tabs">
<button class="ch-tab is-active">Overview</button>
<button class="ch-tab">Details</button>
</div>
<h1>Detail Title</h1>
<div class="ch-grid ch-grid--2">
<div class="ch-card">Info Block 1</div>
<div class="ch-card">Info Block 2</div>
</div>
</main>
</div>
| Token / Class | Value | Description |
|---|---|---|
--sidebar-width | 260px | 사이드바 너비 |
.ch-tabs / .ch-tab | flex row | 상세 패널 탭 네비게이션 |
.ch-list__item | padding + hover | 사이드바 목록 항목 |
.ch-input--sm | height: 32px | 검색 입력 필드 (소형) |
.ch-grid--2 | 2-col grid | 상세 영역 2열 그리드 |
사이드바 오버레이 드로어로 전환. 상세 패널 전체 너비 표시. 탭 가로 스크롤.
사이드바 200px 축소. 상세 패널 탭 유지. 그리드 1열로 스택.
풀 사이드바 260px. 상세 패널 2열 그리드. 모든 탭 표시.
히어로 영역(100vh) + 마퀴 + 콘텐츠 섹션 + CTA 배너로 이루어진 프로모션/랜딩 페이지 골격입니다.
<div class="ch-hero-layout">
<div class="ch-container--narrow" style="text-align:center">
<h1 style="font-family:var(--serif);font-size:clamp(36px,6vw,64px);
font-weight:700;color:var(--charcoal)">Page Title</h1>
<p class="ch-text-muted ch-text-lg">Subtitle</p>
<a class="ch-btn ch-btn--primary">Get Started</a>
</div>
</div>
<div class="ch-marquee">
<div class="ch-marquee__track">Ticker content...</div>
</div>
<div class="ch-section">
<div class="ch-container">
<div class="ch-grid ch-grid--3">
<div class="ch-card">Feature 1</div>
<div class="ch-card">Feature 2</div>
<div class="ch-card">Feature 3</div>
</div>
</div>
</div>
<div class="ch-cta-banner">
<h2>Ready to start?</h2>
<a class="ch-btn ch-btn--primary">Action</a>
</div>
| Token / Class | Value | Description |
|---|---|---|
--serif | Libre Baskerville | 히어로 타이틀 폰트 |
.ch-hero-layout | min-height: 100vh, flex center | 풀스크린 히어로 래퍼 |
.ch-container--narrow | max-width: 680px | 좁은 콘텐츠 컨테이너 |
.ch-section | padding: 120px 0 | 풀 섹션 래퍼 |
.ch-grid--3 | 3-col grid | 3열 피처 그리드 |
.ch-cta-banner | dark bg, centered | CTA 배너 섹션 |
히어로 타이틀 clamp(36px). 피처 그리드 1열 스택. CTA 버튼 전체 너비.
히어로 중간 크기. 피처 그리드 2열. 마퀴 속도 유지.
히어로 타이틀 최대 64px. 피처 그리드 3열. 풀 레이아웃 표시.
필터 바 + 정렬 가능한 데이터그리드로 구성된 목록 페이지입니다. 거래 내역, 작가 목록 등 대량 데이터 표시에 적합합니다.
<div class="ch-container">
<div class="ch-section-header">LIST TITLE</div>
<div class="ch-flex ch-flex--between ch-mt-4">
<div class="ch-flex ch-flex--gap-sm">
<button class="ch-btn ch-btn--ghost ch-btn--sm">Filter 1</button>
<button class="ch-btn ch-btn--ghost ch-btn--sm">Filter 2</button>
</div>
<input class="ch-input ch-input--sm" placeholder="Search...">
</div>
<table class="ch-datagrid ch-mt-4">
<thead><tr>
<th>Column 1</th><th>Column 2</th><th>Status</th>
</tr></thead>
<tbody><tr>
<td>Data</td>
<td class="mono">Value</td>
<td><span class="ch-badge ch-badge--green">Active</span></td>
</tr></tbody>
</table>
</div>
| Token / Class | Value | Description |
|---|---|---|
.ch-datagrid | full-width table | 데이터그리드 테이블 |
--datagrid-header-bg | var(--alpha-4) | 테이블 헤더 배경 |
--datagrid-row-hover | var(--alpha-4) | 행 호버 배경 |
.ch-btn--ghost | transparent bg | 필터 버튼 스타일 |
.ch-badge--green | success colors | 상태 배지 |
.ch-flex--between | justify: space-between | 필터 바 레이아웃 |
테이블 가로 스크롤. 필터 바 세로 스택. 검색 입력 전체 너비.
테이블 주요 열 표시, 보조 열 숨김. 필터 바 가로 유지.
모든 열 표시. 필터 + 검색 한 줄 배치. 행 호버 효과 활성화.
브레드크럼 + 헤더 + 이미지/정보 2단 레이아웃 + 관련 항목 그리드로 구성된 상세 페이지입니다.
<div class="ch-container">
<nav style="font-family:var(--mono);font-size:var(--text-2xs);
color:var(--text-muted);text-transform:uppercase;
letter-spacing:0.08em;margin-bottom:var(--space-6)">
Home / Category / <span style="color:var(--text);
font-weight:600">Detail</span>
</nav>
<div class="ch-grid ch-grid--2">
<div>
<div style="aspect-ratio:4/3;background:var(--alpha-4)"></div>
</div>
<div class="ch-stack">
<h1 style="font-size:var(--text-2xl);font-weight:700;
color:var(--charcoal)">Item Title</h1>
<p class="ch-text-muted">Description text</p>
<div class="ch-flex ch-flex--gap-sm">
<button class="ch-btn ch-btn--primary">Primary</button>
<button class="ch-btn ch-btn--ghost">Secondary</button>
</div>
</div>
</div>
<div class="ch-section-header ch-mt-8">RELATED ITEMS</div>
<div class="ch-grid ch-grid--3 ch-mt-4">
<div class="ch-card">Related 1</div>
<div class="ch-card">Related 2</div>
<div class="ch-card">Related 3</div>
</div>
</div>
| Token / Class | Value | Description |
|---|---|---|
.ch-grid--2 | 2-col grid | 이미지 + 정보 2단 레이아웃 |
.ch-stack | flex-direction: column; gap | 수직 스택 정보 영역 |
--text-2xl | clamp(24px,3vw,32px) | 상세 타이틀 크기 |
.ch-btn--primary | red-brand bg | 주요 액션 버튼 |
.ch-grid--3 | 3-col grid | 관련 항목 그리드 |
--mono | TASA Orbiter | 브레드크럼 폰트 |
이미지/정보 1열 스택. 관련 항목 1열. 버튼 전체 너비.
이미지/정보 2단 유지. 관련 항목 2열. 브레드크럼 축약.
풀 2단 레이아웃. 관련 항목 3열. 모든 요소 표시.
필드 라벨, 유효성 검사, 제출 CTA가 포함된 입력 폼 페이지입니다. 좁은 컨테이너로 집중도를 높입니다.
<div class="ch-container ch-container--narrow">
<h1 style="font-size:var(--text-xl);font-weight:700;
color:var(--charcoal);margin-bottom:var(--space-8)">
Form Title
</h1>
<div class="ch-card">
<div class="ch-field">
<label class="ch-label">Field Label</label>
<input class="ch-input" placeholder="Enter value">
</div>
<div class="ch-field">
<label class="ch-label">Field Label</label>
<input class="ch-input" placeholder="Enter value">
</div>
<div class="ch-field">
<label class="ch-label">Description</label>
<textarea class="ch-input"
style="height:120px;resize:vertical"
placeholder="Enter description"></textarea>
</div>
<div class="ch-flex"
style="justify-content:flex-end;margin-top:var(--space-6)">
<button class="ch-btn ch-btn--ghost">Cancel</button>
<button class="ch-btn ch-btn--primary">Submit</button>
</div>
</div>
</div>
| Token / Class | Value | Description |
|---|---|---|
.ch-container--narrow | max-width: 680px | 좁은 폼 컨테이너 |
.ch-field | margin-bottom: var(--space-5) | 폼 필드 래퍼 |
.ch-label | mono, uppercase, 11px | 필드 라벨 |
.ch-input | height: var(--size-md-height) | 텍스트 입력 필드 |
.ch-btn--primary | red-brand bg | 제출 버튼 |
.ch-card | bg-card, border, padding | 폼 카드 래퍼 |
컨테이너 전체 너비. 버튼 전체 너비 스택. 패딩 축소.
최대 너비 제한 활성화. 버튼 우측 정렬 유지.
680px 중앙 정렬. 풀 패딩 및 여백 적용.