diff --git a/AppStoreScreenshots/10-widgets-light.png b/AppStoreScreenshots/10-widgets-light.png new file mode 100644 index 0000000..64a257b Binary files /dev/null and b/AppStoreScreenshots/10-widgets-light.png differ diff --git a/AppStoreScreenshots/9-widgets-dark.png b/AppStoreScreenshots/9-widgets-dark.png index afa0118..e75f8bd 100644 Binary files a/AppStoreScreenshots/9-widgets-dark.png and b/AppStoreScreenshots/9-widgets-dark.png differ diff --git a/FuelBoard/WidgetMockScreen.swift b/FuelBoard/WidgetMockScreen.swift index 9cea0f0..537958c 100644 --- a/FuelBoard/WidgetMockScreen.swift +++ b/FuelBoard/WidgetMockScreen.swift @@ -6,16 +6,12 @@ import WidgetKit /// code the widget extension renders) at small + medium sizes. Used for App /// Store screenshot captures; not reachable from the UI. struct WidgetMockScreen: View { + @Environment(\.colorScheme) private var colorScheme + var body: some View { ZStack { - LinearGradient( - colors: [ - Color(red: 0.09, green: 0.10, blue: 0.14), - Color(red: 0.02, green: 0.03, blue: 0.06) - ], - startPoint: .top, endPoint: .bottom - ) - .ignoresSafeArea() + wallpaper + .ignoresSafeArea() VStack(alignment: .leading, spacing: 26) { // App icon + name, home-screen style @@ -27,10 +23,10 @@ struct WidgetMockScreen: View { VStack(alignment: .leading, spacing: 3) { Text("FuelBoard") .font(.title2.bold()) - .foregroundStyle(.white) + .foregroundStyle(.primary) Text("Cheapest fuel near you") .font(.subheadline) - .foregroundStyle(.white.opacity(0.65)) + .foregroundStyle(.secondary) } } .padding(.top, 8) @@ -44,15 +40,46 @@ struct WidgetMockScreen: View { } } + /// iOS-default-style wallpaper (dark navy → black in dark mode, soft + /// blue-grey in light), matching the system default look. + private var wallpaper: some View { + Group { + if colorScheme == .dark { + LinearGradient( + colors: [ + Color(red: 0.09, green: 0.14, blue: 0.26), + Color(red: 0.05, green: 0.08, blue: 0.15), + Color(red: 0.02, green: 0.03, blue: 0.06) + ], + startPoint: .topLeading, endPoint: .bottomTrailing + ) + } else { + LinearGradient( + colors: [ + Color(red: 0.72, green: 0.80, blue: 0.94), + Color(red: 0.85, green: 0.90, blue: 0.97), + Color(red: 0.94, green: 0.96, blue: 0.99) + ], + startPoint: .topLeading, endPoint: .bottomTrailing + ) + } + } + } + private func widgetCard(_ family: WidgetFamily, label: String) -> some View { - VStack(alignment: .leading, spacing: 10) { + // Real widget proportions: system small content is 158×158pt, + // medium 338×158pt (card adds the 14pt padding each side). + let contentW: CGFloat = family == .systemSmall ? 158 : 338 + let cardW: CGFloat = contentW + 28 + let cardH: CGFloat = contentW + 28 + return VStack(alignment: .leading, spacing: 10) { Text(label.uppercased()) .font(.caption.weight(.semibold)) .tracking(1) - .foregroundStyle(.white.opacity(0.5)) + .foregroundStyle(.secondary) FuelPriceWidgetContent(entry: mockEntry(family: family), family: family, isWidget: false) .padding(14) - .frame(maxWidth: .infinity, alignment: .leading) + .frame(width: cardW, height: cardH, alignment: .leading) .background(Color(.systemBackground), in: RoundedRectangle(cornerRadius: 24, style: .continuous)) } } diff --git a/build-pm/ModuleCache.noindex/Session.modulevalidation b/build-pm/ModuleCache.noindex/Session.modulevalidation index a3a5931..6e9ba74 100644 --- a/build-pm/ModuleCache.noindex/Session.modulevalidation +++ b/build-pm/ModuleCache.noindex/Session.modulevalidation @@ -1 +1 @@ -1786807226.939194: Module build session file for module cache at Path(_str: "/Users/apt/workspace/fuelboard/build-pm/ModuleCache.noindex") +1786807715.783432: Module build session file for module cache at Path(_str: "/Users/apt/workspace/fuelboard/build-pm/ModuleCache.noindex") diff --git a/build-pm/SDKStatCaches.noindex/iphonesimulator26.2-23C57-7d00a8b37fbd7999ea79df8ebc024bf0.sdkstatcache b/build-pm/SDKStatCaches.noindex/iphonesimulator26.2-23C57-7d00a8b37fbd7999ea79df8ebc024bf0.sdkstatcache index 2c3d560..bf85d73 100644 Binary files a/build-pm/SDKStatCaches.noindex/iphonesimulator26.2-23C57-7d00a8b37fbd7999ea79df8ebc024bf0.sdkstatcache and b/build-pm/SDKStatCaches.noindex/iphonesimulator26.2-23C57-7d00a8b37fbd7999ea79df8ebc024bf0.sdkstatcache differ diff --git a/build-pm/info.plist b/build-pm/info.plist index 8ff0d31..712f9b3 100644 --- a/build-pm/info.plist +++ b/build-pm/info.plist @@ -3,7 +3,7 @@ LastAccessedDate - 2026-08-15T15:20:26Z + 2026-08-15T15:28:33Z WorkspacePath /Users/apt/workspace/fuelboard/FuelBoard.xcodeproj