Files
bowlingManager/docs/dark_mode_audit_checklist.md
T

5.0 KiB

Dark Mode Audit Checklist (Mobile)

본 문서는 Flutter 앱의 다크 모드 대비(가독성/명암비/아이콘 가시성)를 점검하기 위한 실기 체크리스트입니다. 점검 결과에 따라 팔레트 미세 보정 또는 위젯 레벨 스타일 수정을 권장합니다.

점검 범위

  • 화면: events_screen.dart, event_details_screen.dart, event_form_screen.dart, members_screen.dart, member_statistics_screen.dart, dashboard_screen.dart, club_settings_screen.dart
  • 공통 컴포넌트: theme/badges.dart, widgets/dialog_actions.dart, Chip/Button/Card/Input/SnackBar/Tooltip

공통 체크 항목

  • 배경/전경 색상 대비가 충분한가 (텍스트/아이콘 최소 4.5:1 권장)
  • 텍스트가 배경색과 혼동되지 않는가 (세컨더리/보조 텍스트 포함)
  • 아이콘 색이 배경과 충분히 구분되는가 (특히 회색 계열)
  • 링크/버튼/상태 배지의 의미가 색만으로 전달되지 않는가 (아이콘/레이블 병행)
  • elevation/shadow가 다크 모드에서 과도하거나 부족하지 않은가
  • 오버레이(다이얼로그/바텀시트/팝업) 배경과 콘텐츠 대비가 적절한가
  • focus/hover/pressed 상태의 컬러가 다크 모드에서도 인지 가능한가

위젯별 체크 항목

  • Buttons (Elevated/Outlined/Text)
    • foreground/background/disabled 상태 대비
    • OutlinedButton의 border 대비 (다크 테마 기준)
  • Chips/FilterChip
    • 선택/비선택 상태의 labelColor/backgroundColor 대비
  • Cards/ListTiles
    • 카드 배경/경계/섀도우 과도 여부
    • 타이틀/서브타이틀 텍스트 대비 (overflow: TextOverflow.ellipsis 유지)
  • Inputs/TextFields
    • label/hint/helper/error 컬러 대비 및 가독성
    • prefix/suffix 아이콘 대비
  • SnackBars/Tooltips
    • 텍스트/아이콘 대비, action 버튼 가독성
  • Badges (theme/badges.dart)
    • 자동 전경색 선택 로직이 다크 모드에서도 적절한가
    • 상태(활성/대기/취소/완료, 회원유형/참가상태/결제상태) 배지 대비 검증

화면별 포인트

  • EventsScreen
    • 카드 타이틀/위치 ellipsis 유지 + 대비 확인
    • 상태 배지 대비/간격/줄바꿈(Wrap) 확인
  • EventDetailsScreen
    • 기본정보 섹션 텍스트/아이콘 대비
    • 탭/탭바/콘텐츠 배경 대비
  • EventFormScreen
    • 필수/보조 텍스트 컬러 대비 (실시간 유효성 스타일 포함)
    • 공개 접근 섹션(공개 URL/비밀번호) 라벨/아이콘 대비
  • Members/Metrics/Dashboard/Settings
    • 배지/보조 텍스트/아이콘 전반 대비 확인

수행 절차(권장)

  1. iOS 시뮬레이터에서 라이트/다크 전환 후 각 화면을 순회 점검
  2. 스크린샷 취득 및 문제 구간 표시
  3. 빠른 보정은 테마의 colorScheme 튜닝 또는 BadgeStyles 전경 색상 보정으로 처리
  4. 복잡한 케이스는 위젯 로컬 스타일 적용 (ex. Theme.of(context).brightness 분기)

보정 가이드

  • Material 3 ColorScheme 다크 프리셋을 기본으로 사용
  • 배지 전경색: 배경 대비를 계산해 흰/검정 중 대비가 큰 색을 선택 (theme/badges.dart 참고)
  • 회색 글자: 다크 모드에서는 명도 차이를 더 키워 가독성 확보

결과 기록 템플릿

화면: events_screen.dart
- 카드 타이틀/서브: OK
- 상태 배지: 대기 상태 배지 전경 대비 부족 → BadgeStyles.eventStatus 대기 색상 전경색 보정 필요
- 파일 업로드 다이얼로그: OK

현장 점검 기록 (2025-09-10T07:43:19+09:00 시작)

  • 대상 화면

    • lib/screens/club/events_screen.dart
    • lib/screens/club/event_details_screen.dart
    • lib/screens/club/event_form_screen.dart
  • 초기 관찰(1차)

    • events_screen.dart
      • 카드 타이틀/서브: 대비 양호(OK)
      • 상태 배지: 일부 회색 배경의 전경 대비 약함 → BadgeStyles.eventStatus 전경색 계산 재검토 필요
      • 카드 쉐도우: 다크에서 살짝 강함 → elevation 단계 -1 검토
    • event_details_screen.dart
      • 섹션 타이틀/아이콘: 대비 양호(OK)
      • 탭바/선택 배경: 대비 양호(OK)
      • 보조 텍스트(secondary): 명도 부족 구간 존재 → Typography.secondary 톤 상향 검토
    • event_form_screen.dart
      • TextField label/hint: 대비 양호(OK)
      • prefix/suffix 아이콘: 일부 아이콘 대비 약함 → IconTheme 다크 톤 상향 검토
      • OutlinedButton border: 배경과의 대비 약함 → 테마의 outline 색상 톤 업 필요

개선 후보(누적)

  • lib/theme/badges.dart: 배지 전경 대비 계산 로직 검토(다크 모드에서 회색계 배경 대비 강화)
  • SnackBar action 텍스트 대비 확인 및 필요 시 컬러 보정
  • 보조 텍스트(secondary) 명도 상향 검토
  • OutlinedButton 다크 테마 border 색상 톤 업
  • IconTheme(다크) 기본 톤 상향으로 prefix/suffix 대비 강화
  • 카드 elevation 다크 모드 단계 -1 검토