Autumn Sale50% offCOMPOT
ButtonsFree ComponentiOS 16.0+Xcode 15+

Record Button with State

Audio/video recording toggle button with morphing record/stop states and pulse animation.

SwiftUI Implementation

Pure Vanilla Swift • No Dependencies
recordButton.swift
import SwiftUI

struct UseRecordButton: View {
    
    @State private var isRecordButtonActive: Bool = true
    
    var body: some View {
        
        RecordButton(color: isRecordButtonActive ? .red : .secondary)
        
    }
    
}

#Preview {
    UseRecordButton()
}

struct RecordButton: View {
    
    let color: Color
    
    var body: some View {
        Circle()
            .foregroundStyle(color)
            .frame(width: 62, height: 62)
            .overlay {
                Circle()
                    .stroke(lineWidth: 2)
                    .padding(5)
                    .foregroundStyle(Color(uiColor:.systemBackground))
            }
    }
}

#Preview {
    RecordButton(color: .red)
}

Ready to copy and paste directly into any Xcode project running iOS 16.0+.

Recommended Use Cases

  • Dashboard overviews, stats tracking, and metric highlights

Component Details

Category
Buttons
iOS Compatibility
iOS 16.0+
Xcode Version
Xcode 15+
Platform
iOS
License Tier
Free
Themes & Contexts
dashboard
Keywords
buttonstate
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 Store