paint-brush
How to Build a FAB-ulous Button - #30DaysOfSwiftby@vaibhavdwivedi

How to Build a FAB-ulous Button - #30DaysOfSwift

by VaibhavOctober 3rd, 2024
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Today, we're diving into a fundamental UI element: the Floating Action Button (FAB). Let's create a visually appealing & interactive FAB for your SwiftUI-based iOS app.
featured image - How to Build a FAB-ulous Button - #30DaysOfSwift
Vaibhav HackerNoon profile picture

Day 0: Embarking on the Swift & SwiftUI Odyssey


Welcome to the first post in my 30-day exploration of SwiftUI!


Today, we're diving into a fundamental UI element: the Floating Action Button (FAB).


Let's create a visually appealing & interactive FAB for your SwiftUI-based iOS app.


Placement: Positioned at the bottom right corner for easy accessibility.

Icon: A plus (+) symbol to clearly indicate an "Add" action.

Style: A clean, minimalist design the can blend with your UI.


Here's a sneak peek of what we'll achieve:

Screenshot of an app with FAB button


Ready to code? Let's dive in:


Code for implementing FAB button


var body: some View {
    VStack(spacing: 20) {
        // ...
    }
    .frame(maxWidth: .infinity, maxHeight: .infinity)
    .overlay(
        VStack {
            Spacer() // Pushes the button to the bottom
            HStack {
                Spacer() // Pushes the button to the right
                Button(action: {
                    // Button Action here
                }) {
                    Image(systemName: "plus")
                        .foregroundColor(.white)
                        .padding()
                        .background(Color(.green))
                        .clipShape(Circle())
                        .shadow(color: Color(.gray), radius: 2.5)
                }
                .padding() 
            }
        }
        .frame(maxWidth: .infinity, maxHeight: .infinity)
    )
}


What do you think of this FAB design? Share your ideas, suggestions, or improvements.


Happy coding!