// // SplitItem.swift // Workouts // // Created by rzen on 7/18/25 at 2:45 PM. // // Copyright 2025 Rouslan Zenetl. All Rights Reserved. // import SwiftUI struct SplitItem: View { @ObservedObject var split: Split var body: some View { VStack { ZStack(alignment: .bottom) { // Golden ratio rectangle (1:1.618) RoundedRectangle(cornerRadius: 12) .fill( LinearGradient( gradient: Gradient(colors: [splitColor, splitColor.darker(by: 0.2)]), startPoint: .topLeading, endPoint: .bottomTrailing ) ) .aspectRatio(1.618, contentMode: .fit) .shadow(radius: 2) GeometryReader { geo in VStack(spacing: 4) { Spacer() // Icon in the center - using dynamic sizing Image(systemName: split.systemImage) .font(.system(size: min(geo.size.width * 0.3, 40), weight: .bold)) .scaledToFit() .frame(maxWidth: geo.size.width * 0.6, maxHeight: geo.size.height * 0.4) .padding(.bottom, 4) // Name at the bottom inside the rectangle Text(split.name) .font(.headline) .lineLimit(1) .padding(.horizontal, 8) Text("\(split.exercisesArray.count) exercises") .font(.caption) .padding(.bottom, 8) } .foregroundColor(.white) .frame(width: geo.size.width, height: geo.size.height) } } } } private var splitColor: Color { Color.color(from: split.color) } }