Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
b901332
Vary symbolic moment fallback phrasing by semantic seed
DHCross Apr 25, 2026
9984ca8
Merge remote-tracking branch 'origin/main' into codex/brainstorm-idea…
Copilot Apr 27, 2026
5db52f4
Merge pull request #440 from DHCross/codex/brainstorm-ideas-for-symbo…
DHCross Apr 27, 2026
13a96c3
Add explicit counterpart Symbolic Moment actions
DHCross Apr 23, 2026
b0397c3
Refine Raven transient channel error copy
DHCross Apr 23, 2026
046d091
Harden Raven chat retries for signal loss
DHCross Apr 23, 2026
ac7fdc1
Add diagnostic console.error logging to surface why Raven channel fet…
Copilot Apr 23, 2026
e0a2096
Fix creator-mode offline telemetry from silencing replies
DHCross Apr 23, 2026
da0c1a6
Fix Raven stream stalls: kill empty-ghost bubbles and false interrupt…
claude Apr 26, 2026
9689f19
feat(ios): Task #21 — UI review, cosmos theming, typography ramp
replit-agent Apr 26, 2026
e726f4a
fix(voice): warm reverb chain in unlock() to prevent first-response c…
claude Apr 26, 2026
5605b1e
feat(voice): add replay button + fix auto-play cleanup
claude Apr 26, 2026
4715a9c
feat(symbolic-moment): add all-staged and all-in-scope picker options
claude Apr 26, 2026
60b843e
feat(symbolic-moment): add all-staged and all-in-scope picker options
claude Apr 26, 2026
aef70a2
refactor: remove legacy section markup from symbolic moment reports a…
DHCross Apr 27, 2026
336a228
update with bypass code
DHCross Apr 27, 2026
43c1668
fix(review): apply PR review feedback - error messages, audio cleanup…
Copilot Apr 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
374 changes: 302 additions & 72 deletions AGENTS.md

Large diffs are not rendered by default.

38 changes: 38 additions & 0 deletions RaveniOS/RaveniOS/Design/RavenDesignTokens.swift
Original file line number Diff line number Diff line change
Expand Up @@ -333,3 +333,41 @@ enum RavenMotion {
static let landingPromptSpringBounce: Double = 0.20
static let landingPromptSpringDelay: Double = 0.35
}

// MARK: - Typography
//
// Named font scale for non-spatial views (Chat, Vault, sheets).
// Spatial labels in SkyMapView continue to use .system(size:design:monospaced)
// directly for fine-grained pixel control; this ramp targets the UI chrome.

enum RavenTypography {
/// Screen/section title — chat header name, nav titles.
static func title() -> Font { .system(size: 17, weight: .semibold) }

/// Primary UI body — mode display names, list row headlines.
static func body() -> Font { .system(size: 15, weight: .regular) }

/// Secondary label — phase labels, profile names in header, subtitles.
static func caption() -> Font { .system(size: 12, weight: .regular) }

/// Monospaced metadata — coords, timestamps, stat values.
static func mono(size: CGFloat = 11, weight: Font.Weight = .regular) -> Font {
.system(size: size, weight: weight, design: .monospaced)
}
}

extension View {
/// Raven title style: 17pt semibold.
func ravenTitle() -> some View { self.font(RavenTypography.title()) }

/// Raven body style: 15pt regular.
func ravenBody() -> some View { self.font(RavenTypography.body()) }

/// Raven caption style: 12pt regular.
func ravenCaption() -> some View { self.font(RavenTypography.caption()) }

/// Raven monospaced style: configurable size, default 11pt.
func ravenMono(size: CGFloat = 11, weight: Font.Weight = .regular) -> some View {
self.font(RavenTypography.mono(size: size, weight: weight))
}
}
31 changes: 31 additions & 0 deletions RaveniOS/RaveniOS/RaveniOSApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,42 @@ struct RaveniOSApp: App {

init() {
FirebaseApp.configure()
configureTabBarAppearance()
}

var body: some Scene {
WindowGroup {
ContentView()
}
}

// MARK: - Tab Bar Theming

/// Applies cosmos dark chrome to the tab bar using UITabBarAppearance.
/// Mirrors RavenPalette.cosmosBackground (0.04, 0.04, 0.10) and ravenAmber
/// (hue 0.08, sat 0.60, bri 0.80) for selected glyph tint.
///
/// Configured at app start so the appearance is in place before the first
/// render — avoids a flash of the system default white bar.
///
/// Note: EarthView overlays the TabView with zIndex(2) and ignoresSafeArea(),
/// so the tab bar sits beneath it during Earth mode and is not affected.
private func configureTabBarAppearance() {
let cosmos = UIColor(red: 0.04, green: 0.04, blue: 0.10, alpha: 0.97)
let amber = UIColor(hue: 0.08, saturation: 0.60, brightness: 0.80, alpha: 1.0)
let dim = UIColor.white.withAlphaComponent(0.35)

let appearance = UITabBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.backgroundColor = cosmos

let stacked = appearance.stackedLayoutAppearance
stacked.selected.iconColor = amber
stacked.selected.titleTextAttributes = [.foregroundColor: amber]
stacked.normal.iconColor = dim
stacked.normal.titleTextAttributes = [.foregroundColor: dim]

UITabBar.appearance().standardAppearance = appearance
UITabBar.appearance().scrollEdgeAppearance = appearance
}
}
Loading