diff --git a/MacMagazine/Features/MacMagazineUILibrary/Sources/MacMagazineUILibrary/Cards/Extensions/MinimumTouchTarget.swift b/MacMagazine/Features/MacMagazineUILibrary/Sources/MacMagazineUILibrary/Cards/Extensions/MinimumTouchTarget.swift index a4ff1097..412f1680 100644 --- a/MacMagazine/Features/MacMagazineUILibrary/Sources/MacMagazineUILibrary/Cards/Extensions/MinimumTouchTarget.swift +++ b/MacMagazine/Features/MacMagazineUILibrary/Sources/MacMagazineUILibrary/Cards/Extensions/MinimumTouchTarget.swift @@ -15,9 +15,19 @@ private struct MinimumTouchTarget: ViewModifier { func body(content: Content) -> some View { content - .buttonStyle(.plain) + .buttonStyle(MinimumTouchTargetButtonStyle()) + .glassEffect(.regular.tint(selected ? selectedColor.opacity(0.3) : .clear).interactive(), in: .circle) + } +} + +/// Expands the tappable area from inside the button so the full 44pt circle +/// receives taps — a `frame`/`contentShape` applied outside a `Button` only +/// resizes the visual glass, not the button's hit-test region (FB22155477). +private struct MinimumTouchTargetButtonStyle: ButtonStyle { + func makeBody(configuration: Configuration) -> some View { + configuration.label .frame(width: 44, height: 44) .contentShape(Circle()) - .glassEffect(.regular.tint(selected ? selectedColor.opacity(0.3) : .clear).interactive(), in: .circle) + .opacity(configuration.isPressed ? 0.4 : 1) } }