Library design: cards + redesigned list on the bookmarks screen, tag picker sheet #9

Merged
admin merged 11 commits from feat/library-browse-prototype into master 2026-07-30 04:03:03 +00:00
2 changed files with 12 additions and 3 deletions
Showing only changes of commit 76df237473 - Show all commits
+4
View File
@@ -122,6 +122,7 @@ struct BookmarksView: View {
} label: { } label: {
Image(systemName: "sparkles") Image(systemName: "sparkles")
} }
.accessibilityLabel("AI actions")
} }
ToolbarItem(placement: .topBarTrailing) { ToolbarItem(placement: .topBarTrailing) {
HStack(spacing: 16) { HStack(spacing: 16) {
@@ -138,6 +139,7 @@ struct BookmarksView: View {
Button { showAddBookmark = true } label: { Button { showAddBookmark = true } label: {
Image(systemName: "plus") Image(systemName: "plus")
} }
.accessibilityLabel("Add bookmark")
Button { Button {
Task { await viewModel.toggleUnreadFilter() } Task { await viewModel.toggleUnreadFilter() }
} label: { } label: {
@@ -146,9 +148,11 @@ struct BookmarksView: View {
: "line.3.horizontal.decrease.circle") : "line.3.horizontal.decrease.circle")
.contentTransition(.symbolEffect(.replace)) .contentTransition(.symbolEffect(.replace))
} }
.accessibilityLabel("Unread filter")
Button { showSettings = true } label: { Button { showSettings = true } label: {
Image(systemName: "gearshape") Image(systemName: "gearshape")
} }
.accessibilityLabel("Settings")
} }
} }
} }
+8 -3
View File
@@ -131,13 +131,18 @@ enum PaperType {
extension View { extension View {
/// Puts a screen on the paper ground: clears the system list/scroll /// Puts a screen on the paper ground: clears the system list/scroll
/// background so the sheet shows through, and tints the bar to match so a /// background so the sheet shows through, and lets the paper reach past the
/// large title doesn't sit on a white strip above the content. /// safe area so the bar sits on it.
///
/// Deliberately no `.toolbarBackground` setting it makes SwiftUI build a
/// fresh UINavigationBarAppearance and throw away the one PaperAppearance
/// installed, which silently reverted these screens' titles to the system
/// bold sans. The bar is transparent by appearance, so the background
/// below is all it needs.
func paperSurface() -> some View { func paperSurface() -> some View {
self self
.scrollContentBackground(.hidden) .scrollContentBackground(.hidden)
.background(Paper.sheet.ignoresSafeArea()) .background(Paper.sheet.ignoresSafeArea())
.toolbarBackground(Paper.sheet, for: .navigationBar)
} }
/// Editable text. Monospaced, because in this design anything you type is /// Editable text. Monospaced, because in this design anything you type is