> 16) / 255.0
let green = Double((hex & 0xff00) >> 8) / 255.0
let blue = Double((hex & 0xff) >> 0) / 255.0
self.init(.sRGB, red: red, green: green, blue: blue, opacity: opacity)
}
}">
> 16) / 255.0
let green = Double((hex & 0xff00) >> 8) / 255.0
let blue = Double((hex & 0xff) >> 0) / 255.0
self.init(.sRGB, red: red, green: green, blue: blue, opacity: opacity)
}
}">
> 16) / 255.0
let green = Double((hex & 0xff00) >> 8) / 255.0
let blue = Double((hex & 0xff) >> 0) / 255.0
self.init(.sRGB, red: red, green: green, blue: blue, opacity: opacity)
}
}">

Text("Hello!")
.foregroundColor(Color(hex: 0x2a8ffa))
.font(Font.system(size: 20, weight: .bold))
.modifier(NeonStyleModifier(color: .init(hex: 0xfc6a26)))
extension Color {
init(hex: Int, opacity: Double = 1.0) {
let red = Double((hex & 0xff0000) >> 16) / 255.0
let green = Double((hex & 0xff00) >> 8) / 255.0
let blue = Double((hex & 0xff) >> 0) / 255.0
self.init(.sRGB, red: red, green: green, blue: blue, opacity: opacity)
}
}
struct NeonStyleModifier: ViewModifier {
let color: Color
func body(content: Content) -> some View {
let blurRadius: CGFloat = 10
return ZStack {
content
content
.blur(radius: blurRadius)
}
.padding(10)
.overlay(
RoundedRectangle(cornerRadius: 16, style: .continuous)
.stroke(color, lineWidth: 3)
)
.background(
RoundedRectangle(cornerRadius: 16, style: .continuous)
.stroke(color, lineWidth: 3)
.brightness(0.1)
.blur(radius: blurRadius)
)
.background(
RoundedRectangle(cornerRadius: 16, style: .continuous)
.stroke(color, lineWidth: 3)
.brightness(0.1)
.blur(radius: blurRadius)
.opacity(0.2)
)
.compositingGroup()
}
}

Other Notes
Untitled