Antigravity-awesome-skills swiftui-liquid-glass
Implement or review SwiftUI Liquid Glass APIs with correct fallbacks and modifier order.
install
source · Clone the upstream repo
git clone https://github.com/sickn33/antigravity-awesome-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sickn33/antigravity-awesome-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/antigravity-awesome-skills-claude/skills/swiftui-liquid-glass" ~/.claude/skills/sickn33-antigravity-awesome-skills-swiftui-liquid-glass && rm -rf "$T"
manifest:
plugins/antigravity-awesome-skills-claude/skills/swiftui-liquid-glass/SKILL.mdsource content
SwiftUI Liquid Glass
Overview
Use this skill to build or review SwiftUI features that fully align with the iOS 26+ Liquid Glass API. Prioritize native APIs (
glassEffect, GlassEffectContainer, glass button styles) and Apple design guidance. Keep usage consistent, interactive where needed, and performance aware.
When to Use
- When the user wants to adopt or review Liquid Glass in SwiftUI UI.
- When you need correct API usage, fallback handling, or modifier ordering for Liquid Glass.
Workflow Decision Tree
Choose the path that matches the request:
1) Review an existing feature
- Inspect where Liquid Glass should be used and where it should not.
- Verify correct modifier order, shape usage, and container placement.
- Check for iOS 26+ availability handling and sensible fallbacks.
2) Improve a feature using Liquid Glass
- Identify target components for glass treatment (surfaces, chips, buttons, cards).
- Refactor to use
where multiple glass elements appear.GlassEffectContainer - Introduce interactive glass only for tappable or focusable elements.
3) Implement a new feature using Liquid Glass
- Design the glass surfaces and interactions first (shape, prominence, grouping).
- Add glass modifiers after layout/appearance modifiers.
- Add morphing transitions only when the view hierarchy changes with animation.
Core Guidelines
- Prefer native Liquid Glass APIs over custom blurs.
- Use
when multiple glass elements coexist.GlassEffectContainer - Apply
after layout and visual modifiers..glassEffect(...) - Use
for elements that respond to touch/pointer..interactive() - Keep shapes consistent across related elements for a cohesive look.
- Gate with
and provide a non-glass fallback.#available(iOS 26, *)
Review Checklist
- Availability:
present with fallback UI.#available(iOS 26, *) - Composition: Multiple glass views wrapped in
.GlassEffectContainer - Modifier order:
applied after layout/appearance modifiers.glassEffect - Interactivity:
only where user interaction exists.interactive() - Transitions:
used withglassEffectID
for morphing.@Namespace - Consistency: Shapes, tinting, and spacing align across the feature.
Implementation Checklist
- Define target elements and desired glass prominence.
- Wrap grouped glass elements in
and tune spacing.GlassEffectContainer - Use
as needed..glassEffect(.regular.tint(...).interactive(), in: .rect(cornerRadius: ...)) - Use
/.buttonStyle(.glass)
for actions..buttonStyle(.glassProminent) - Add morphing transitions with
when hierarchy changes.glassEffectID - Provide fallback materials and visuals for earlier iOS versions.
Quick Snippets
Use these patterns directly and tailor shapes/tints/spacing.
if #available(iOS 26, *) { Text("Hello") .padding() .glassEffect(.regular.interactive(), in: .rect(cornerRadius: 16)) } else { Text("Hello") .padding() .background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 16)) }
GlassEffectContainer(spacing: 24) { HStack(spacing: 24) { Image(systemName: "scribble.variable") .frame(width: 72, height: 72) .font(.system(size: 32)) .glassEffect() Image(systemName: "eraser.fill") .frame(width: 72, height: 72) .font(.system(size: 32)) .glassEffect() } }
Button("Confirm") { } .buttonStyle(.glassProminent)
Resources
- Reference guide:
references/liquid-glass.md - Prefer Apple docs for up-to-date API details.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.