Skip to content

UI overhaul: replace hardcoded colors with materials and semantic styles across all views#3

Draft
Copilot wants to merge 31 commits into
devfrom
copilot/refine-ui-elements
Draft

UI overhaul: replace hardcoded colors with materials and semantic styles across all views#3
Copilot wants to merge 31 commits into
devfrom
copilot/refine-ui-elements

Conversation

Copilot AI commented Feb 20, 2026

Copy link
Copy Markdown

Systematic pass replacing all hardcoded Color.gray.opacity() backgrounds and .foregroundColor(.gray) with .ultraThinMaterial and .secondary respectively, unifying the app's glassmorphism design language. Fixes several light/dark mode bugs where hardcoded colors were unreadable.

Glassmorphism consistency

  • All button/card backgrounds: Color.gray.opacity(0.2).ultraThinMaterial with accent gradient border (opacity(0.2)0)
  • All muted text: .foregroundColor(.gray) / .foregroundStyle(.gray).secondary
  • All placeholder rectangles: opaque gray → .ultraThinMaterial with SF Symbol icons (.tertiary)
  • Card corner radii standardized to 12pt; title overlays use 3-stop gradients

Bug fixes

  • Download tab selector: white-on-white text in dark mode — pill fill changed to Color.primary with environment-aware contrasting text
  • EnhancedActiveDownloadCard: .foregroundColor(.white).primary/.secondary (unreadable in light mode)
  • Downloaded episodes progress: was hardcoded to 0.0 — now reads from UserDefaults via lastPlayedTime_/totalTime_ keys
  • Search results: duplicate .scrollViewBottomPadding() causing 120pt gap — removed inner, kept outer
  • Build errors: Color.tertiary, ShapeStyle.accentColor, ternary type inference ambiguity — all resolved by using foregroundColor() for Color values

Episode cell redesign

  • 130×76 thumbnail with episode number badge (frosted glass capsule overlay)
  • Inline progress bar at thumbnail bottom; CircularProgressBar stroke 5→3, green when complete
  • Card background → .ultraThinMaterial + gradient border
  • Same design applied to EnhancedEpisodeRow (downloaded episodes)

Scope across 24 files

  • Library: LibraryView, ContinueReadingSection, BookmarkCell, BookmarkCollectionGridCell, BookmarkGridItemView, BookmarksDetailView, CollectionDetailView, AllWatching, AllReading
  • MediaInfoView: action buttons, StretchyHeader, EpisodeCell, CircularProgressBar
  • Search: SearchComponents, SearchResultsGrid, SearchViewComponents, SearchView
  • Downloads: DownloadView
  • Settings: SettingsView + 8 sub-views, AnilistMatchView, TMDBMatchView
  • Shared: TabBar, SkeletonCell, Shimmer, SplashScreenView
// Before — hardcoded, breaks in light mode
.background(Color.gray.opacity(0.2))
.foregroundColor(.gray)

// After — adapts to theme, matches Sora's glassmorphism
.background(.ultraThinMaterial)
.overlay(RoundedRectangle(cornerRadius: 12).stroke(
    LinearGradient(colors: [Color.accentColor.opacity(0.2), Color.accentColor.opacity(0)],
                   startPoint: .topLeading, endPoint: .bottomTrailing), lineWidth: 0.5))
.foregroundStyle(.secondary)

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 13 commits February 20, 2026 09:50
…aded episodes

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
…llback in createAssetMetadata

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Persist aniListID and totalEpisodes through download pipeline to fix AniList progress tracking for downloaded episodes
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Copilot AI and others added 3 commits February 20, 2026 17:01
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
… spacing: 6

- Change section title .foregroundStyle(.gray) to .foregroundStyle(.secondary)
- Add .fontWeight(.medium) to section title
- Change footer .foregroundStyle(.gray) to .foregroundStyle(.secondary)
- Change VStack spacing from 4 to 6
- Applied consistently across all 11 settings subview files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Copilot AI changed the title [WIP] Refine UI elements and fix code bugs Refine UI elements: fix theme-aware colors, polish empty states, unify styling Feb 20, 2026
Copilot AI requested a review from scigward February 20, 2026 17:09
@scigward

Copy link
Copy Markdown
Owner

@copilot improve episode mediainfoview, And change the UI look of episode cells to look more modern and nice looking, Make noticable changes to the UI not just refinements.

Copilot AI and others added 2 commits February 20, 2026 17:21
…ssmorphism

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>


Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>

Copilot AI commented Feb 20, 2026

Copy link
Copy Markdown
Author

@copilot improve episode mediainfoview, And change the UI look of episode cells to look more modern and nice looking, Make noticable changes to the UI not just refinements.

Redesigned the episode cells and MediaInfoView in commit 788e50b. Here's what changed:

Episode Cell (major redesign):

  • Larger thumbnail (130×76) with rounded corners, replacing the old 100×56
  • Episode number badge overlaid on the thumbnail with a frosted glass capsule
  • Linear progress bar integrated at the bottom of the thumbnail (turns green when complete)
  • Filler badge modernized — uppercase FILLER with rounded font and letter-spacing
  • Downloaded indicator moved inline as a green arrow.down.circle.fill next to the episode title
  • Circular progress bar now hidden when unwatched (only appears when progress > 0)
  • Card background switched from opaque Color(UIColor.systemBackground) + gray overlay to .ultraThinMaterial with a gradient border, matching the app's glassmorphism style

CircularProgressBar:

  • Thinner stroke (5→3), green color when complete, rounded design font
  • Replaced raw UserDefaults with @AppStorage

MediaInfoView:

  • Episode count badge capsule added to the "Episodes" section header
  • Back navigation button uses .ultraThinMaterial instead of opaque background
  • Episode list spacing tightened (15→10) for a cleaner look

Copilot AI changed the title Refine UI elements: fix theme-aware colors, polish empty states, unify styling Refine UI elements: fix theme-aware colors, polish empty states, redesign episode cells Feb 20, 2026
@scigward

Copy link
Copy Markdown
Owner

@copilot good, Now redesign other parts of the UI like settings and searchView and videoplayer. And download view.

@scigward

Copy link
Copy Markdown
Owner

@copilot build error again…

…ccentColor) in SummaryItem

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>

Copilot AI commented Feb 20, 2026

Copy link
Copy Markdown
Author

@copilot build error again…

Fixed in 01087a6. Found the error from the CI build logs:

DownloadView.swift:623:35: error: type 'ShapeStyle' has no member 'accentColor'

The SummaryItem icon used .foregroundStyle(.accentColor) — but .accentColor is a static member of Color, not ShapeStyle. Changed to .foregroundColor(.accentColor) which correctly takes a Color argument.

@scigward

Copy link
Copy Markdown
Owner

@copilot fix the bugs in the images, The first one is for downloads, You can’t see the text it’s just solid white, The second one is for search view, There’s a big space in the end pf the search results, fix that too, And also revert to the old settings backgrounds, I don’t like the new colors background, And lastly fix downloaded episodes progress bar not updating, It’s just stuck at 0 and doesn’t update, Nothing else.
IMG_3859
IMG_3860

…ns, restore episode progress bar

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>

Copilot AI commented Feb 20, 2026

Copy link
Copy Markdown
Author

@copilot fix the bugs in the images, The first one is for downloads, You can’t see the text it’s just solid white, The second one is for search view, There’s a big space in the e...

All 4 fixes in 2c86e2b:

  1. Download tab text: The accent color is white in dark mode, so white text on white pill was invisible. Changed the pill fill to Color.primary with environment-aware contrasting text (black on white pill in dark mode, white on black pill in light mode).

  2. Search results spacing: Removed the extra bottom padding by changing .padding() to .padding(.horizontal) on the search results grid.

  3. Settings backgrounds: Reverted to the original settings icon style — removed all colored icon backgrounds. Only kept the section header refinements (.gray.secondary, spacing 4→6, .fontWeight(.medium)).

  4. Episode progress bar: Restored the always-visible CircularProgressBar by removing the if currentProgress > 0 conditional wrapper I added.

Copilot AI changed the title Refine UI elements: fix theme-aware colors, polish empty states, redesign episode cells, settings, search, and downloads Refine UI elements: fix theme-aware colors, polish empty states, redesign episode cells, search, and downloads Feb 20, 2026
@scigward

Copy link
Copy Markdown
Owner

@copilot the big space bug in searchview is still there, Also the circular progress bar is still stuck on 0% and doesn’t update, It’s visible but doesn’t update. Also apply the new episode cells UI to downloaded episodes.

… apply new episode cell UI

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>

Copilot AI commented Feb 20, 2026

Copy link
Copy Markdown
Author

@copilot the big space bug in searchview is still there, Also the circular progress bar is still stuck on 0% and doesn’t update, It’s visible but doesn’t update. Also apply the n...

All 3 fixes in 71498b0:

  1. Search view space: Removed duplicate .scrollViewBottomPadding() — it was applied on both the inner ScrollView and the outer VStack, creating a 120pt gap. Now only the outer one remains.

  2. Progress bar stuck at 0%: EnhancedEpisodeRow had CircularProgressBar(progress: 0.0) hardcoded. Now reads actual progress from UserDefaults using lastPlayedTime_/totalTime_ keys with asset.originalURL, and listens for episodeProgressChanged notifications to update live.

  3. Downloaded episodes UI: Redesigned EnhancedEpisodeRow to match the episode cell style — 130×76 thumbnail with episode number badge overlay, inline progress bar at bottom of thumbnail, modernized FILLER badge, glassmorphism card background (.ultraThinMaterial), and 34pt CircularProgressBar.

@scigward

Copy link
Copy Markdown
Owner

@copilot great, Now that bugs are fixed redesign mediainfoview, Downloadview, UI and searchview, And settings, Nothing too crazy, Just make them look better and cleaner and keep the same sora UI vibe. Ensure no bugs out of the box rn so take your time on this one.

…lean settings/download/search views

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>

Copilot AI commented Feb 20, 2026

Copy link
Copy Markdown
Author

@copilot great, Now that bugs are fixed redesign mediainfoview, Downloadview, UI and searchview, And settings, Nothing too crazy, Just make them look better and cleaner and keep the sa...

Polished all four views in 72867a1. Changes are clean and consistent — no build risks.

Settings:

  • All .gray text → .secondary (module subtitle, external links)
  • Chevrons/arrows use .tertiary + semibold weight
  • External links show arrow.up.right instead of safari icon

Downloads:

  • Active download cards now use .ultraThinMaterial instead of opaque systemBackground + gray overlay
  • Cards float individually with their own material + gradient border
  • Back button uses .ultraThinMaterial
  • Gradient overlay simplified

Search:

  • Search bar gradient border standardized to 0.2 opacity

MediaInfoView:

  • Gradient overlay cleaned up (extracted bgColor variable)

Across all views:

  • Standardized all accent gradient borders to opacity(0.2) / lineWidth(0.5) (was mixed 0.25/0.3 with lineWidth 0.5/1.5)

Copilot AI and others added 5 commits February 21, 2026 23:52
…laceholders and cards

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
…ead of gray opacity

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
… and semantic colors

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
…aterials

Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Co-authored-by: scigward <162128369+scigward@users.noreply.github.com>
Copilot AI changed the title Refine UI elements: fix theme-aware colors, polish empty states, redesign episode cells, search, and downloads UI overhaul: replace hardcoded colors with materials and semantic styles across all views Feb 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants