diff --git a/tabatago-swift/TabataGo/Views/Tabs/HomeTab.swift b/tabatago-swift/TabataGo/Views/Tabs/HomeTab.swift index 93ebb3c..cf8c335 100644 --- a/tabatago-swift/TabataGo/Views/Tabs/HomeTab.swift +++ b/tabatago-swift/TabataGo/Views/Tabs/HomeTab.swift @@ -152,7 +152,7 @@ struct FeaturedProgramCard: View { .fill(Theme.zoneGradient(program.bodyZone)) .frame(width: 220, height: 170) .overlay { - ZStack(alignment: .topTrailing) { + ZStack { // ── Bottom scrim for text legibility ── LinearGradient( colors: [.clear, .black.opacity(0.55)], @@ -161,7 +161,7 @@ struct FeaturedProgramCard: View { ) .clipShape(RoundedRectangle(cornerRadius: 20, style: .continuous)) - // ── Level tag — top right ── + // ── Level tag — top left ── Text(program.level.capitalized) .font(.caption2.weight(.bold)) .foregroundStyle(.white) @@ -169,8 +169,22 @@ struct FeaturedProgramCard: View { .padding(.vertical, 5) .background(.ultraThinMaterial.opacity(0.85)) .clipShape(RoundedRectangle(cornerRadius: 8, style: .continuous)) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) .padding(12) + // ── Free badge — top right ── + if program.isFree { + Label(String(localized: L10n.home.free), systemImage: "checkmark.seal.fill") + .font(.caption2.weight(.bold)) + .foregroundStyle(Color(red: 0.45, green: 1.0, blue: 0.65)) + .padding(.horizontal, 9) + .padding(.vertical, 5) + .background(.ultraThinMaterial.opacity(0.85)) + .clipShape(RoundedRectangle(cornerRadius: 8, style: .continuous)) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topTrailing) + .padding(12) + } + // ── Bottom content ── VStack(alignment: .leading, spacing: 6) { Spacer() @@ -184,10 +198,6 @@ struct FeaturedProgramCard: View { HStack(spacing: 10) { Label("\(program.estimatedDuration)m", systemImage: "clock.fill") Label("\(program.estimatedCalories) kcal", systemImage: "flame.fill") - if program.isFree { - Label(String(localized: L10n.home.free), systemImage: "checkmark.seal.fill") - .foregroundStyle(Theme.success) - } } .font(.caption.weight(.semibold)) .foregroundStyle(.white.opacity(0.9))