Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
6c2846a072
commit
51d6859209
6
PRD.md
6
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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user