Skip to content

1998code/SwiftGlass

Repository files navigation

GK

SwiftGlass

Stable Beta Build Test Swift Version

Platforms License

SwiftGlass@3x

Features

🔄 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
🧩 SwiftUI integration: Simple ViewModifier implementation

Gallery

Screenshot 2025-04-20 at 4 16 55 PM image image
iOS watchOS I watchOS II
image image
macOS (Dark) I macOS (Dark) II
image image
tvOS I tvOS II
image image
visionOS iPadOS

Tested Platforms and Environment

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

image

Project Demo (Quick Starter)

Open /Demo/Demo.xcodeproj

⚠️ To prevent resolving failed, please rename the root folder from SwiftGlass-xxx to SwiftGlass

Installation (on your project)

Swift Package Manager

Add SwiftGlass to your project through Swift Package Manager

PROJECT > Package Dependencies > +

https://github.com/1998code/SwiftGlass.git
Screenshot 2025-04-20 at 4 29 46 PM

Or you may add it manually as follows

dependencies: [
    .package(url: "https://github.com/1998code/SwiftGlass.git", from: "1.0.0")
]

Usage

Basic Usage (View / Button / Anywhere)

Screenshot 2025-04-20 at 2 41 51 PM
import SwiftUI
import SwiftGlass

struct ContentView: View {
    var body: some View {
        Text("Hello, Glass!")
            .padding(40)
            .glass() // Use default glass effect
    }
}

Custom Glass Effect

Screenshot 2025-04-20 at 2 40 11 PM
VStack {
    Text("Custom Glass")
    Image(systemName: "sparkles")
}
.padding(30)
.glass(
    radius: 20,
    color: .blue,
    material: .regularMaterial,
    gradientOpacity: 0.7,
    shadowColor: .blue,
    shadowRadius: 10
)

Customization

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
color Color .white Base color for gradient and highlights
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 .white 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

Platform-Specific Notes

  • visionOS: On visionOS, SwiftGlass uses the native .glassBackgroundEffect() for optimal rendering and system integration
  • Other platforms: A custom implementation combines materials, gradients, and shadows to achieve a similar effect

Contributing

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

License

MIT. Read the LICENSE file for details.

Translation

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.