Polish BookmarkRow to match approved HTML mock
All checks were successful
CI / build-and-deploy (push) Successful in 44s
All checks were successful
CI / build-and-deploy (push) Successful in 44s
- Meta line .tertiary → .secondary (more readable domain/date line) - Tag font 11pt → 12pt - Reading progress bar: full-width, green, pinned to row bottom edge via overlay Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -34,7 +34,7 @@ struct BookmarkRow: View {
|
|||||||
Text(bookmark.dateAdded, style: .relative)
|
Text(bookmark.dateAdded, style: .relative)
|
||||||
}
|
}
|
||||||
.font(.system(size: 13))
|
.font(.system(size: 13))
|
||||||
.foregroundStyle(.tertiary)
|
.foregroundStyle(.secondary)
|
||||||
}
|
}
|
||||||
|
|
||||||
Spacer()
|
Spacer()
|
||||||
@@ -68,7 +68,7 @@ struct BookmarkRow: View {
|
|||||||
HStack(spacing: 6) {
|
HStack(spacing: 6) {
|
||||||
ForEach(effectiveTags, id: \.self) { tag in
|
ForEach(effectiveTags, id: \.self) { tag in
|
||||||
Text(tag)
|
Text(tag)
|
||||||
.font(.system(size: 11, weight: .medium))
|
.font(.system(size: 12, weight: .medium))
|
||||||
.foregroundStyle(.secondary)
|
.foregroundStyle(.secondary)
|
||||||
.padding(.horizontal, 8)
|
.padding(.horizontal, 8)
|
||||||
.padding(.vertical, 3)
|
.padding(.vertical, 3)
|
||||||
@@ -80,24 +80,23 @@ struct BookmarkRow: View {
|
|||||||
.padding(.leading, 44)
|
.padding(.leading, 44)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reading progress indicator
|
}
|
||||||
|
.padding(.vertical, 14)
|
||||||
|
.contentShape(Rectangle())
|
||||||
|
.overlay(alignment: .bottom) {
|
||||||
if readingProgress > 0.02 {
|
if readingProgress > 0.02 {
|
||||||
GeometryReader { geo in
|
GeometryReader { geo in
|
||||||
ZStack(alignment: .leading) {
|
ZStack(alignment: .leading) {
|
||||||
Rectangle()
|
Rectangle()
|
||||||
.fill(Color(.systemGray5))
|
.fill(Color(.systemGray5))
|
||||||
Rectangle()
|
Rectangle()
|
||||||
.fill(Color.blue.opacity(0.55))
|
.fill(Color(.systemGreen))
|
||||||
.frame(width: geo.size.width * min(readingProgress, 1))
|
.frame(width: geo.size.width * min(readingProgress, 1))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.frame(height: 2)
|
.frame(height: 2)
|
||||||
.clipShape(Capsule())
|
|
||||||
.padding(.leading, 44)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.padding(.vertical, 14)
|
|
||||||
.contentShape(Rectangle())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private var podcastCached: Bool {
|
private var podcastCached: Bool {
|
||||||
|
|||||||
Reference in New Issue
Block a user