Link as Button
Fully styled SwiftUI button that triggers web URL opening.
SwiftUI Implementation
Pure Vanilla Swift • No DependencieslinkAsButton.swift
import SwiftUI
struct UseLinkAsButton: View {
var body: some View {
LinkAsButton(url: "https://www.compotui.com", systemSymbol: "globe", text: "Website")
}
}
#Preview {
UseLinkAsButton()
}
struct LinkAsButton: View {
let url: String
let systemSymbol: String
let text: String
var body: some View {
Link(destination: URL(string: url)!, label: {
HStack(spacing: 16) {
Image(systemName: systemSymbol)
Text(text)
}
.padding(.horizontal, 32)
.padding(.vertical, 16)
.font(.largeTitle)
.foregroundColor(.white)
.background(
Capsule()
.fill(Color.blue)
)
})
}
}Ready to copy and paste directly into any Xcode project running iOS 16.0+.
Recommended Use Cases
- First-run onboarding flows and feature introductions
- Paywalls, upgrade prompts, and subscription tiers
- App settings, preferences, and account configuration screens
Component Details
- Category
- Links & Sharing
- iOS Compatibility
- iOS 16.0+
- Xcode Version
- Xcode 15+
- Platform
- iOS
- License Tier
- Free
- Themes & Contexts
- settingsonboardingpaywall
C
Compot for iOS
Native SwiftUI playground app
Preview all 130+ components interactively on your device and copy code straight to Xcode with 1 tap.
Get Compot on the App StoreRelated SwiftUI Components
More components in Links & Sharing and related app architectures.
ButtonsiOS 16.0+
Primary Button Basic
High-emphasis prominent action button with standard SwiftUI prominence styling and haptic feedback.
View Component & Code
ButtonsiOS 16.0+
CTA Button Large Basic
Full-width, high-impact call-to-action button designed for onboarding screens, welcome flows, and paywalls.
View Component & Code
ButtonsiOS 16.0+
Secondary Button Basic
Medium-emphasis secondary action button styled for alternative user workflows and dismissal actions.
View Component & Code