import 'package:flutter/material.dart'; import '../theme/tokens.dart'; /// 탭 루트 화면의 플레이스홀더. /// /// 2주차 범위는 「앱 골격 · 5탭 네비게이션 · 소셜 로그인 · 디자인시스템」이다(별첨2). /// 각 탭의 실제 화면은 3주차 이후이므로, 여기서는 어느 화면이 들어올 자리인지와 /// 다음 구현 시점을 보여 준다. 빈 화면을 두면 검수 때 무엇이 빠진 건지 알 수 없다. class TabPlaceholder extends StatelessWidget { const TabPlaceholder({ super.key, required this.tab, required this.screenId, required this.screenName, }); /// 계약 고정 탭 라벨(견적서 v2.1 5탭). final String tab; final String screenId; final String screenName; @override Widget build(BuildContext context) { final text = Theme.of(context).textTheme; return Scaffold( appBar: AppBar(title: Text(screenName)), body: SafeArea( child: Padding( padding: const EdgeInsets.all(AppSpace.s5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(tab, style: text.labelMedium), const SizedBox(height: AppSpace.s2), Text(screenName, style: text.displayMedium), const SizedBox(height: AppSpace.s4), Text(screenId, style: text.titleMedium), const SizedBox(height: AppSpace.s5), Container( padding: const EdgeInsets.all(AppSpace.s4), decoration: BoxDecoration( color: AppColors.cosmicSurfaceContainer, border: Border.all(color: AppColors.cosmicOutline), borderRadius: BorderRadius.circular(AppRadius.md), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('2주차 범위: 탭 골격까지', style: text.bodyMedium), const SizedBox(height: AppSpace.s2), Text('화면 구현은 3주차 이후', style: text.bodySmall), const SizedBox(height: AppSpace.s3), Text('승인된 화면 정의를 기준으로 구현합니다.', style: text.bodySmall), ], ), ), ], ), ), ), ); } }