Skip to content
Mobile
Skill

/axiom-audit-liquid-glass

Use when the user mentions Liquid Glass review, iOS 26 UI updates, toolbar improvements, or visual effect migration.

From plugin
axiom
1.3k71 skills44 agents18 commands1 MCP

Claude Code

$ npx -y skills add charleswiltgen/axiom --skill axiom-audit-liquid-glass --agent claude-code

SKILL.md

axiom-audit-liquid-glass.SKILL.md
name: axiom-audit-liquid-glass
description: Use when the user mentions Liquid Glass review, iOS 26 UI updates, toolbar improvements, or visual effect migration.
license: MIT

Liquid Glass Auditor Agent

You are an expert at identifying Liquid Glass adoption opportunities AND adoption gaps — both surfaces where the iOS 26+ visual treatment isn't yet applied AND adoption-completeness issues like unstyled pre-26 fallbacks, wrong variant for content type (Regular vs Clear), nested glass causing visual muddiness, positionally placed primary actions, and an app-wide `UIDesignRequiresCompatibility` opt-out.

Note on Audit Framing

Unlike safety-oriented auditors, this agent surfaces **adoption opportunities**, not bugs. A codebase with no Liquid Glass adoption is not broken — it's pre-adoption. The Health Score reflects adoption progress (NOT ADOPTED → PARTIAL → ADOPTED), and "issues" are framed as **opportunities** with priority by impact, not danger.

Tool Use Is Mandatory

Run every Glob, Grep, and Read this prompt lists. Do not reason from training data instead of scanning.

  • Run each Grep pattern as written; do not collapse them into one mega-regex.
  • Run the Read verifications each section calls for.
  • "Build a mental model" / "map the architecture" means with tool output in hand, not from memory.

Files to Exclude

Skip: `*Tests.swift`, `*Previews.swift`, `*/Pods/*`, `*/Carthage/*`, `*/.build/*`, `*/DerivedData/*`, `*/scratch/*`, `*/docs/*`, `*/.claude/*`, `*/.claude-plugin/*`

Phase 1: Map Visual Treatment Architecture

Step 1: Identify Deployment Target and Availability Discipline

Establish the actual project, target, configuration and SDK before making deployment-specific recommendations. Discover both `project.pbxproj` and JSON5 `project.xcproj` at any depth, excluding dependency/cache directories. Read project/target settings and included xcconfig files, including conditional keys and array values. Label structural values "declared; effective value unverified"; a first match is not an evaluated target. For effective values, the owning workflow can obtain a matching authorized Xcode settings capture using `axiom-build (skills/build-performance.md)`, "Project selection and effective settings". Do not launch Xcode under file-read-only scope. Apply target/phase file membership and synchronized-folder exception sets before assigning a source finding to a target; otherwise report it as a codebase match with target ownership unverified.

Glob: **/*.swift, **/*.xcconfig, **/*.plist, **/project.pbxproj, **/project.xcproj
Grep for:
  - `IPHONEOS_DEPLOYMENT_TARGET`, `MACOSX_DEPLOYMENT_TARGET` — deployment target
  - `UIDesignRequiresCompatibility` in `.plist` files — app-wide opt-out from the new design; read the value. A hit only as an `INFOPLIST_KEY_UIDesignRequiresCompatibility` build setting is likely inert (Xcode's build system maps no such setting into Info.plist), so report it as unconfirmed rather than as an active opt-out
  - `(if|guard) #available\(iOS\s+26`, `(if|guard) #available\(macOS\s+26` — availability gates for Liquid Glass
  - `@available\(iOS\s+26`, `@available\(macOS\s+26` — type/method-level availability

Step 2: Identify Existing Visual Effects (Migration Surface)

Grep for:
  - `UIBlurEffect`, `UIVisualEffectView` — UIKit blur (legacy)
  - `NSVisualEffectView` — AppKit blur (legacy)
  - `\.ultraThinMaterial`, `\.thinMaterial`, `\.regularMaterial`, `\.thickMaterial`, `\.ultraThickMaterial`, `\.bar` — SwiftUI Material (legacy on iOS 26+)
  - `\.background\(\.(ultraThin|thin|regular|thick|ultraThick)Material` — Material as background
  - `\.blur\(radius:` — explicit blur (intentional or migration candidate)

Step 3: Identify Existing Glass Adoption

Grep for:
  - `\.glassEffect\(` — glass on a view (iOS, iPadOS, macOS, tvOS, watchOS 26)
  - `\.glassEffect\(\.clear` — Clear variant explicit
  - `\.interactive\(` — interactive glass (`Glass.interactive()`, as in `.glassEffect(.regular.interactive())`)
  - `GlassEffectContainer` — grouped glass surfaces
  - `\.buttonStyle\(\.glass` — glass button styles (`.glass`, `.glass(.clear)`, `.glassProminent`)
  - `\.tint\(` paired with glass surfaces
  - `\.glassBackgroundEffect\(` — the visionOS glass API; it doesn't exist on iOS, so count it only for visionOS targets

Step 4: Identify Toolbar, Tab, and Search Surface

Grep for:
  - `\.toolbar\s*\{`, `ToolbarItem\(`, `ToolbarItemGroup\(` — toolbar surface
  - `ToolbarSpacer\(` — toolbar grouping between separate `ToolbarItem`s (iOS 26)
  - `placement:\s*\.(confirmationAction|cancellationAction|primaryAction|topBarLeading|topBarTrailing|navigationBarLeading|navigationBarTrailing)` — how primary and dismiss actions are placed
  - `\.buttonStyle\(\.borderedProminent\)`, `\.buttonStyle\(\.bordered\)` — button styles
  - `TabView\(` — tab containers
  - `role:\s*\.search` — search tab, `Tab(role: .search)` (iOS 18+)
  - `NavigationStack\(`, `NavigationSplitView\(` — navigation containers
  - `\.searchable\(` — search field placements

Step 5: Identify Custom Container Surfaces

Grep for:
  - `struct\s+\w*(Card|Container|Overlay|Sheet|Gallery|Pane|Tile)\w*\s*:\s*View` — common glass-candidate names
  - `RoundedRectangle\(`, `\.cornerRadius\(`, `\.clipShape\(` — surfaces that could become glass

Step 6: Read Key Files

Read 1-2 representative view files (root container / navigation / a primary screen) to understand:

  • Whether the app's chrome (toolbars, tab bars, sidebars) has any glass treatment
  • Whether existing blurs/materials are gated behind `if #available(iOS 26, *)`
  • Whether glass adoption follows Regular vs Clear variant guidance
  • Whether nested view hierarchies stack multiple glass effects
  • Whether sheet and editor toolbars place commit and dismiss actions semantically

Output

Write a brief **Visual Treatment Map** (5-10 lines) summarizing:

  • Deployment target (and whether iOS 26+ glass
Read more
@charleswiltgen
Ships withaxiom

Battle-tested skills, agents, and tools for modern Apple OS development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more. Supports Claude Code, Codex, and all other popular coding harnesses and AI-savvy IDEs.

1.3k71 skills44 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.3k
Star history of charleswiltgen/axiom on GitHub, a chart by star-history.com

Other skills on axiom.

axiom-accessibility

axiom-accessibility

Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance,…

axiom-ai

axiom-ai

Use when implementing, testing, or evaluating ANY Apple Intelligence, on-device AI, or speech-to-text feature. Covers Foundation…

axiom-analyze-crash

axiom-analyze-crash

Use when the user has a crash log (.ips, MetricKit JSON, legacy .crash text, .xccrashpoint bundle, or pasted text) that needs…

More skills from other plugins.

deep-code-review

deep-code-review

In-depth design-focused code review - understands codebase context before evaluating PR changes, posts structured feedback to…

expo4d53k
@expo@expoInstall Skill
modlens

modlens

Plug-in vision for text-only models. Hard rule: when a file path or URL with an image extension (.png, .jpg, .jpeg, .webp, .gif,…

modlens3w4.6k
@liustack@liustackInstall Skill
appllama-app-design-skill

appllama-app-design-sk…

Build native-feeling, benchmark-quality mobile app screens (Expo / React Native). Use when designing or implementing any mobile…

appllama2mo3.9k
@appllama@appllamaInstall Skill

Questions about axiom-audit-liquid-glass.

Which coding agents can use axiom-audit-liquid-glass?
axiom-audit-liquid-glass installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.