Tabs

Tabs built in SwiftUI for iOS and macOS.

Move and close tabs in UI. Open tabs via binding. Style via closure.

Swift Package

.package(url: "https://github.com/heestand-xyz/Tabs", from: "1.0.0")

Setup

var body: some View {
   
    Tabs(openIDs: $openIDs,
         activeID: $activeID) { id, isActive, size in
        
        if let thing = things.first(where: { $0.id == id }) {
        
            ZStack {
                
                if isActive {
                    Color.accentColor.opacity(0.75)
                } else {
                    Color.primary.opacity(0.1)
                }
                
                Label {
                    Text(thing.name)
                } icon: {
                    Image(systemName: "circle")
                }
                .padding(.horizontal, size.height)
            }
            .help(thing.name)
        }
    }
}

Constructors

public init(
    openIDs: Binding<[UUID]>,
    activeID: Binding<UUID?>,
    spacing: CGFloat = .tabSpacing,
    size: CGSize = .tabSize,
    @ViewBuilder content: @escaping (UUID, Bool, CGSize) -> Content
) { ... }

public init(
    count: Int,
    activeIndex: Binding<Int?>,
    spacing: CGFloat = .tabSpacing,
    size: CGSize = .tabSize,
    @ViewBuilder content: @escaping (Int, Bool, CGSize) -> Content,
    move: @escaping (Int, Int) -> (),
    close: @escaping (Int) -> ()
) { ... }

GitHub

View Github