
🔄 Cross-platform: Works on iOS, macOS, watchOS, tvOS, and visionOS
✨ Native visionOS support: Uses native glass effect on visionOS
🎨 Highly customizable: Adjust colors, materials, shadows, and more
🔷 Multiple shapes: Support for rounded rectangle, circle, and capsule shapes
🧩 SwiftUI integration: Simple ViewModifier implementation
![]() | ![]() | ![]() |
|---|---|---|
| iOS | watchOS I | watchOS II |
![]() | ![]() |
|---|---|
| macOS (Dark) I | macOS (Dark) II |
![]() | ![]() |
|---|---|
| tvOS I | tvOS II |
![]() | ![]() |
|---|---|
| visionOS | iPadOS |
| Platform | iOS | macOS | watchOS | tvOS | visionOS |
|---|---|---|---|---|---|
| Version | 15.0+ | 14.0+ | 10.0+ | 15.0+ | 1.0+ |
| Xcode Latest | Minimum | SVT |
|---|---|---|
| 16.3 | 15.0 | 5.9 |
Open /Demo/Demo.xcodeproj
⚠️ To prevent resolving failed, please rename the root folder from SwiftGlass-xxx to SwiftGlass
Add SwiftGlass to your project through Swift Package Manager
PROJECT > Package Dependencies > +
https://github.com/1998code/SwiftGlass.git 
Or you may add it manually as follows
dependencies:[.package(url:"https://github.com/1998code/SwiftGlass.git", from:"1.0.0")]
import SwiftUI import SwiftGlass structContentView:View{varbody:someView{Text("Hello, Glass!").padding(40).glass() // Use default glass effect }}
VStack{Text("Custom Glass")Image(systemName:"sparkles")}.padding(30).glass( radius:20, color:.blue, material:.regularMaterial, gradientOpacity:0.7, shadowColor:.blue, shadowRadius:10)SwiftGlass supports multiple shapes for the glass effect:
// Circle shape Image(systemName:"heart.fill").frame(width:100, height:100).glass(shape:.circle, color:.pink) // Capsule shape (pill-shaped) Button("Play Music"){}.padding().glass(shape:.capsule, color:.blue) // Rounded rectangle (default) Text("Hello").padding().glass(radius:20, shape:.roundedRectangle(radius:20))SwiftGlass offers extensive customization options:
| Parameter | Type | Default | Description |
|---|---|---|---|
displayMode | .always or .automatic | .always | Controls when the effect is displayed |
radius | CGFloat | 32 | Corner radius of the glass effect (for rounded rectangle) |
shape | .roundedRectangle(radius:), .circle, or .capsule | .roundedRectangle(radius: radius) | Shape of the glass effect |
color | Color | System background color | Base color for gradient and highlights |
colorOpacity | Double | 0.1 | Opacity level for the base color |
material | Material | .ultraThinMaterial | SwiftUI material style |
gradientOpacity | Double | 0.5 | Opacity level for the gradient overlay |
gradientStyle | .normal or .reverted | .normal | Direction style of the gradient |
strokeWidth | CGFloat | 1.5 | Width of the border stroke |
shadowColor | Color | System background color | Color of the drop shadow |
shadowOpacity | Double | 0.5 | Opacity level for the shadow |
shadowRadius | CGFloat? | nil | Blur radius for the shadow |
shadowX | CGFloat | 0 | Horizontal offset of the shadow |
shadowY | CGFloat | 5 | Vertical offset of the shadow |
isInToolbar | Bool | false | Optimizes rendering when used in toolbars (iOS 26+) |
- visionOS: On visionOS, SwiftGlass uses the native
.glassBackgroundEffect()for optimal rendering and system integration - iOS 26+ / macOS 26+: Uses native
.glassEffect()API with enhanced toolbar support - Other platforms: A custom implementation combines materials, gradients, and shadows to achieve a similar effect
- Cross-platform colors: Shadow and base colors automatically adapt to system background colors on each platform
Contributions to SwiftGlass are welcome!
- To report bugs or request features, please open an issue on GitHub
- When submitting a pull request, please follow the coding style of the project
MIT. Read the LICENSE file for details.
This doc is also available in:
English | 繁中 / 简中 / 粵語 | 日本語 | 한국어
Please feel free to open a pull request and add new language(s) or fix any typos/mistakes.










