diff --git a/PRD.md b/PRD.md index 3558b0c..cf774d3 100644 --- a/PRD.md +++ b/PRD.md @@ -19,7 +19,7 @@ TheNoiseClock is a SwiftUI-based iOS application that combines a customizable di - **Individual digit views** with consistent spacing and alignment - **Font customization** with family, weight, and design selection - **Dynamic dot sizing** that matches selected font weight -- **Safe area handling** with proper Dynamic Island avoidance +- **Safe area handling** with proper Dynamic Island avoidance on iPhone and full-width layout on iPad - **Full-screen mode** with status bar hiding and tab bar expansion - **Orientation-aware spacing** for optimal layout in all orientations @@ -44,7 +44,7 @@ TheNoiseClock is a SwiftUI-based iOS application that combines a customizable di - **iPad compatibility**: Uses SwiftUI's native `.toolbar(.hidden, for: .tabBar)` for proper iPad sidebar-style tab bar hiding - **Cross-platform support**: Works correctly on both iPhone (bottom tab bar) and iPad (top sidebar tab bar) - **Smooth transitions**: Animated transitions between modes -- **Status bar control**: Status bar automatically hidden in full-screen mode +- **Status bar control**: Status bar hidden on the Clock tab (including full-screen mode) - **Safe area expansion**: Clock expands into tab bar area when hidden - **Dynamic Island awareness**: Proper spacing to avoid Dynamic Island overlap - **Orientation handling**: Full-screen mode works in both portrait and landscape @@ -141,7 +141,7 @@ TheNoiseClock is a SwiftUI-based iOS application that combines a customizable di - **Component consolidation**: Eliminated redundant HorizontalColon and VerticalColon views ### Full-Screen Mode Enhancements -- **Status bar hiding**: Automatic status bar hiding in full-screen mode +- **Status bar hiding**: Status bar remains hidden while on the Clock tab - **Tab bar expansion**: Clock expands into tab bar area when hidden - **Safe area management**: Proper handling of Dynamic Island and other safe areas - **Smooth transitions**: Animated transitions between normal and full-screen modes diff --git a/README.md b/README.md index 25d6b0a..d80b92c 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ TheNoiseClock is a distraction-free digital clock with built-in white noise and - Auto-fit sizing and manual scale control - Custom fonts, weights, and designs with live preview - Glow and opacity controls for low-light comfort +- Clock tab hides the status bar for a distraction-free display **White Noise** - Multiple ambient categories and curated sound packs diff --git a/TheNoiseClock/Features/Clock/Views/ClockView.swift b/TheNoiseClock/Features/Clock/Views/ClockView.swift index 4879f6a..663d429 100644 --- a/TheNoiseClock/Features/Clock/Views/ClockView.swift +++ b/TheNoiseClock/Features/Clock/Views/ClockView.swift @@ -23,6 +23,12 @@ struct ClockView: View { .ignoresSafeArea() GeometryReader { geometry in + let isPhone = UIDevice.current.userInterfaceIdiom == .phone + let isLandscape = geometry.size.width > geometry.size.height + let islandPadding: CGFloat = isLandscape && isPhone ? 120 : 0 + let safeInset = max(geometry.safeAreaInsets.leading, geometry.safeAreaInsets.trailing) + let symmetricInset = isLandscape ? max(safeInset, islandPadding) : 0 + ZStack { // Main clock display container ClockDisplayContainer( @@ -35,10 +41,12 @@ struct ClockView: View { ClockOverlayContainer(style: viewModel.style) } + .padding(.horizontal, symmetricInset) } } .ignoresSafeArea() .toolbar(.hidden, for: .navigationBar) + .statusBarHidden(true) .overlay { // Tab bar management overlay ClockTabBarManager(isDisplayMode: viewModel.isDisplayMode)