diff --git a/lib/src/core/constants/ascii_colors.dart b/lib/src/core/constants/ascii_colors.dart index 056e997..56080cc 100644 --- a/lib/src/core/constants/ascii_colors.dart +++ b/lib/src/core/constants/ascii_colors.dart @@ -1,15 +1,57 @@ import 'package:flutter/material.dart'; +import 'package:askiineverdie/src/shared/retro_colors.dart'; + /// ASCII 애니메이션 4색 팔레트 (Phase 7) /// /// 시각적 명확성을 위해 4가지 색상만 사용한다. -/// - 흰색: 오브젝트 (캐릭터, 몬스터, 아이템) -/// - 시안: 포지티브 이펙트 (힐, 버프, 레벨업, 획득) -/// - 마젠타: 네거티브 이펙트 (데미지, 디버프, 사망, 손실) -/// - 검정: 배경 +/// - 흰색/검정: 오브젝트 (캐릭터, 몬스터, 아이템) - 테마에 따라 변환 +/// - 시안/파랑: 포지티브 이펙트 (힐, 버프, 레벨업, 획득) - 테마에 따라 변환 +/// - 마젠타/빨강: 네거티브 이펙트 (데미지, 디버프, 사망, 손실) - 테마에 따라 변환 +/// - 검정/밝은색: 배경 - 테마에 따라 변환 class AsciiColors { AsciiColors._(); + // ═══════════════════════════════════════════════════════════════════════ + // 동적 색상 Getter (테마에 따라 자동 전환) + // ═══════════════════════════════════════════════════════════════════════ + + /// 오브젝트 색상 (캐릭터, 몬스터, 아이템) - 테마 인식 + static Color objectOf(BuildContext context) => + RetroColors.isDarkMode(context) ? object : _lightObject; + + /// 포지티브 이펙트 색상 - 테마 인식 + static Color positiveOf(BuildContext context) => + RetroColors.isDarkMode(context) ? positive : _lightPositive; + + /// 네거티브 이펙트 색상 - 테마 인식 + static Color negativeOf(BuildContext context) => + RetroColors.isDarkMode(context) ? negative : _lightNegative; + + /// 배경 색상 - 테마 인식 + static Color backgroundOf(BuildContext context) => + RetroColors.isDarkMode(context) ? background : _lightBackground; + + // ═══════════════════════════════════════════════════════════════════════ + // 라이트 모드 색상 (양피지/크림 기반) + // ═══════════════════════════════════════════════════════════════════════ + + /// 라이트 모드 오브젝트 색상 (어두운 갈색) + static const Color _lightObject = Color(0xFF2D1B0E); + + /// 라이트 모드 포지티브 이펙트 (진한 청록) + static const Color _lightPositive = Color(0xFF006666); + + /// 라이트 모드 네거티브 이펙트 (진한 자주) + static const Color _lightNegative = Color(0xFFAA0066); + + /// 라이트 모드 배경 (양피지 크림) + static const Color _lightBackground = Color(0xFFF5E6C8); + + // ═══════════════════════════════════════════════════════════════════════ + // 레거시 정적 색상 (다크 모드 기본값 / context 없는 곳에서 사용) + // ═══════════════════════════════════════════════════════════════════════ + /// 오브젝트 색상 (캐릭터, 몬스터, 아이템) static const Color object = Colors.white;