style(ui): 전체 화면 폰트 크기 증가

- arena: 전투/결과/랭크 화면 폰트 조정
- front: 메인 화면 폰트 조정
- game: 게임플레이 위젯 전반 폰트 조정 (스킬, 장비, 인벤토리 등)
- hall_of_fame: 명예의 전당 폰트 조정
- new_character: 캐릭터 생성 화면 폰트 조정
- settings: 설정 화면 폰트 조정
- 전반적인 가독성 향상
This commit is contained in:
JiWoong Sul
2026-01-15 19:07:34 +09:00
parent e882093d37
commit cbf96c2c0e
43 changed files with 347 additions and 338 deletions

View File

@@ -12,9 +12,7 @@ import 'package:asciineverdie/src/features/game/widgets/combat_log.dart';
/// - 전투 이벤트 → 로그 메시지 변환
/// - 태스크 변경 시 로그 추가
class CombatLogController extends ChangeNotifier {
CombatLogController({
this.onCombatEvent,
});
CombatLogController({this.onCombatEvent});
/// 전투 이벤트 발생 시 호출되는 콜백 (SFX 재생 등에 사용)
final void Function(CombatEvent event)? onCombatEvent;
@@ -82,10 +80,7 @@ class CombatLogController extends ChangeNotifier {
/// 레벨업 로그 추가
void addLevelUpLog(int level) {
addLog(
'${game_l10n.uiLevelUp} Lv.$level',
CombatLogType.levelUp,
);
addLog('${game_l10n.uiLevelUp} Lv.$level', CombatLogType.levelUp);
}
/// 퀘스트 완료 로그 추가

View File

@@ -13,10 +13,7 @@ import 'package:asciineverdie/src/core/model/monster_grade.dart';
/// - 전투 이벤트 SFX 재생
/// - 볼륨 관리
class GameAudioController extends ChangeNotifier {
GameAudioController({
required this.audioService,
this.getSpeedMultiplier,
});
GameAudioController({required this.audioService, this.getSpeedMultiplier});
final AudioService? audioService;

View File

@@ -660,7 +660,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
L10n.of(context).progressQuestTitle(state.traits.name),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 12,
fontSize: 15,
color: RetroColors.gold,
),
),
@@ -950,7 +950,10 @@ class _GamePlayScreenState extends State<GamePlayScreen>
// Phase 8: 전투 로그 (Combat Log)
_buildPanelHeader(l10n.combatLog),
Expanded(flex: 2, child: CombatLog(entries: _combatLogController.entries)),
Expanded(
flex: 2,
child: CombatLog(entries: _combatLogController.entries),
),
],
),
);
@@ -1018,7 +1021,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
title.toUpperCase(),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
fontWeight: FontWeight.bold,
color: RetroColors.gold,
),
@@ -1033,7 +1036,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
title.toUpperCase(),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: RetroColors.textDisabled,
),
),
@@ -1113,7 +1116,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
t.$1.toUpperCase(),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: RetroColors.textDisabled,
),
),
@@ -1123,7 +1126,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
t.$2,
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: RetroColors.textLight,
),
overflow: TextOverflow.ellipsis,
@@ -1147,7 +1150,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
L10n.of(context).noSpellsYet,
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: RetroColors.textDisabled,
),
),
@@ -1188,7 +1191,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
l10n.goldAmount(state.inventory.gold),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: RetroColors.gold,
),
),
@@ -1215,7 +1218,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
l10n.gold.toUpperCase(),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: RetroColors.gold,
),
),
@@ -1224,7 +1227,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
'${state.inventory.gold}',
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: RetroColors.gold,
),
),
@@ -1247,7 +1250,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
translatedName,
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: RetroColors.textLight,
),
overflow: TextOverflow.ellipsis,
@@ -1257,7 +1260,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
'${item.count}',
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: RetroColors.cream,
),
),
@@ -1278,7 +1281,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
l10n.prologue.toUpperCase(),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: RetroColors.textDisabled,
),
),
@@ -1312,7 +1315,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
index == 0 ? l10n.prologue : l10n.actNumber(_toRoman(index)),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: isCompleted
? RetroColors.textDisabled
: (isCurrent
@@ -1341,7 +1344,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
l10n.noActiveQuests.toUpperCase(),
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: RetroColors.textDisabled,
),
),
@@ -1381,7 +1384,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
quest.caption,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: isCurrentQuest
? RetroColors.gold
: (quest.isComplete
@@ -1461,7 +1464,7 @@ class _SkillRow extends StatelessWidget {
child: Text(
skillName,
style: TextStyle(
fontSize: 11,
fontSize: 16,
color: isOnCooldown ? Colors.grey : null,
),
overflow: TextOverflow.ellipsis,
@@ -1474,7 +1477,7 @@ class _SkillRow extends StatelessWidget {
// 랭크
Text(
rank,
style: const TextStyle(fontSize: 11, fontWeight: FontWeight.bold),
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
),
],
),

View File

@@ -433,7 +433,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
'OPTIONS',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 12,
fontSize: 15,
color: gold,
),
),
@@ -581,7 +581,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
subtitle: Text(
l10n.menuDeleteSave,
style: TextStyle(
fontSize: 12,
fontSize: 17,
color: Theme.of(context).colorScheme.outline,
),
),
@@ -613,7 +613,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
'DEBUG CHEATS',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: Colors.red.shade300,
),
),
@@ -659,7 +659,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
'DEBUG TOOLS',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: Colors.orange.shade300,
),
),
@@ -698,7 +698,7 @@ class _MobileCarouselLayoutState extends State<MobileCarouselLayout> {
L10n.of(context).progressQuestTitle(state.traits.name),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 10,
fontSize: 14,
color: gold,
),
),

View File

@@ -52,7 +52,7 @@ class CharacterSheetPage extends StatelessWidget {
title,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 13,
fontSize: 18,
color: Theme.of(context).colorScheme.onPrimaryContainer,
),
),
@@ -83,14 +83,14 @@ class CharacterSheetPage extends StatelessWidget {
width: 60,
child: Text(
t.$1,
style: TextStyle(fontSize: 12, color: Colors.grey.shade600),
style: TextStyle(fontSize: 17, color: Colors.grey.shade600),
),
),
Expanded(
child: Text(
t.$2,
style: const TextStyle(
fontSize: 13,
fontSize: 18,
fontWeight: FontWeight.bold,
),
overflow: TextOverflow.ellipsis,
@@ -122,7 +122,7 @@ class CharacterSheetPage extends StatelessWidget {
const SizedBox(height: 4),
Text(
'${exp.position} / ${exp.max}',
style: TextStyle(fontSize: 10, color: Colors.grey.shade600),
style: TextStyle(fontSize: 15, color: Colors.grey.shade600),
),
],
),

View File

@@ -35,7 +35,7 @@ class CombatLogPage extends StatelessWidget {
title,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 13,
fontSize: 18,
color: Theme.of(context).colorScheme.onPrimaryContainer,
),
),

View File

@@ -53,7 +53,7 @@ class EquipmentPage extends StatelessWidget {
title,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 13,
fontSize: 18,
color: gold,
),
),

View File

@@ -60,7 +60,7 @@ class InventoryPage extends StatelessWidget {
title,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 13,
fontSize: 18,
color: Theme.of(context).colorScheme.onPrimaryContainer,
),
),
@@ -89,13 +89,13 @@ class InventoryPage extends StatelessWidget {
Expanded(
child: Text(
localizations.gold,
style: const TextStyle(fontSize: 13),
style: const TextStyle(fontSize: 18),
),
),
Text(
'${inventory.gold}',
style: const TextStyle(
fontSize: 13,
fontSize: 18,
fontWeight: FontWeight.bold,
color: Colors.amber,
),
@@ -120,14 +120,14 @@ class InventoryPage extends StatelessWidget {
Expanded(
child: Text(
translatedName,
style: const TextStyle(fontSize: 13),
style: const TextStyle(fontSize: 18),
overflow: TextOverflow.ellipsis,
),
),
Text(
'${item.count}',
style: const TextStyle(
fontSize: 12,
fontSize: 17,
fontWeight: FontWeight.bold,
),
),
@@ -157,7 +157,7 @@ class InventoryPage extends StatelessWidget {
const SizedBox(height: 4),
Text(
'$percentage%',
style: TextStyle(fontSize: 10, color: Colors.grey.shade600),
style: TextStyle(fontSize: 15, color: Colors.grey.shade600),
),
],
),

View File

@@ -39,7 +39,7 @@ class QuestPage extends StatelessWidget {
title,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 13,
fontSize: 18,
color: Theme.of(context).colorScheme.onPrimaryContainer,
),
),
@@ -53,7 +53,7 @@ class QuestPage extends StatelessWidget {
return Center(
child: Text(
localizations.noActiveQuests,
style: const TextStyle(fontSize: 13, color: Colors.grey),
style: const TextStyle(fontSize: 18, color: Colors.grey),
),
);
}
@@ -85,7 +85,7 @@ class QuestPage extends StatelessWidget {
child: Text(
entry.caption,
style: TextStyle(
fontSize: 13,
fontSize: 18,
decoration: entry.isComplete
? TextDecoration.lineThrough
: null,
@@ -126,7 +126,7 @@ class QuestPage extends StatelessWidget {
const SizedBox(height: 4),
Text(
localizations.percentComplete(percentage),
style: TextStyle(fontSize: 10, color: Colors.grey.shade600),
style: TextStyle(fontSize: 15, color: Colors.grey.shade600),
),
],
),

View File

@@ -53,7 +53,7 @@ class SkillsPage extends StatelessWidget {
title,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 13,
fontSize: 18,
color: Theme.of(context).colorScheme.onPrimaryContainer,
),
),
@@ -65,7 +65,7 @@ class SkillsPage extends StatelessWidget {
return Center(
child: Text(
L10n.of(context).noSpellsYet,
style: const TextStyle(fontSize: 12, color: Colors.grey),
style: const TextStyle(fontSize: 17, color: Colors.grey),
),
);
}
@@ -125,7 +125,7 @@ class _SkillRow extends StatelessWidget {
child: Text(
skillName,
style: TextStyle(
fontSize: 13,
fontSize: 18,
color: isOnCooldown ? Colors.grey : null,
),
overflow: TextOverflow.ellipsis,
@@ -138,7 +138,7 @@ class _SkillRow extends StatelessWidget {
// 랭크
Text(
rank,
style: const TextStyle(fontSize: 12, fontWeight: FontWeight.bold),
style: const TextStyle(fontSize: 17, fontWeight: FontWeight.bold),
),
],
),

View File

@@ -43,7 +43,7 @@ class StoryPage extends StatelessWidget {
title,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 13,
fontSize: 18,
color: Theme.of(context).colorScheme.onPrimaryContainer,
),
),
@@ -57,7 +57,7 @@ class StoryPage extends StatelessWidget {
return Center(
child: Text(
localizations.prologue,
style: const TextStyle(fontSize: 13, color: Colors.grey),
style: const TextStyle(fontSize: 18, color: Colors.grey),
),
);
}
@@ -85,7 +85,7 @@ class StoryPage extends StatelessWidget {
child: Text(
label,
style: TextStyle(
fontSize: 13,
fontSize: 18,
decoration: isCompleted ? TextDecoration.lineThrough : null,
color: isCompleted ? Colors.grey : null,
),

View File

@@ -23,7 +23,7 @@ class ActiveBuffPanel extends StatelessWidget {
child: Text(
l10n.uiNoActiveBuffs,
style: const TextStyle(
fontSize: 11,
fontSize: 16,
color: Colors.grey,
fontStyle: FontStyle.italic,
),
@@ -72,7 +72,7 @@ class _BuffRow extends StatelessWidget {
child: Text(
buff.effect.name,
style: const TextStyle(
fontSize: 11,
fontSize: 16,
fontWeight: FontWeight.w500,
color: Colors.lightBlue,
),
@@ -84,7 +84,7 @@ class _BuffRow extends StatelessWidget {
Text(
'${remainingSec}s',
style: TextStyle(
fontSize: 10,
fontSize: 15,
color: remainingMs < 3000 ? Colors.orange : Colors.grey,
fontWeight: remainingMs < 3000
? FontWeight.bold
@@ -195,7 +195,7 @@ class _ModifierChip extends StatelessWidget {
child: Text(
'$label: $sign$percent%',
style: TextStyle(
fontSize: 8,
fontSize: 14,
color: color,
fontWeight: FontWeight.w500,
),

View File

@@ -628,7 +628,8 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
final monsterCategory = getMonsterCategory(monsterName);
// 캐시된 사이즈 사용 (사망 시점에 widget.monsterSize가 null일 수 있음)
final monsterSize = _lastMonsterSize ??
final monsterSize =
_lastMonsterSize ??
widget.monsterSize ??
getMonsterSize(_lastMonsterLevel ?? widget.monsterLevel);

View File

@@ -105,7 +105,7 @@ class _NavButton extends StatelessWidget {
label,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
fontWeight: isSelected ? FontWeight.bold : FontWeight.normal,
color: color,
),

View File

@@ -133,7 +133,7 @@ class _CinematicViewState extends State<CinematicView>
l10n.translateCinematic(step.text),
style: const TextStyle(
color: Colors.white,
fontSize: 18,
fontSize: 22,
fontFamily: 'JetBrainsMono',
height: 1.5,
),
@@ -167,7 +167,7 @@ class _CinematicViewState extends State<CinematicView>
l10n.uiSkip,
style: const TextStyle(
color: Colors.white54,
fontSize: 14,
fontSize: 18,
),
),
),
@@ -182,7 +182,7 @@ class _CinematicViewState extends State<CinematicView>
l10n.uiTapToContinue,
style: TextStyle(
color: Colors.white.withValues(alpha: 0.3),
fontSize: 12,
fontSize: 17,
),
textAlign: TextAlign.center,
),
@@ -213,7 +213,7 @@ class _AsciiArtDisplay extends StatelessWidget {
asciiArt,
style: const TextStyle(
color: Colors.cyan,
fontSize: 14,
fontSize: 18,
fontFamily: 'JetBrainsMono',
height: 1.2,
),

View File

@@ -122,7 +122,7 @@ class _LogEntryTile extends StatelessWidget {
Text(
_formatTime(entry.timestamp),
style: TextStyle(
fontSize: 10,
fontSize: 15,
color: Theme.of(context).colorScheme.outline,
fontFamily: 'JetBrainsMono',
),
@@ -139,7 +139,7 @@ class _LogEntryTile extends StatelessWidget {
child: Text(
entry.message,
style: TextStyle(
fontSize: 11,
fontSize: 16,
color: color ?? Theme.of(context).colorScheme.onSurface,
),
),

View File

@@ -81,19 +81,19 @@ class DeathOverlay extends StatelessWidget {
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('', style: TextStyle(fontSize: 16, color: hpColor)),
Text('', style: TextStyle(fontSize: 20, color: hpColor)),
const SizedBox(width: 8),
Text(
'GAME OVER',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 12,
fontSize: 15,
color: hpColor,
letterSpacing: 2,
),
),
const SizedBox(width: 8),
Text('', style: TextStyle(fontSize: 16, color: hpColor)),
Text('', style: TextStyle(fontSize: 20, color: hpColor)),
],
),
),
@@ -185,7 +185,7 @@ class DeathOverlay extends StatelessWidget {
' ||||| ',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: hpColor,
height: 1.0,
),
@@ -196,7 +196,7 @@ class DeathOverlay extends StatelessWidget {
l10n.deathYouDied.toUpperCase(),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 14,
fontSize: 16,
color: hpColor,
letterSpacing: 2,
shadows: [
@@ -227,7 +227,7 @@ class DeathOverlay extends StatelessWidget {
traits.name,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 11,
fontSize: 14,
color: gold,
),
),
@@ -236,7 +236,7 @@ class DeathOverlay extends StatelessWidget {
'Lv.${deathInfo.levelAtDeath} ${GameDataL10n.getKlassName(context, traits.klass)}',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: textPrimary,
),
),
@@ -259,14 +259,14 @@ class DeathOverlay extends StatelessWidget {
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Text('', style: TextStyle(fontSize: 14, color: hpColor)),
Text('', style: TextStyle(fontSize: 18, color: hpColor)),
const SizedBox(width: 8),
Flexible(
child: Text(
causeText,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: hpColor,
),
textAlign: TextAlign.center,
@@ -305,7 +305,7 @@ class DeathOverlay extends StatelessWidget {
),
child: Row(
children: [
const Text('🔥', style: TextStyle(fontSize: 16)),
const Text('🔥', style: TextStyle(fontSize: 20)),
const SizedBox(width: 8),
Expanded(
child: Column(
@@ -315,7 +315,7 @@ class DeathOverlay extends StatelessWidget {
l10n.deathSacrificedToResurrect.toUpperCase(),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: muted,
),
),
@@ -324,7 +324,7 @@ class DeathOverlay extends StatelessWidget {
deathInfo.lostItemName!,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: hpColor,
),
),
@@ -370,13 +370,13 @@ class DeathOverlay extends StatelessWidget {
children: [
Row(
children: [
Text(asciiIcon, style: TextStyle(fontSize: 14, color: valueColor)),
Text(asciiIcon, style: TextStyle(fontSize: 18, color: valueColor)),
const SizedBox(width: 8),
Text(
label,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: muted,
),
),
@@ -386,7 +386,7 @@ class DeathOverlay extends StatelessWidget {
value,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: valueColor,
),
),
@@ -427,7 +427,7 @@ class DeathOverlay extends StatelessWidget {
Text(
'',
style: TextStyle(
fontSize: 16,
fontSize: 20,
color: expColor,
fontWeight: FontWeight.bold,
),
@@ -437,7 +437,7 @@ class DeathOverlay extends StatelessWidget {
l10n.deathResurrect.toUpperCase(),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 10,
fontSize: 14,
color: expColor,
letterSpacing: 1,
),
@@ -486,7 +486,7 @@ class DeathOverlay extends StatelessWidget {
Text(
isAutoResurrectEnabled ? '' : '',
style: TextStyle(
fontSize: 14,
fontSize: 18,
color: buttonColor,
fontWeight: FontWeight.bold,
),
@@ -496,7 +496,7 @@ class DeathOverlay extends StatelessWidget {
l10n.deathAutoResurrect.toUpperCase(),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: buttonColor,
letterSpacing: 1,
),
@@ -507,7 +507,7 @@ class DeathOverlay extends StatelessWidget {
'ON',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: mpColor,
fontWeight: FontWeight.bold,
),
@@ -531,13 +531,13 @@ class DeathOverlay extends StatelessWidget {
children: [
Row(
children: [
const Text('📜', style: TextStyle(fontSize: 12)),
const Text('📜', style: TextStyle(fontSize: 17)),
const SizedBox(width: 6),
Text(
l10n.deathCombatLog.toUpperCase(),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: gold,
),
),
@@ -572,14 +572,14 @@ class DeathOverlay extends StatelessWidget {
padding: const EdgeInsets.symmetric(vertical: 1),
child: Row(
children: [
Text(asciiIcon, style: TextStyle(fontSize: 10, color: color)),
Text(asciiIcon, style: TextStyle(fontSize: 15, color: color)),
const SizedBox(width: 4),
Expanded(
child: Text(
message,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 8,
fontSize: 14,
color: color,
),
overflow: TextOverflow.ellipsis,

View File

@@ -298,7 +298,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
children: [
// HP 바
Container(
height: 14,
height: 20,
decoration: BoxDecoration(
color: isLow
? Colors.red.withValues(alpha: 0.2)
@@ -309,12 +309,12 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
children: [
// 라벨
Container(
width: 28,
width: 32,
alignment: Alignment.center,
child: Text(
l10n.statHp,
style: const TextStyle(
fontSize: 9,
fontSize: 11,
fontWeight: FontWeight.bold,
color: Colors.white70,
),
@@ -332,17 +332,17 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
valueColor: AlwaysStoppedAnimation(
isLow ? Colors.red : Colors.red.shade600,
),
minHeight: 14,
minHeight: 20,
),
),
),
// 수치
Container(
width: 48,
width: 56,
alignment: Alignment.center,
child: Text(
'$_currentHp/$_currentHpMax',
style: const TextStyle(fontSize: 8, color: Colors.white),
style: const TextStyle(fontSize: 11, color: Colors.white),
),
),
],
@@ -361,7 +361,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
child: Text(
_hpChange > 0 ? '+$_hpChange' : '$_hpChange',
style: TextStyle(
fontSize: 11,
fontSize: 13,
fontWeight: FontWeight.bold,
color: _hpChange < 0 ? Colors.red : Colors.green,
shadows: const [
@@ -389,7 +389,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
clipBehavior: Clip.none,
children: [
Container(
height: 14,
height: 20,
decoration: BoxDecoration(
color: Colors.grey.shade800,
borderRadius: BorderRadius.circular(3),
@@ -397,12 +397,12 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
child: Row(
children: [
Container(
width: 28,
width: 32,
alignment: Alignment.center,
child: Text(
l10n.statMp,
style: const TextStyle(
fontSize: 9,
fontSize: 11,
fontWeight: FontWeight.bold,
color: Colors.white70,
),
@@ -419,16 +419,16 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
valueColor: AlwaysStoppedAnimation(
Colors.blue.shade600,
),
minHeight: 14,
minHeight: 20,
),
),
),
Container(
width: 48,
width: 56,
alignment: Alignment.center,
child: Text(
'$_currentMp/$_currentMpMax',
style: const TextStyle(fontSize: 8, color: Colors.white),
style: const TextStyle(fontSize: 11, color: Colors.white),
),
),
],
@@ -446,7 +446,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
child: Text(
_mpChange > 0 ? '+$_mpChange' : '$_mpChange',
style: TextStyle(
fontSize: 11,
fontSize: 13,
fontWeight: FontWeight.bold,
color: _mpChange < 0 ? Colors.orange : Colors.cyan,
shadows: const [
@@ -534,7 +534,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
clipBehavior: Clip.none,
children: [
Container(
height: 36,
height: 52,
decoration: BoxDecoration(
color: Colors.orange.withValues(alpha: 0.1),
borderRadius: BorderRadius.circular(4),
@@ -560,14 +560,14 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
valueColor: const AlwaysStoppedAnimation(
Colors.orange,
),
minHeight: 12,
minHeight: 16,
),
),
// HP% 중앙 오버레이
Text(
'${(ratio * 100).toInt()}%',
style: TextStyle(
fontSize: 9,
fontSize: 12,
fontWeight: FontWeight.bold,
color: Colors.white,
shadows: [
@@ -589,7 +589,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
child: Text(
'Lv.$monsterLevel $monsterName',
style: const TextStyle(
fontSize: 9,
fontSize: 12,
color: Colors.orange,
fontWeight: FontWeight.bold,
),
@@ -615,7 +615,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
? '+$_monsterHpChange'
: '$_monsterHpChange',
style: TextStyle(
fontSize: 12,
fontSize: 17,
fontWeight: FontWeight.bold,
color: _monsterHpChange < 0
? Colors.yellow
@@ -637,14 +637,14 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
/// 컨트롤 버튼 (비전투 시)
Widget _buildControlButtons() {
return SizedBox(
height: 32,
height: 40,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// 일시정지 버튼
SizedBox(
width: 36,
height: 28,
width: 40,
height: 36,
child: OutlinedButton(
onPressed: widget.onPauseToggle,
style: OutlinedButton.styleFrom(
@@ -660,7 +660,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
),
child: Icon(
widget.isPaused ? Icons.play_arrow : Icons.pause,
size: 14,
size: 18,
color: widget.isPaused ? Colors.orange : null,
),
),
@@ -668,8 +668,8 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
const SizedBox(width: 4),
// 속도 버튼
SizedBox(
width: 36,
height: 28,
width: 44,
height: 36,
child: OutlinedButton(
onPressed: widget.onSpeedCycle,
style: OutlinedButton.styleFrom(
@@ -679,7 +679,7 @@ class _EnhancedAnimationPanelState extends State<EnhancedAnimationPanel>
child: Text(
'${widget.speedMultiplier}x',
style: TextStyle(
fontSize: 10,
fontSize: 12,
fontWeight: widget.speedMultiplier > 1
? FontWeight.bold
: FontWeight.normal,

View File

@@ -102,7 +102,7 @@ class _EquipmentSlotTile extends StatelessWidget {
child: Text(
translatedName,
style: TextStyle(
fontSize: 11,
fontSize: 16,
color: rarityColor,
fontWeight: FontWeight.w500,
),
@@ -148,7 +148,7 @@ class _EmptySlotTile extends StatelessWidget {
title: Text(
'[${_getSlotName(slot)}] ${l10n.uiEmpty}',
style: TextStyle(
fontSize: 11,
fontSize: 16,
color: textMuted,
fontStyle: FontStyle.italic,
),
@@ -209,7 +209,7 @@ class _ScoreBadge extends StatelessWidget {
child: Text(
'$score',
style: TextStyle(
fontSize: 10,
fontSize: 15,
fontWeight: FontWeight.bold,
color: gold,
),
@@ -264,12 +264,12 @@ class _TotalScoreHeader extends StatelessWidget {
children: [
Text(
l10n.uiEquipmentScore,
style: TextStyle(fontSize: 10, color: textSecondary),
style: TextStyle(fontSize: 15, color: textSecondary),
),
Text(
'$totalScore',
style: TextStyle(
fontSize: 18,
fontSize: 22,
fontWeight: FontWeight.bold,
color: gold,
),
@@ -288,7 +288,7 @@ class _TotalScoreHeader extends StatelessWidget {
child: Text(
'$equippedCount / $totalSlots',
style: TextStyle(
fontSize: 11,
fontSize: 16,
fontWeight: FontWeight.w500,
color: textPrimary,
),
@@ -391,7 +391,7 @@ class _StatsGrid extends StatelessWidget {
if (entries.isEmpty) {
return Text(
l10n.uiNoBonusStats,
style: TextStyle(fontSize: 10, color: RetroColors.textMutedOf(context)),
style: TextStyle(fontSize: 15, color: RetroColors.textMutedOf(context)),
);
}
@@ -435,12 +435,12 @@ class _StatChip extends StatelessWidget {
children: [
Text(
'${entry.label}: ',
style: TextStyle(fontSize: 9, color: textMuted),
style: TextStyle(fontSize: 15, color: textMuted),
),
Text(
entry.value,
style: TextStyle(
fontSize: 9,
fontSize: 15,
fontWeight: FontWeight.bold,
color: textPrimary,
),
@@ -466,13 +466,13 @@ class _ItemMetaRow extends StatelessWidget {
children: [
Text(
l10n.uiLevel(item.level),
style: TextStyle(fontSize: 9, color: textMuted),
style: TextStyle(fontSize: 15, color: textMuted),
),
const SizedBox(width: 8),
Text(
rarityName,
style: TextStyle(
fontSize: 9,
fontSize: 15,
color: _getRarityColor(item.rarity),
fontWeight: FontWeight.bold,
),
@@ -480,7 +480,7 @@ class _ItemMetaRow extends StatelessWidget {
const SizedBox(width: 8),
Text(
l10n.uiWeight(item.weight),
style: TextStyle(fontSize: 9, color: textMuted),
style: TextStyle(fontSize: 15, color: textMuted),
),
],
);

View File

@@ -267,7 +267,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
change > 0 ? '+$change' : '$change',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
fontWeight: FontWeight.bold,
color: isDamage
? RetroColors.hpRed
@@ -310,7 +310,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
label,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
fontWeight: FontWeight.bold,
color: RetroColors.gold.withValues(alpha: blinkOpacity),
),
@@ -358,7 +358,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
'$current/$max',
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: RetroColors.textLight,
),
textAlign: TextAlign.right,
@@ -452,7 +452,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
'${(ratio * 100).toInt()}%',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: RetroColors.textLight,
shadows: [
Shadow(
@@ -471,7 +471,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
'$levelPrefix$monsterName',
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 7,
fontSize: 12,
color: RetroColors.gold,
),
overflow: TextOverflow.ellipsis,
@@ -495,7 +495,7 @@ class _HpMpBarState extends State<HpMpBar> with TickerProviderStateMixin {
: '$_monsterHpChange',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
fontWeight: FontWeight.bold,
color: _monsterHpChange < 0
? RetroColors.gold

View File

@@ -163,7 +163,7 @@ class _NotificationCard extends StatelessWidget {
asciiIcon,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: accentColor,
fontWeight: FontWeight.bold,
),
@@ -175,7 +175,7 @@ class _NotificationCard extends StatelessWidget {
_getTypeLabel(notification.type),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: accentColor,
letterSpacing: 1,
),
@@ -188,7 +188,7 @@ class _NotificationCard extends StatelessWidget {
'[X]',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: textMuted,
),
),
@@ -222,7 +222,7 @@ class _NotificationCard extends StatelessWidget {
notification.title,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: textPrimary,
),
),
@@ -232,7 +232,7 @@ class _NotificationCard extends StatelessWidget {
notification.subtitle!,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 9,
fontSize: 14,
color: textMuted,
),
),

View File

@@ -27,7 +27,7 @@ class PotionInventoryPanel extends StatelessWidget {
child: Text(
l10n.uiNoPotions,
style: const TextStyle(
fontSize: 11,
fontSize: 16,
color: Colors.grey,
fontStyle: FontStyle.italic,
),
@@ -115,7 +115,7 @@ class _PotionRow extends StatelessWidget {
child: Text(
l10n.translateSpell(potion.name),
style: TextStyle(
fontSize: 11,
fontSize: 16,
color: color,
fontWeight: FontWeight.w500,
),
@@ -137,7 +137,7 @@ class _PotionRow extends StatelessWidget {
child: Text(
'x$quantity',
style: TextStyle(
fontSize: 10,
fontSize: 15,
fontWeight: FontWeight.bold,
color: color,
),
@@ -210,7 +210,7 @@ class _HealBadge extends StatelessWidget {
),
child: Text(
healText,
style: TextStyle(fontSize: 9, color: Colors.grey.shade700),
style: TextStyle(fontSize: 15, color: Colors.grey.shade700),
),
);
}

View File

@@ -92,7 +92,7 @@ class _SkillPanelState extends State<SkillPanel>
if (skillStates.isEmpty) {
return Center(
child: Text(l10n.uiNoSkills, style: const TextStyle(fontSize: 11)),
child: Text(l10n.uiNoSkills, style: const TextStyle(fontSize: 16)),
);
}
@@ -176,7 +176,7 @@ class _SkillRow extends StatelessWidget {
child: Text(
skill.name,
style: TextStyle(
fontSize: 10,
fontSize: 15,
color: isReady
? (skill.element != null ? elementColor : Colors.white)
: Colors.grey,
@@ -195,7 +195,7 @@ class _SkillRow extends StatelessWidget {
),
child: Text(
l10n.uiDot,
style: const TextStyle(fontSize: 9, color: Colors.white70),
style: const TextStyle(fontSize: 15, color: Colors.white70),
),
),
const SizedBox(width: 4),
@@ -204,7 +204,7 @@ class _SkillRow extends StatelessWidget {
// 랭크
Text(
l10n.uiLevel(rank),
style: const TextStyle(fontSize: 9, color: Colors.grey),
style: const TextStyle(fontSize: 15, color: Colors.grey),
),
const SizedBox(width: 4),
// 쿨타임 상태
@@ -213,7 +213,7 @@ class _SkillRow extends StatelessWidget {
child: Text(
cooldownText,
style: TextStyle(
fontSize: 9,
fontSize: 15,
color: isReady ? Colors.green : Colors.orange,
fontWeight: isReady ? FontWeight.bold : FontWeight.normal,
),

View File

@@ -159,14 +159,14 @@ class _StatRow extends StatelessWidget {
Expanded(
child: Text(
label,
style: const TextStyle(fontSize: 11),
style: const TextStyle(fontSize: 16),
overflow: TextOverflow.ellipsis,
),
),
// 값
Text(
'$value',
style: const TextStyle(fontSize: 11, fontWeight: FontWeight.bold),
style: const TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
),
// 변화량 표시
if (change != null) ...[
@@ -206,7 +206,7 @@ class _ChangeIndicator extends StatelessWidget {
Text(
text,
style: TextStyle(
fontSize: 10,
fontSize: 15,
color: color,
fontWeight: FontWeight.bold,
),

View File

@@ -182,7 +182,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingHoldToSpeedUp,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 8,
fontSize: 13,
color: Colors.white.withValues(alpha: 0.3),
),
textAlign: TextAlign.center,
@@ -208,7 +208,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
'▶▶ x5',
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 10,
fontSize: 14,
color: gold,
),
),
@@ -279,7 +279,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingCongratulations,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 14,
fontSize: 16,
color: gold,
letterSpacing: 2,
),
@@ -289,7 +289,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingGameComplete,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 14,
fontSize: 18,
color: textPrimary,
),
),
@@ -374,7 +374,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
asciiArt,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 8,
fontSize: 14,
color: gold,
height: 1.0,
),
@@ -389,7 +389,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
'═══════════════════',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: gold.withValues(alpha: 0.5),
),
),
@@ -398,7 +398,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
title,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 12,
fontSize: 15,
color: gold,
letterSpacing: 2,
),
@@ -408,7 +408,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
'═══════════════════',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: gold.withValues(alpha: 0.5),
),
),
@@ -429,7 +429,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
widget.traits.name,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 16,
fontSize: 18,
color: gold,
),
),
@@ -439,7 +439,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingLevelFormat(widget.traits.level),
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 10,
fontSize: 14,
color: textPrimary,
),
),
@@ -449,7 +449,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
'${GameDataL10n.getKlassName(context, widget.traits.klass)}',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: textMuted,
),
),
@@ -511,7 +511,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
'$label: ',
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: labelColor.withValues(alpha: 0.7),
),
),
@@ -519,7 +519,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
value,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 10,
fontSize: 14,
color: valueColor,
),
),
@@ -565,7 +565,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
label,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 10,
fontSize: 15,
color: color.withValues(alpha: 0.5),
),
),
@@ -574,7 +574,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
value,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 12,
fontSize: 15,
color: color,
),
),
@@ -599,7 +599,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
trophy,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: gold,
height: 1.0,
),
@@ -619,7 +619,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.appTitle,
style: TextStyle(
fontFamily: 'PressStart2P',
fontSize: 12,
fontSize: 15,
color: gold,
),
),
@@ -628,7 +628,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingThankYou,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: textPrimary,
),
),
@@ -637,7 +637,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingLegendLivesOn,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 10,
fontSize: 15,
color: textMuted,
fontStyle: FontStyle.italic,
),
@@ -661,7 +661,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
theEnd,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 8,
fontSize: 14,
color: gold,
height: 1.0,
),
@@ -682,7 +682,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingHallOfFameLine1,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: gold.withValues(alpha: 0.7),
),
),
@@ -691,7 +691,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingHallOfFameLine2,
style: TextStyle(
fontFamily: 'JetBrainsMono',
fontSize: 12,
fontSize: 17,
color: gold.withValues(alpha: 0.7),
),
),
@@ -720,7 +720,7 @@ class _VictoryOverlayState extends State<VictoryOverlay>
l10n.endingHallOfFameButton,
style: const TextStyle(
fontFamily: 'PressStart2P',
fontSize: 10,
fontSize: 14,
),
),
],