liquid-glass

SKILL.md

Liquid Glass Design System

Apple's new material design combining glass optics with fluid interaction. Available across all platforms.

Quick Reference — SwiftUI

// Basic glass effect (capsule shape by default)
view.glassEffect()

// Custom shape
view.glassEffect(in: .rect(cornerRadius: 16))
view.glassEffect(in: .circle)

// Tinted glass (suggests prominence)
view.glassEffect(.regular.tint(.blue))

// Interactive (responds to touch/pointer)
view.glassEffect(.regular.interactive())

// Button styles
Button("Primary") { }.buttonStyle(.glassProminent)
Button("Secondary") { }.buttonStyle(.glass)

// Container for multiple glass views (required for merging/performance)
GlassEffectContainer(spacing: 40) {
    HStack(spacing: 40) {
        ItemView().glassEffect()
        ItemView().glassEffect()
    }
}

// Morphing transitions between glass views
@Namespace var ns
view.glassEffect().glassEffectID("myID", in: ns)

// Unite multiple views into single glass shape
view.glassEffect().glassEffectUnion(id: "group1", namespace: ns)

Critical Constraints

  • ❌ DO NOT apply multiple glass effects without GlassEffectContainer → ✅ Wrap in GlassEffectContainer for performance and merging
  • ❌ DO NOT forget .interactive() on buttons/controls → ✅ Add .interactive() for touch/pointer response
  • ❌ DO NOT use heavy tint alpha values → ✅ Use subtle tints (0.2–0.3 alpha) for glass aesthetic
  • ❌ DO NOT apply .glassEffect() before layout modifiers → ✅ Apply after .frame(), .padding(), etc.
  • ❌ DO NOT use old NSVisualEffectView with .material for new designs → ✅ Use NSGlassEffectView (AppKit) or .glassEffect() (SwiftUI)

Reference Index

File When to Use
references/swiftui-glass.md SwiftUI glass effects, containers, morphing, button styles
references/appkit-glass.md AppKit NSGlassEffectView, NSGlassEffectContainerView, hover effects
references/uikit-glass.md UIKit UIGlassEffect, scroll edge effects, container effects
references/widgetkit-glass.md Widget accented rendering mode, widgetAccentable modifier

Decision Tree

Building SwiftUI interface?
├── Single glass element → .glassEffect() on the view
├── Multiple glass elements → Wrap in GlassEffectContainer
├── Need morphing transitions → Use @Namespace + .glassEffectID()
├── Grouping elements into one shape → Use .glassEffectUnion()
└── Buttons → .buttonStyle(.glass) or .buttonStyle(.glassProminent)

Building AppKit interface?
├── Single glass element → NSGlassEffectView with contentView
├── Multiple glass elements → NSGlassEffectContainerView
└── Hover/interaction → NSTrackingArea + animator().tintColor

Building Widgets?
├── Support tinted/clear appearance → Check widgetRenderingMode
├── Mark accent content → .widgetAccentable()
└── Custom glass in widget → .glassEffect() (same as SwiftUI)

Common Mistakes & Fixes

Mistake Fix
Glass views don't merge when close Wrap in GlassEffectContainer with appropriate spacing
No animation when glass appears/disappears Use withAnimation { } + glassEffectID
Glass button doesn't respond to hover Add .interactive() to the glass effect
Too many glass effects = performance drop Limit glass effects; use GlassEffectContainer
Widget looks wrong in tinted mode Check widgetRenderingMode environment, use widgetAccentable()

References

Weekly Installs
6
First Seen
Feb 14, 2026
Installed on
opencode6
codex6
cursor6
gemini-cli5
claude-code5
github-copilot5