Skip to content

feat(dashboard): Phase 4 — visual enhancements (theme, mascot, animations) - #14

Merged
devlikebear merged 11 commits into
mainfrom
feat/dashboard-v2-phase4
Apr 18, 2026
Merged

feat(dashboard): Phase 4 — visual enhancements (theme, mascot, animations)#14
devlikebear merged 11 commits into
mainfrom
feat/dashboard-v2-phase4

Conversation

@devlikebear

Copy link
Copy Markdown
Owner

Summary

DashboardApp v2 Phase 4 (최종): 테마 시스템(다크/라이트/자동) + 마스코트 + SwiftUI 애니메이션 + 컨페티 추가. Phase 1~3과 함께 v2 마이그레이션 완료.

Design spec: docs/superpowers/specs/2026-04-17-dashboard-v2-design.md
Implementation plan: docs/superpowers/plans/2026-04-17-dashboard-v2-phase4.md

Theme System

Config

  • Go Config.Theme + Swift AppConfig.theme ("auto" | "dark" | "light")
  • config.yamltheme: 필드로 설정 가능 (기본값: auto)

ThemeManager (SwiftUI)

  • @EnvironmentObject 주입으로 전체 뷰 트리에 테마 토큰 전달
  • @Environment(\.colorScheme)으로 시스템 다크/라이트 자동 감지 (auto 모드)
  • 8개 토큰: background, surface, textPrimary/Secondary, accent, accentBreak, warning, divider

Views

  • StatusHeaderView, TimerTabView, StatsTabView, InsightsTabView, TabBarView, CircularProgressRing, DashboardAppMain 모두 테마 토큰 사용
  • DashboardButtonStyle은 explicit surface/text color parameters로 확장 (기본값은 기존 dark 모드 유지)

Mascot System

  • HelperCore.Mascot 구조체 + mascotFor(state:config:now:) 함수
  • 상태별 이모지 매핑:
    • 🐹 작업 중 (+ 휴식 5분 전 별도 메시지)
    • 😴 휴식 중 (+ 종료 1분 전 ☕ 전환)
    • 😰 2x 작업시간 초과 (휴식 건너뜀 경고)
    • 😶 일시정지
    • 🎉 일일 목표 달성 (mascotForAchievement)
  • 7개 유닛 테스트
  • StatusHeaderView에 말풍선 스타일 UI로 렌더링

Animations

  • 상태 전환 색상 morph (.animation(.easeInOut(duration: 0.5), value: vm.isWork))
  • 일시정지 전환 (.easeInOut(0.3))
  • 마스코트 이모지 바운스 (.spring(response: 0.4, dampingFraction: 0.6))
  • 탭 전환 슬라이드 (.asymmetric(insertion: .move(.trailing), removal: .move(.leading)))
  • 프로그레스 링 글로우 (.shadow(color: fillColor.opacity(0.6), radius: 4))

Confetti

  • ConfettiView (Canvas + TimelineView) — 50개 파티클, 3.5초 루프
  • 일일 목표(240분=4시간) 도달 시 1회 자동 트리거
  • lastGoalCheckMinute 가드로 중복 방지

Test plan

  • go test ./... — 전체 통과 (3 신규 config theme tests)
  • cd helpers && swift test — 72 tests 통과 (+7 Mascot, +3 Theme)
  • make build — 빌드 성공
  • 대시보드 실행 확인:
    • 마스코트 말풍선 표시 + 이모지 변경 시 스프링 애니메이션
    • 상태 전환 시 색상 morph 부드럽게
    • 탭 전환 슬라이드 애니메이션
    • 프로그레스 링 글로우
    • 시스템 다크/라이트 모드 전환 시 색상 자동 반영 (theme: auto)
    • config.yamltheme: light/dark 설정 시 시스템 무관하게 고정
  • 컨페티 트리거 (시드 테스트 가능)

Migration Complete 🎉

Phase 1 → 2 → 3 → 4 전체 머지 후 DashboardApp v2 완성:

  • SwiftUI 전면 마이그레이션 (Phase 1)
  • 탭 레이아웃 + Swift Charts (Phase 2)
  • AI Summary 연동 (Phase 3)
  • 테마/마스코트/애니메이션/컨페티 (Phase 4)

@devlikebear
devlikebear merged commit d264327 into main Apr 18, 2026
1 check passed
@devlikebear
devlikebear deleted the feat/dashboard-v2-phase4 branch April 18, 2026 03:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant