Storybook 컴포넌트 데모

실제로 동작하는 UI 컴포넌트들을 확인하세요.

💡 이 페이지는?

Storybook에서 작성한 UI 컴포넌트들을 실제 애플리케이션에서 어떻게 사용하는지 보여주는 라이브 데모입니다.

🔘 Button 컴포넌트

기본 버튼 변형

총 클릭 수: 0

크기 변형

인터랙티브 버튼 생성기

미리보기:

버튼 상태

활성화 상태

비활성화 상태

📝 코드 예제

import { Button } from '@/components/ui/Button';

// 기본 사용
<Button label="Click me" variant="primary" size="medium" />

// 이벤트 핸들러와 함께
<Button 
  label="Submit" 
  variant="primary"
  onClick={() => console.log('Clicked!')}
/>

// 비활성화 상태
<Button label="Disabled" variant="primary" disabled />

📝 Input 컴포넌트

기본 Input

입력값: (없음)

이메일 검증

💡 포커스를 벗어나면 이메일 형식을 검증합니다.

다양한 Input 타입

Input 상태

필수 입력 항목입니다.

📝 코드 예제

import { Input } from '@/components/ui/Input';
import { useState } from 'react';

const [value, setValue] = useState('');
const [error, setError] = useState('');

// 기본 사용
<Input 
  label="이름"
  placeholder="이름을 입력하세요"
  value={value}
  onChange={(e) => setValue(e.target.value)}
/>

// 검증 로직과 함께
<Input 
  type="email"
  label="이메일"
  value={value}
  onChange={(e) => setValue(e.target.value)}
  onBlur={() => {
    if (!value.includes('@')) {
      setError('올바른 이메일 형식이 아닙니다.');
    }
  }}
  error={error}
/>

🎴 Card 컴포넌트

기본 카드

이것은 기본 카드입니다. 컨텐츠를 자유롭게 배치할 수 있습니다.

Primary 카드

중요한 정보를 강조하는 파란색 배경의 카드입니다.

Success 카드

성공 메시지나 긍정적인 정보를 표시하는 녹색 카드입니다.

Warning 카드

주의가 필요한 정보를 표시하는 노란색 카드입니다.

Footer가 있는 카드

이 카드는 하단에 액션 버튼을 포함하고 있습니다.

Hoverable 카드

마우스를 올리면 hover 효과가 나타납니다. 클릭 가능한 카드에 유용합니다.

폼이 포함된 카드

복잡한 컨텐츠

A

John Doe

john@example.com

카드 안에는 어떤 복잡한 레이아웃도 넣을 수 있습니다.

ReactTypeScript

📝 코드 예제

import { Card } from '@/components/ui/Card';
import { Button } from '@/components/ui/Button';

// 기본 카드
<Card title="제목" variant="default">
  <p>카드 내용</p>
</Card>

// Footer가 있는 카드
<Card 
  title="확인 필요"
  variant="primary"
  footer={
    <div className="flex gap-2">
      <Button label="취소" variant="outline" />
      <Button label="확인" variant="primary" />
    </div>
  }
>
  <p>이 작업을 계속하시겠습니까?</p>
</Card>

// Hoverable 카드
<Card title="클릭 가능" hoverable>
  <p>이 카드는 클릭할 수 있습니다.</p>
</Card>

🔔 Alert 컴포넌트

💡

정보

새로운 기능이 추가되었습니다. 설정에서 확인하세요.

성공

데이터가 성공적으로 저장되었습니다.
⚠️

경고

이 작업은 되돌릴 수 없습니다. 신중하게 진행하세요.

오류

네트워크 연결을 확인해주세요.

제목 없는 Alert

💡
제목 없이 간단한 정보만 표시할 수 있습니다.
작업이 완료되었습니다!

커스텀 아이콘

📧

새 메시지

받은편지함에 새 메시지가 도착했습니다.
📁

업로드 완료

파일이 성공적으로 업로드되었습니다.

📝 코드 예제

import { Alert } from '@/components/ui/Alert';

// 기본 사용
<Alert variant="info" title="알림">
  메시지 내용
</Alert>

// 닫기 버튼 포함
<Alert 
  variant="success" 
  title="성공"
  closable
  onClose={() => console.log('Closed')}
>
  작업이 완료되었습니다.
</Alert>

// 커스텀 아이콘
<Alert variant="info" title="새 메시지" icon="📧">
  메일함을 확인하세요.
</Alert>

🎯 통합 예제: 연락처 폼

💡

안내

모든 필드를 정확히 입력해주세요. 영업일 기준 2-3일 이내에 답변드립니다.

문의하기

모든 필드는 필수입니다.

📚 더 많은 예제를 보고 싶으신가요?

Storybook을 실행하면 각 컴포넌트의 모든 변형과 상태를 인터랙티브하게 테스트할 수 있습니다.