diff --git a/lib/src/features/front/front_screen.dart b/lib/src/features/front/front_screen.dart index 08de888..20d6c78 100644 --- a/lib/src/features/front/front_screen.dart +++ b/lib/src/features/front/front_screen.dart @@ -1,3 +1,6 @@ +import 'dart:io' show Platform; + +import 'package:flutter/foundation.dart' show kIsWeb; import 'package:flutter/material.dart'; import 'package:asciineverdie/data/game_text_l10n.dart' as game_l10n; @@ -168,14 +171,23 @@ class _RetroHeader extends StatelessWidget { class _AnimationPanel extends StatelessWidget { const _AnimationPanel(); + /// 플랫폼별 비율 반환 (데스크톱: 넓게, 모바일: 높게) + double _getAspectRatio() { + if (kIsWeb) return 2.5; // 웹: 넓은 비율 + if (Platform.isMacOS || Platform.isWindows || Platform.isLinux) { + return 2.5; // 데스크톱: 넓은 비율 + } + return 16 / 9; // 모바일(iOS/Android): 16:9 + } + @override Widget build(BuildContext context) { return RetroPanel( title: 'BATTLE', padding: const EdgeInsets.all(8), - child: const AspectRatio( - aspectRatio: 16 / 9, - child: HeroVsBossAnimation(), + child: AspectRatio( + aspectRatio: _getAspectRatio(), + child: const HeroVsBossAnimation(), ), ); } diff --git a/lib/src/features/front/widgets/hero_vs_boss_animation.dart b/lib/src/features/front/widgets/hero_vs_boss_animation.dart index 9850dc8..7c76e32 100644 --- a/lib/src/features/front/widgets/hero_vs_boss_animation.dart +++ b/lib/src/features/front/widgets/hero_vs_boss_animation.dart @@ -186,12 +186,15 @@ class _HeroVsBossAnimationState extends State { ], ), child: Column( + mainAxisSize: MainAxisSize.min, children: [ - // ASCII 애니메이션 (컬러 적용) - FittedBox( - fit: BoxFit.scaleDown, - child: RichText( - text: _buildColoredTextSpan(frame), + // ASCII 애니메이션 (컬러 적용) - 남은 공간 차지 + Flexible( + child: FittedBox( + fit: BoxFit.scaleDown, + child: RichText( + text: _buildColoredTextSpan(frame), + ), ), ), const SizedBox(height: 8),