mac: jump-to-latest button — composer-disc size, off the window edge (#1107)
40pt was web parity taken too literally: the web's composer circles are 40px so its jump button matches them; the Mac's +/send discs are 28pt, so 40 read oversized and sat tight against the window edge under the overlay scrollbar. Now a 28pt disc with a 12pt chevron, 22pt off the trailing edge.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 file changed,
+9
−4
ios/LChatMac/NativeFeedView.swift+9 −4
diff --git a/ios/LChatMac/NativeFeedView.swift b/ios/LChatMac/NativeFeedView.swift| index e2405b5..3654140 100644 |
| --- a/ios/LChatMac/NativeFeedView.swift |
| +++ b/ios/LChatMac/NativeFeedView.swift |
| @@ -550,7 +550,11 @@ struct NativeFeedView: View { |
| } |
| } |
| // Jump-to-latest (web parity): bottom-right of the feed, shown |
| - // once jumpButtonVisible flips (the sentinel probe above). |
| + // once jumpButtonVisible flips (the sentinel probe above). Sized to |
| + // this composer's 28pt +/send discs, not the web's 40px (its |
| + // composer circles ARE 40px, so 40 reads proportionate there and |
| + // oversized here); extra trailing padding keeps it off the window |
| + // edge and clear of the overlay scrollbar. |
| .overlay(alignment: .bottomTrailing) { |
| if model.ready && settled && jumpButtonVisible { |
| Button { |
| @@ -559,15 +563,16 @@ struct NativeFeedView: View { |
| } |
| } label: { |
| Image(systemName: "chevron.down") |
| - .font(.system(size: 16, weight: .semibold)) |
| - .frame(width: 40, height: 40) |
| + .font(.system(size: 12, weight: .semibold)) |
| + .frame(width: 28, height: 28) |
| .background(.regularMaterial, in: Circle()) |
| .overlay(Circle().strokeBorder(.quaternary, lineWidth: 1)) |
| } |
| .buttonStyle(.plain) |
| .accessibilityLabel("Jump to latest") |
| .help("Jump to latest") // mouse-hover tooltip (the web button's title=) |
| - .padding(16) |
| + .padding(.trailing, 22) |
| + .padding(.bottom, 16) |
| .transition(.opacity) |
| } |
| } |