APP-iOS3rd / PJ3T2_Mymory

멋쟁이사자처럼 iOS 앱스쿨 3기 팀 프로젝트
11 stars 3 forks source link

다크모드 적용을 위한 Color+Extension을 작업했어요. #128

Closed xohxe closed 9 months ago

xohxe commented 9 months ago

PR 가이드라인

PR Checklist

PR 날릴 때 체크 리스트

PR Type

어떤 종류의 PR인가요?

연관되는 issue 정보를 알려주세요

Issue Number: #124

PR 설명하기

먼저 다크모드를 전역적으로 관리하기 위해, Color 익스텐션에 func을 추가했어요.

어떻게 작동하나요? code 기반으로 설명해주세요

extension Color {

    // 현재 다크, 라이트모드의 컬러를 각각 적용하였습니다.
    // 추후 테마 변경시에도, 해당 코드에 조건을 추가해서 색상들을 일괄적으로 변경할 수 있습니다.
    static func adaptiveColor(light: Color, dark: Color) -> Color {
       if UITraitCollection.current.userInterfaceStyle == .dark {
           return dark
       } else {
           return light
       }
        // else if 추가조건 == { return duotone }
    }

}

그리고 아래 코드처럼 textColor, borderColor, iconColor, bgColor로 명시적으로 단어를 명명해서 모드에 따라 컬러 변환이 용이하도록 작성해보고자해요.

기존에 컬러값이 통일되지 않은 부분은 다음 PR 때 적용하겠습니다.

extension Color {

    // 색상 지정
    static let lightGray = Color(hex: "F4F4F4")
    static let darkGray = Color(hex: "5A5A5A")
    static let deepGray = Color(hex: "2E2E2E")

    // 테마에 따라 Color Change 
    static let textColor = adaptiveColor(light: Color(hex:"000000"), dark: Color(hex:"000000")) // 본문
    static let borderColor = adaptiveColor(light: .lightGray, dark: .lightGray) // 외곽선
    static let iconColor = adaptiveColor(light: .darkGray, dark: .deepGray) // 아이콘 
    static let bgColor = adaptiveColor(light: .lightGray, dark: Color(hex:"252525")) // 배경
}

스크린샷  없음x