Files
jarvis/Jarvis/Views/RootTabView.swift
Robin Kutesa 7085a4dd45
Some checks failed
CI / Build · macos-14 · Debug (push) Has been cancelled
CI / Build · macos-15 · Debug (push) Has been cancelled
CI / Build · macos-14 · Release (push) Has been cancelled
CI / Build · macos-15 · Release (push) Has been cancelled
feat(reader): redesign ArticleReaderView + global appearance toggle
Reading experience:
- Body text #CECECE (dark) / #1A1916 (light) — was near-invisible #4A4A4A
- 30pt heavy headline, 17pt body at 8.5pt line-spacing
- Skeleton pulse loading state replaces dark spinner box
- Hero image fades in on load (0.3s ease-in)
- Orange reading progress bar (2pt) below nav bar
- Max reading width 680pt for iPad legibility

Appearance:
- AppearanceMode enum (system/light/dark) in Theme.swift
- @AppStorage("appearanceMode") applied once in JarvisApp root
- Appearance picker (Picker in Menu) in reader toolbar
- Removed .preferredColorScheme(.dark) from all 12 child views

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 01:30:36 +03:00

34 lines
810 B
Swift

// RootTabView.swift
import SwiftUI
struct RootTabView: View {
@EnvironmentObject var store: StoryStore
var body: some View {
TabView {
SignalFeedView()
.tabItem {
Label("Today", systemImage: "square.grid.2x2")
}
LatestView()
.tabItem {
Label("Latest", systemImage: "newspaper")
}
SavedView()
.tabItem {
Label("Saved", systemImage: "bookmark")
}
SearchView()
.tabItem {
Label("Search", systemImage: "magnifyingglass")
}
}
.tint(Color("KisaniOrange"))
.task { await store.loadStories(refresh: true) }
}
}