Getting Started

Stable

내 프로젝트에 토큰과 컴포넌트를 가져와 5분 만에 적용하는 실전 가이드입니다.

DESIGN & DEVELOPMENTUpdated Sep 2026

Overview

Getting Started는 여러분의 웹서비스나 토이 프로젝트에 Cabinet Design을 단 5분 만에 가져와 바로 사용할 수 있도록 돕는 실전 적용 가이드입니다.

Quick Adoption Guide

내 프로젝트에 바로 입히는 맞춤형 디자인 가이드

무거운 npm 라이브러리를 설치해 블랙박스 컴포넌트와 씨름할 필요가 없습니다. 토큰 CSS를 가져오고, 내 서비스의 브랜드 색상(Brand Color)을 오버라이드한 뒤, 필요한 컴포넌트 코드만 자유롭게 복사해 사용하세요.

1
토큰 CSS 파일 복사
2
내 브랜드 컬러 오버라이드
3
원하는 컴포넌트 복사 & 사용

Adoption Strategy

Cabinet Design은 소스코드를 프로젝트 내부에 직접 소유(Code Ownership)하는 모던 컴포넌트 가이드 방식을 채택했습니다.

항목기존 npm UI 패키지 방식Cabinet Design 방식
코드 제어권node_modules에 묶여 있어 내부 수정 불가능프로젝트 소스에 직접 복사하여 100% 자유롭게 수정 가능
번들 크기쓰지 않는 수십 개 컴포넌트까지 번들에 포함내가 실제로 사용하는 컴포넌트 파일만 번들에 포함 (Zero Waste)
브랜드 커스텀복잡한 ThemeProvider나 CSS-in-JS 오버라이드 필요단 몇 줄의 CSS 변수(--color-brand) 변경으로 즉시 일괄 적용
버전 의존성React 18 vs 19 등 메이저 버전 변경 시 호환성 충돌 위험표준 웹 기술(Vanilla CSS, React TSX)로 독립적 구동

Step 1. Copy Tokens

Cabinet Design의 시각적 일관성은 3개의 순수 CSS 토큰 파일에서 나옵니다. 여러분 프로젝트의 스타일 폴더(예: src/styles/tokens)에 토큰 파일을 복사합니다.

권장 폴더 구조
TSX / CSS
your-project/
├── src/
│   ├── styles/
│   │   ├── tokens/
│   │   │   ├── primitive.css    # 원시 물리값 (팔레트, 간격, 폰트)
│   │   │   ├── semantic.css     # UI 역할 토큰 (text, surface, border)
│   │   │   └── component.css    # 컴포넌트 토큰 (button, select, field)
│   │   ├── typography.css       # 타이포그래피 스케일
│   │   └── utilities.css        # 스크롤바, 스킵링크 보조 유틸
│   └── app/
│       └── globals.css          # 토큰 불러오기

globals.css (또는 엔트리 CSS) 최상단에서 토큰을 불러옵니다.

CSS
/* globals.css */
@import './styles/tokens/primitive.css';
@import './styles/tokens/semantic.css';
@import './styles/tokens/component.css';
@import './styles/typography.css';
@import './styles/utilities.css';

Step 2. Customize Theme

Cabinet Design의 모든 컴포넌트는 --color-brand 토큰을 중심으로 동작합니다. 아래 체험기에서 원하는 브랜드 색상을 클릭해 보세요. 버튼, 체크박스, 라디오, 셀렉트, 뱃지가 어떻게 실시간으로 변신하는지 직접 확인하실 수 있습니다.

INTERACTIVE THEME PREVIEW

원하는 브랜드 컬러를 선택해 보세요

현재 선택된 테마:Cabinet Olive (기본)실시간 반응 중
버튼 (Buttons)
선택 컨트롤 (Checkbox & Radio)
드롭다운 셀렉트 (Select)
뱃지 (Badges)
Brand SolidBrand LineDefaultPoint
선택한 테마를 적용하기 위한 CSS 코드:
CSS
/* globals.css 또는 theme.css 에 추가 */
:root {
  /* [라이트 모드] 고대비 브랜드 토큰 */
  --guide-brand-600: #38471d;
  --guide-brand-700: #2b3716;
  --guide-line-checked: #38471d;
  --guide-button-primary-default-bg: #38471d;
  --guide-badge-accent-solid-bg: #38471d;
}

[data-theme='dark'] {
  /* [다크 모드] 고대비 발광 브랜드 토큰 */
  --guide-brand-300: #abc284;
  --guide-line-checked: #abc284;
  --guide-line-focus: #abc284;
  --guide-text-brand: #abc284;
  --guide-button-primary-default-bg: #abc284;
  --guide-button-primary-default-text: #141c0a;
  --guide-badge-accent-solid-bg: #abc284;
  --guide-badge-accent-solid-text: #141c0a;
  --guide-badge-accent-line: #abc284;
}

Step 3. Add Components

디자인 토큰이 준비되었다면, 여러분이 필요한 컴포넌트 소스(TSX 및 CSS)를 프로젝트의 src/components/ui 폴더로 복사합니다.

예시: Button 컴포넌트 사용하기
TSX / CSS
// src/app/page.tsx
import { Button } from '@/components/ui/button';

export default function MyPage() {
  return (
    <main className="p-8 space-y-4">
      <h1>내 프로젝트 시작하기</h1>
      <div className="flex gap-2">
        <Button variant="primary" size="md">
          확인
        </Button>
        <Button variant="outline" size="md">
          취소
        </Button>
      </div>
    </main>
  );
}

각 컴포넌트의 상세 마크업과 Props 스펙은 사이드바의 Button, Select, Checkbox 등 각 컴포넌트 페이지의 Code Example 섹션에서 손쉽게 원클릭으로 복사하실 수 있습니다.

Step 4. Dark Mode Setup

Cabinet Design의 토큰 시스템은 다크 모드를 기본 지원합니다. <html> 요소에 data-theme="dark" 속성을 부여하기만 하면 모든 배경, 텍스트, 경계선, 폼 컨트롤이 1초 만에 최적의 다크 대비로 자동 반전됩니다.

HTML 속성 제어
TSX / CSS
<!-- 라이트 모드 -->
<html data-theme="light">

<!-- 다크 모드 -->
<html data-theme="dark">
간단한 테마 토글 스크립트
TSX / CSS
function toggleTheme() {
  const current = document.documentElement.getAttribute('data-theme');
  const next = current === 'dark' ? 'light' : 'dark';
  document.documentElement.setAttribute('data-theme', next);
  localStorage.setItem('theme', next);
}

Framework Tips

주요 프레임워크 환경에서 Cabinet Design을 사용할 때 참고할 수 있는 팁입니다.

Next.js App Router (React 19)Recommended

src/app/layout.tsx에서 globals.css를 임포트하고, SSR 깜빡임 방지용 테마 스크립트를 <head>에 배치하는 것을 권장합니다. 모든 컴포넌트는 Server Components 경계에서도 문제없이 동작하도록 'use client' 지시어가 안전하게 분리되어 있습니다.

Tailwind CSS v4 연동Zero Config

Tailwind v4의 @theme inline 기능을 사용하면, 별도의 tailwind.config.js 설정 없이 CSS 변수를 곧바로 유틸리티 클래스로 사용할 수 있습니다.

TSX / CSS
@theme inline {
  --color-brand: var(--color-brand);
  --color-surface: var(--guide-bg-base);
  --color-foreground: var(--guide-text-primary);
}

Next Steps

기본 적용을 마쳤다면, 세부 디자인 원칙과 각 컴포넌트의 상세 스펙을 살펴보세요.

작은 원칙이 좋은 경험을 만듭니다.맨 위로