GlowGetter provides two implementations for adding glow effects:
| Target | API | App Store Safe | Method |
|---|---|---|---|
GlowGetter |
Public | Yes | Metal-rendered overlay |
GlowGetterPrivate |
Private | No | CAFilter EDR (true HDR brightness) |
dependencies: [
.package(url: "https://github.com/Aeastr/GlowGetter.git", from: "2.0.0")
]Add the target you need:
.target(
name: "YourTarget",
dependencies: [
.product(name: "GlowGetter", package: "GlowGetter"),
// OR
.product(name: "GlowGetterPrivate", package: "GlowGetter")
]
)Metal-powered overlay effect. Safe for App Store.
import GlowGetter
// Basic glow
Color.orange
.glow(0.8)
// With shape clipping
Color.orange
.clipShape(Circle())
.glow(0.8, Circle())Warning
Uses private CAFilter APIs. May be rejected by App Store review, may break in future iOS updates. We are not responsible for any consequences of using this in your applications. Use at your own risk.
True HDR brightness using the edrGainMultiply filter. Only visible on HDR-capable displays.
import GlowGetterPrivate
// EDR glow (values typically 2.0-10.0)
Color.orange
.glowEDR(4.0)To preview: Use My Mac | Mac Catalyst if your Mac supports HDR—simulators won't show the effect.
Uses a Metal layer to render a glow overlay blended with the underlying view. The overlay is applied via GlowRenderView wrapped in the .glow() modifier.
Wraps the view in a UIViewRepresentable and applies CAFilter's edrGainMultiply to the layer. Private API strings are obfuscated at compile-time using Obfuscate.
GlowGetter (Public): Thanks to Jordi Bruin and Ben Harraway for their insights on the Metal rendering. Adapts code built for Vivid.
GlowGetterPrivate: Thanks to Seb Vidal for the CAFilter implementation.
Contributions welcome. See the Contributing Guide for details.
MIT. See LICENSE for details.

