eleven / messenger Public

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>
Paul Campbell 013dc0972d4f70d0ab3b73686bd2267a9f5c0a37 parent a47982d
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)
}
}