import SwiftUI /// Ein Titel im Querformat — die Kachelform der Startseite. /// /// Anders als das Poster zeigt sie ein Szenenbild und trägt den Titel unter /// dem Bild, weil Szenenbilder selten Schrift enthalten. public struct LandscapeCard: View { private let title: String private let subtitle: String? private let artworkURL: URL? private let progress: Double? public static let aspectRatio: CGFloat = 16.0 / 9.0 public init(title: String, subtitle: String? = nil, artworkURL: URL?, progress: Double? = nil) { self.title = title self.subtitle = subtitle self.artworkURL = artworkURL self.progress = progress } public var body: some View { VStack(alignment: .leading, spacing: FlixySpacing.snug) { FlixyArtwork(url: artworkURL, aspectRatio: Self.aspectRatio, fallbackSymbol: "play.rectangle") .overlay(alignment: .bottom) { if let progress { WatchProgressBar(fraction: progress) } } .clipShape(.rect(cornerRadius: FlixyRadius.card)) VStack(alignment: .leading, spacing: 2) { Text(title) .font(.flixyCardTitle) .foregroundStyle(Color.flixyTextPrimary) .lineLimit(1) if let subtitle { Text(subtitle) .font(.flixyCaption) .foregroundStyle(Color.flixyTextMuted) .lineLimit(1) } } } .accessibilityElement(children: .combine) } }