기여 가이드#
프로젝트 구조#
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 컴포넌트#
packages/coui_flutter/lib/src/components/{category}/{name}.dart 생성
{Name}Theme 클래스 작성 (copyWith, mergeWith, ==, hashCode)
- Widget 작성 (styleValue(), ComponentTheme.maybeOf(context))
coui_flutter.dart barrel export 추가
ComponentThemeData에 테마 등록
Web 컴포넌트#
packages/coui_web/lib/src/components/{category}/{name}/ 디렉토리 생성
{name}.dart — UiComponent 상속
{name}_style.dart — Styling interface + Style 클래스
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 필수