Improve widget look

main
Laurent 3 years ago
parent f78c2de4a4
commit 863ee350d9
  1. 1
      LaunchWidget/LaunchWidget.swift
  2. 4
      LaunchWidget/LaunchWidgetLiveActivity.swift
  3. 50
      LaunchWidget/SingleTimerView.swift

@ -87,7 +87,6 @@ struct LaunchWidgetEntryView : View {
case .systemSmall, .accessoryInline:
if let timer = entry.timers.first {
CountdownSimpleWidgetView(timer: timer)
.background(Image(timer.imageName))
} else {
DefaultView()
}

@ -16,9 +16,9 @@ struct LiveActivityView: View {
var body: some View {
HStack {
Text(name)
Text(self.name)
Spacer()
Text(endDate, style: .timer)
Text(self.endDate, style: .timer)
.monospaced()
}.padding()
.font(.title)

@ -9,6 +9,43 @@ import SwiftUI
import WidgetKit
import CoreData
struct GradientView: View {
private static let backgroundGradientColors: [Color] = [.red, .purple]
var body: some View {
ZStack {
GeometryReader { reader in
let gradient: Gradient = Gradient(colors: GradientView.backgroundGradientColors)
RadialGradient(gradient: gradient,
center: .init(x: 0.0, y: 0.0),
startRadius: 0, endRadius: reader.size.width)
}
}
}
}
extension View {
var linearGradient: LinearGradient {
LinearGradient(colors: [Color(red: 255, green: 128, blue: 223), Color(red: 255, green: 180, blue: 78)],
startPoint: .topLeading, endPoint: .bottomTrailing)
}
var radialGradient: some View {
RadialGradient(colors: [Color(red: 255, green: 128, blue: 223),
Color(red: 255, green: 86, blue: 61),
Color(red: 255, green: 180, blue: 78)],
center: .bottomLeading,
startRadius: Angle.degrees(0).degrees,
endRadius: Angle.degrees(90).degrees)
}
}
struct SingleTimerView: View {
@Environment(\.widgetFamily) var family: WidgetFamily
@ -30,7 +67,8 @@ struct SingleTimerView: View {
}
.padding()
.monospaced()
.foregroundColor(Color.white)
.foregroundColor(.white)
.background(GradientView())
.font(self.font)
.widgetURL(timer.url)
}
@ -134,16 +172,20 @@ struct MultiCountdownView: View {
}
Spacer()
}
.padding(.horizontal)
.padding(.horizontal, 8.0)
.font(.callout)
.background(Image(timer.imageName))
.background(Color.white.opacity(0.2))
// .background(Image(timer.imageName))
.foregroundColor(.white)
.monospaced()
.cornerRadius(16.0)
}
}
}.padding()
}
.padding()
.background(GradientView())
}
}

Loading…
Cancel
Save