← Build iOS AppsCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Build iOS Apps
Snapshot Sep 30, 2026 · 23:18 UTC · version 0.1.2
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "swiftui-liquid-glass",
"description": "Implement and review iOS 26+ SwiftUI Liquid Glass UI. Use when adopting Liquid Glass or checking its correctness, performance, and design fit.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 221
},
{
"relative_path": "references/liquid-glass.md",
"size_in_bytes": 8159
}
],
"skill_md_contents": "---\nname: swiftui-liquid-glass\ndescription: Implement and review iOS 26+ SwiftUI Liquid Glass UI. Use when adopting Liquid Glass or checking its correctness, performance, and design fit.\n---\n\n# SwiftUI Liquid Glass\n\n## Overview\nUse 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.\n\n## Workflow Decision Tree\nChoose the path that matches the request:\n\n### 1) Review an existing feature\n- Inspect where Liquid Glass should be used and where it should not.\n- Verify correct modifier order, shape usage, and container placement.\n- Check for iOS 26+ availability handling and sensible fallbacks.\n\n### 2) Improve a feature using Liquid Glass\n- Identify target components for glass treatment (surfaces, chips, buttons, cards).\n- Refactor to use `GlassEffectContainer` where multiple glass elements appear.\n- Introduce interactive glass only for tappable or focusable elements.\n\n### 3) Implement a new feature using Liquid Glass\n- Design the glass surfaces and interactions first (shape, prominence, grouping).\n- Add glass modifiers after layout/appearance modifiers.\n- Add morphing transitions only when the view hierarchy changes with animation.\n\n## Core Guidelines\n- Prefer native Liquid Glass APIs over custom blurs.\n- Use `GlassEffectContainer` when multiple glass elements coexist.\n- Apply `.glassEffect(...)` after layout and visual modifiers.\n- Use `.interactive()` for elements that respond to touch/pointer.\n- Keep shapes consistent across related elements for a cohesive look.\n- Gate with `#available(iOS 26, *)` and provide a non-glass fallback.\n\n## Review Checklist\n- **Availability**: `#available(iOS 26, *)` present with fallback UI.\n- **Composition**: Multiple glass views wrapped in `GlassEffectContainer`.\n- **Modifier order**: `glassEffect` applied after layout/appearance modifiers.\n- **Interactivity**: `interactive()` only where user interaction exists.\n- **Transitions**: `glassEffectID` used with `@Namespace` for morphing.\n- **Consistency**: Shapes, tinting, and spacing align across the feature.\n\n## Implementation Checklist\n- Define target elements and desired glass prominence.\n- Wrap grouped glass elements in `GlassEffectContainer` and tune spacing.\n- Use `.glassEffect(.regular.tint(...).interactive(), in: .rect(cornerRadius: ...))` as needed.\n- Use `.buttonStyle(.glass)` / `.buttonStyle(.glassProminent)` for actions.\n- Add morphing transitions with `glassEffectID` when hierarchy changes.\n- Provide fallback materials and visuals for earlier iOS versions.\n\n## Quick Snippets\nUse these patterns directly and tailor shapes/tints/spacing.\n\n```swift\nif #available(iOS 26, *) {\n Text(\"Hello\")\n .padding()\n .glassEffect(.regular.interactive(), in: .rect(cornerRadius: 16))\n} else {\n Text(\"Hello\")\n .padding()\n .background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 16))\n}\n```\n\n```swift\nGlassEffectContainer(spacing: 24) {\n HStack(spacing: 24) {\n Image(systemName: \"scribble.variable\")\n .frame(width: 72, height: 72)\n .font(.system(size: 32))\n .glassEffect()\n Image(systemName: \"eraser.fill\")\n .frame(width: 72, height: 72)\n .font(.system(size: 32))\n .glassEffect()\n }\n}\n```\n\n```swift\nButton(\"Confirm\") { }\n .buttonStyle(.glassProminent)\n```\n\n## Resources\n- Reference guide: `references/liquid-glass.md`\n- Prefer Apple docs for up-to-date API details, and use web search to consult current Apple Developer documentation in addition to the references above.\n"
}SHA-256: 87285f1d8e81ae5926273e97f0fc111d4d1e0841a390acbd522b91d150f35df0