import SwiftUI
import PlaygroundSupport
// content view
struct ContentView: View {
let gradient = LinearGradient(
gradient : Gradient(colors: [.white, .yellow, .red]),
startPoint: .topLeading,
endPoint : .bottomTrailing
)
let dashed = StrokeStyle(lineWidth: 3, dash:[8,4])
let borderColor: Color = .gray
// view body
var body: some View {
HStack {
// โญ๏ธ stroke once
ZStack {
Circle()
.stroke(lineWidth:40)
.fill(gradient)
Circle().stroke(style: dashed)
}.border(borderColor)
// โญ๏ธ stroke twice
Circle()
.stroke(lineWidth:40)
.stroke(lineWidth: 20)
.fill(gradient).border(borderColor).opacity(0.9)
// โญ๏ธ stroke 3 times
Circle()
.stroke(lineWidth:40)
.stroke(lineWidth: 20)
.stroke(lineWidth: 10)
.fill(gradient).border(borderColor).opacity(0.9)
}.padding(50).frame(height:300)
}
}
// live view
PlaygroundPage.current.setLiveView(ContentView())
// outline
.overlay(
RoundedRectangle(cornerRadius: 30, style: .continuous)
.stroke()
)
// dash line
.stroke(.black, style: .init(
lineWidth : 5,
lineCap : .round,
lineJoin : .round,
miterLimit: .infinity,
dash : [100, 20],
dashPhase : 10
))
// stroke gradient
.stroke(.linearGradient(
colors : [.white.opacity(0.3), .black.opacity(0.1)],
startPoint: .top,
endPoint : .bottom
)