feat: 글래스모피즘 디자인 시스템 및 색상 가이드 전면 적용

- @doc/color.md 가이드라인에 따른 색상 시스템 전면 개편
- 딥 블루(#2563EB), 스카이 블루(#60A5FA) 메인 컬러로 변경
- 모든 화면과 위젯에 글래스모피즘 효과 일관성 있게 적용
- darkNavy, navyGray 등 새로운 텍스트 색상 체계 도입
- 공통 스낵바 및 다이얼로그 컴포넌트 추가
- Claude AI 프로젝트 컨텍스트 파일(CLAUDE.md) 추가

영향받은 컴포넌트:
- 10개 스크린 (main, settings, detail, splash 등)
- 30개 이상 위젯 (buttons, cards, forms 등)
- 테마 시스템 (AppColors, AppTheme)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
JiWoong Sul
2025-07-11 18:41:05 +09:00
parent 83c5e3d64e
commit 2f60ef585a
46 changed files with 1096 additions and 580 deletions

View File

@@ -8,6 +8,7 @@ import 'package:url_launcher/url_launcher.dart';
import '../providers/theme_provider.dart';
import '../theme/adaptive_theme.dart';
import '../widgets/glassmorphism_card.dart';
import '../theme/app_colors.dart';
class SettingsScreen extends StatelessWidget {
const SettingsScreen({super.key});
@@ -24,13 +25,13 @@ class SettingsScreen extends StatelessWidget {
padding: const EdgeInsets.symmetric(vertical: 10),
decoration: BoxDecoration(
color: isSelected
? Theme.of(context).colorScheme.primary.withValues(alpha: 0.2)
? AppColors.primaryColor.withValues(alpha: 0.2)
: Colors.transparent,
borderRadius: BorderRadius.circular(8),
border: Border.all(
color: isSelected
? Theme.of(context).colorScheme.primary
: Theme.of(context).colorScheme.outline.withValues(alpha: 0.5),
? AppColors.primaryColor
: AppColors.textSecondary.withValues(alpha: 0.5),
width: isSelected ? 2 : 1,
),
),
@@ -43,8 +44,8 @@ class SettingsScreen extends StatelessWidget {
? Icons.radio_button_checked
: Icons.radio_button_unchecked,
color: isSelected
? Theme.of(context).colorScheme.primary
: Theme.of(context).colorScheme.outline,
? AppColors.primaryColor
: AppColors.textSecondary,
size: 24,
),
const SizedBox(height: 6),
@@ -54,8 +55,8 @@ class SettingsScreen extends StatelessWidget {
fontSize: 14,
fontWeight: isSelected ? FontWeight.bold : FontWeight.normal,
color: isSelected
? Theme.of(context).colorScheme.primary
: Theme.of(context).colorScheme.onSurface,
? AppColors.primaryColor
: AppColors.textPrimary,
),
),
],
@@ -187,8 +188,14 @@ class SettingsScreen extends StatelessWidget {
provider.setEnabled(true);
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('알림 권한이 거부되었습니다'),
SnackBar(
content: Text(
'알림 권한이 거부되었습니다',
style: TextStyle(
color: AppColors.pureWhite,
),
),
backgroundColor: AppColors.dangerColor,
),
);
}
@@ -449,7 +456,15 @@ class SettingsScreen extends StatelessWidget {
} catch (e) {
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('스토어를 열 수 없습니다')),
SnackBar(
content: Text(
'스토어를 열 수 없습니다',
style: TextStyle(
color: AppColors.pureWhite,
),
),
backgroundColor: AppColors.dangerColor,
),
);
}
}