Skip to content
leeyc blog Search
← Back to blog

Design System 5. ui

프로젝트 UI 패키지 개발

공통 컴포넌트를 제작하는 UI 패키지를 구성했습니다.

Directory 구조

Style 솔루션

Vanilla Extract를 활용했습니다.

주요 특징:

Bundling 설정

Rollup을 사용하여 번들링을 구성했습니다.

// rollup.config.js 주요 설정
const config = [
  {
    input: 'src/index.ts',
    output: [{ file: pkg.types, format: 'esm' }],
    plugins: [dts()],
  },
  {
    // ESM 포맷, 'use client' 배너 추가
    // vanilla-extract CSS는 css 디렉토리에 생성
  }
];

Post-build 스크립트로 모든 CSS 파일을 dist/css/index.css로 병합합니다.

Button 컴포넌트 예시

interface ButtonOwnProps {
  children: ReactNode;
  color?: 'primary' | 'secondary' | 'tertiary' | 'error';
  size?: 'xlarge' | 'large' | 'medium' | 'small';
  isFullWidth?: boolean;
}

Vanilla Extract로 스타일을 정의하여 타입 안전성을 확보했습니다.

참고

GitHub 저장소에서 전체 소스를 확인할 수 있습니다.


← Previous clear-install Next → PWA를 이용한 회원관리 앱만들기