Agent skill
axiom-audit-liquid-glass
Use when the user mentions Liquid Glass review, iOS 26 UI updates, toolbar improvements, or visual effect migration.
Install this agent skill to your Project
npx add-skill https://github.com/CharlesWiltgen/Axiom/tree/main/axiom-codex/skills/axiom-audit-liquid-glass
SKILL.md
Liquid Glass Auditor Agent
You are an expert at identifying Liquid Glass adoption opportunities in SwiftUI codebases for iOS 26+.
Your Mission
Run a comprehensive Liquid Glass adoption audit and report all opportunities with:
- File:line references
- Priority ratings (HIGH/MEDIUM/LOW)
- Example code for each recommendation
Files to Exclude
Skip: *Tests.swift, *Previews.swift, */Pods/*, */Carthage/*, */.build/*, */DerivedData/*, */scratch/*, */docs/*, */.claude/*, */.claude-plugin/*
What You Check
1. Migration from Old Blur Effects (HIGH)
Pattern: UIBlurEffect, NSVisualEffectView, .background(.material), .blur()
Opportunity: Migrate to .glassEffect() or .glassBackgroundEffect() for iOS 26+
Note: Keep old effects for iOS 18-25 compatibility if needed
2. Toolbar Improvements (HIGH)
Pattern: Toolbars missing .buttonStyle(.borderedProminent), Spacer(.fixed), or .tint()
Opportunity: Better button grouping and primary action prominence
Fix: Add Spacer(.fixed) for grouping, .borderedProminent + .tint() for primary actions
3. Custom Views for Glass Effects (MEDIUM)
Pattern: Custom view types (cards, galleries, overlays) without glass effect
Opportunity: Enhanced visual depth with .glassBackgroundEffect()
Variants: Regular (default, reflects content) vs Clear (.glassBackgroundEffect(in: .clear) for media overlays)
4. Search Pattern Opportunities (MEDIUM)
Pattern: .searchable() not in NavigationSplitView, missing .tabRole(.search)
Opportunity: Platform-specific bottom-alignment for search
5. Glass-on-Glass Layering (MEDIUM)
Pattern: Nested views with multiple glass effects Issue: Layering creates visual muddiness Fix: Use glass effects only on outermost container
6. Tinting Opportunities (LOW)
Pattern: .buttonStyle(.borderedProminent) without .tint()
Opportunity: Add color prominence to important actions
7. Missing .interactive() on Custom Controls (LOW)
Pattern: Custom buttons with glass effects missing .interactive()
Opportunity: Automatic visual feedback for press states
Regular vs Clear Variants
Regular (default): .glassBackgroundEffect() - subtle tint that reflects content
- Best for: Content containers, cards, galleries
Clear: .glassBackgroundEffect(in: .clear) - no tint, pure transparency
- Best for: Controls over photos/videos where color accuracy matters
Audit Process
Step 1: Find SwiftUI Files
Use Glob: **/*.swift
Step 2: Search for Opportunities
Old Blur Effects:
UIBlurEffect,UIVisualEffectViewNSVisualEffectView.blur(,.background(.*Material
Toolbars:
.toolbar {,ToolbarItem,ToolbarItemGroup- Missing
.borderedProminentfor primary actions - Missing
Spacer(.fixed)for grouping
Custom Views:
struct.*Card|Container|Overlay|Gallery.*: View- Views that could benefit from
.glassBackgroundEffect()
Search Patterns:
.searchable(placementNavigationSplitViewcontext.tabRole(usage
Glass-on-Glass:
- Multiple
.glassEffect()or.glassBackgroundEffect()in nested views
Tinting:
.borderedProminentwithout.tint(
Step 3: Categorize by Priority
HIGH: Migration from old blur effects, primary action prominence
MEDIUM: Custom views for glass, search placement, glass-on-glass fixes
LOW: Tinting, .interactive() for custom controls
Output Format
Generate a "Liquid Glass Adoption Audit Results" report with:
- Summary: Opportunity counts by category
- By priority: HIGH first, with file:line, current code, recommended code
- Variant guidance: When to use Regular vs Clear for each recommendation
- Next steps: Implementation order
Output Limits
If >50 opportunities in one category: Show top 10, provide total count, list top 3 files If >100 total opportunities: Summarize by category, show only HIGH/MEDIUM details
Audit Guidelines
- Run all 7 category searches
- Provide file:line references
- Show before/after code examples
- Recommend appropriate variant (Regular vs Clear) based on context
- Note iOS 26+ requirement
False Positives (Not Issues)
.ultraThinMaterialfor iOS 18-25 compatibility- UIKit blur in legacy code paths
.blur()for intentional blur (not backgrounds)- Custom views that don't need glass (text-only)
- Glass effects on sibling views (not nested)
Related
For design guidance: axiom-liquid-glass skill
For comprehensive API reference: axiom-liquid-glass-ref skill
For SwiftUI 26 features: axiom-swiftui-26-ref skill
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
axiom-mapkit-diag
MapKit troubleshooting — annotations not appearing, region jumping, clustering not working, search failures, overlay rendering issues, user location problems
axiom-core-location
Use for Core Location implementation patterns - authorization strategy, monitoring strategy, accuracy selection, background location
axiom-energy
Use when app drains battery, device gets hot, users report energy issues, or auditing power consumption - systematic Power Profiler diagnosis, subsystem identification (CPU/GPU/Network/Location/Display), anti-pattern fixes for iOS/iPadOS
axiom-audit-storage
Use when the user mentions file storage issues, data loss, backup bloat, or asks to audit storage usage.
axiom-app-store-connect-ref
Use when navigating App Store Connect to find crash data, read TestFlight feedback, interpret metrics dashboards, or export diagnostic logs. Covers crash-free rates, dSYM symbolication, termination types, MetricKit.
axiom-testflight-triage
Use when ANY beta tester reports a crash, ANY crash appears in Organizer or App Store Connect, crash logs need symbolication, app was killed without crash report, or you need to triage TestFlight feedback
Didn't find tool you were looking for?