import SwiftUI extension View { func tappablePadding(_ insets: EdgeInsets, onTap: @escaping () -> Void) -> some View { modifier(TappablePadding(insets: insets, onTap: onTap)) } } struct TappablePadding: ViewModifier { let insets: EdgeInsets let onTap: () -> Void public init(insets: EdgeInsets, onTap: @escaping () -> Void) { self.insets = insets self.onTap = onTap } public func body(content: Content) -> some View { content .padding(insets) .contentShape(Rectangle()) .onTapGesture { onTap() } .padding(insets.inverted) } }