Skip to main content
3Nsofts logo3Nsofts
Developer Tools

MainNavigationView Redesign Prompt for OffGrid: AI (SwiftUI, iOS 17)

A production-ready UI refactor prompt for MainNavigationView.swift in OffGrid: AI, focused on premium native SwiftUI design while preserving all existing app logic and business rules.

By Ehsan Azish · 3NSOFTS·March 2026·7 min read

MainNavigationView Redesign Prompt

This prompt is designed for redesigning MainNavigationView.swift in OffGrid: AI, a dark, minimal, offline survival AI app.

The file contains full chat UI scope:

  • sidebar
  • chat detail
  • message bubbles
  • typing indicator
  • download flow
  • trial UI

The goal is a premium native visual language without decorative gradients, brand color tokens, or visual noise.

The key constraint: presentation-only changes. Logic and business behavior stay untouched.


Design Constraints

  • No Color("BrandPrimary")
  • No hardcoded .blue, .green, .orange
  • No .shadow() modifiers
  • No decorative secondarySystemBackground or tertiarySystemBackground cards in chat thread
  • Minimum iOS 17.0
  • Keep all logic, bindings, and manager calls intact

Required UI Changes

1. Remove debug artifact

Remove the DEBUG message count block from ChatDetailView.body.

2. Fix navigation title

Change sidebar title from OffGridAI to OffGrid.

3. Replace welcomeView

Use typography-led welcome view with no hero icon and no brand-colored CTA.

4. Refine conversationRow

Improve hierarchy:

  • title in .subheadline + .medium
  • timestamp in .caption2 and .tertiary
  • preview in .caption and .secondary

5. Simplify sidebar download progress section

  • remove blue icon/tint usage
  • keep progress linear and neutral
  • use .monospacedDigit() for percentage stability

6. Replace TypingIndicator

Remove brain icon, timer publisher, and "Thinking..." text. Use minimal three-dot breathing animation only.

7. Redesign user MessageBubble

Use Color(.systemFill) background for user bubbles and .primary foreground.

8. Redesign DownloadChoiceBubble

  • remove all Color("BrandPrimary")
  • use Color(.systemFill) and neutral semantic styles
  • replace "RECOMMENDED" badge with plain text "Recommended"
  • convert button and card surfaces to .ultraThinMaterial where appropriate

9. Redesign DownloadProgressBubble

  • remove .shadow()
  • remove hardcoded icon colors
  • remove .tint(.blue)
  • use .ultraThinMaterial for outer surface

10. Redesign TrialExhaustedBubble

Replace accent-color pill button with neutral outlined/material capsule style.

11. Update input send button color logic

Use adaptive label colors:

  • disabled: Color(.tertiaryLabel)
  • enabled: Color(.label)

12. Remove color-coded status labels in modelStatusSection

Use .primary instead of green/orange color cues.


Invariants (Must Not Change)

Do not modify:

  • state declarations and environment bindings
  • download handling logic and callbacks
  • purchase/trial/business rules
  • sendMessage(), createNewChat(), generateWelcomeMessage() logic
  • streaming and parsing internals
  • sheets, alerts, confirmation dialogs

This prompt is strictly for UI layer refinement.


Acceptance Checklist

  • zero Color("BrandPrimary")
  • zero hardcoded .blue/.green/.orange usage for UI state
  • zero .shadow() modifiers
  • debug block removed
  • navigation title updated to OffGrid
  • welcome view is typography-led and neutral
  • typing indicator reduced to 3-dot minimalist pattern
  • bubbles use system fill/material surfaces
  • input send button uses adaptive label colors
  • app compiles with unchanged behavior

Why this prompt works

It combines strict UI constraints with explicit non-functional boundaries, which is critical when using AI-assisted refactoring in production codebases.

The result is a safer prompt:

  • strong enough to produce a meaningful visual redesign
  • constrained enough to prevent accidental logic regressions

For teams using AI to accelerate SwiftUI refactors, this pattern is reusable across complex views: define visual target, enforce semantic styling, and lock business behavior.