기여 가이드 #
프로젝트 구조 #
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 필수