LogoCoUI

기여 가이드

CoUI 기여 방법

기여 가이드#

프로젝트 구조#

coui/
├── packages/
│   ├── coui_core/          # 공유 계약 및 유틸리티
│   ├── coui_flutter/       # Flutter 위젯 구현
│   └── coui_web/           # Jaspr Web 컴포넌트 구현
├── docs_site/              # 문서 사이트 (이 사이트)
└── pubspec.yaml            # 루트 pubspec

개발 환경 설정#

# 레포 클론
git clone https://github.com/coco-de/coui.git
cd coui

# 의존성 설치
dart pub get
cd packages/coui_flutter && flutter pub get && cd ../..
cd packages/coui_web && dart pub get && cd ../..

# 문서 사이트 로컬 실행
cd docs_site
dart pub get
jaspr serve

컴포넌트 추가 규칙#

Flutter 컴포넌트#

  1. packages/coui_flutter/lib/src/components/{category}/{name}.dart 생성
  2. {Name}Theme 클래스 작성 (copyWith, mergeWith, ==, hashCode)
  3. Widget 작성 (styleValue(), ComponentTheme.maybeOf(context))
  4. coui_flutter.dart barrel export 추가
  5. ComponentThemeData에 테마 등록

Web 컴포넌트#

  1. packages/coui_web/lib/src/components/{category}/{name}/ 디렉토리 생성
  2. {name}.dart — UiComponent 상속
  3. {name}_style.dart — Styling interface + Style 클래스
  4. coui_web.dart barrel export 추가

코드 품질#

# DCM 분석
dcm analyze packages/coui_flutter/lib --reporter=console
dcm analyze packages/coui_web/lib --reporter=console

# Dart 분석
dart analyze packages/coui_flutter
dart analyze packages/coui_web

PR 규칙#

  • 브랜치: feat/{component-name}, fix/{description}
  • 커밋: Conventional Commits (feat:, fix:, chore:)
  • 리뷰: DCM 0 issues, Dart analyzer 0 issues 필수