swiftui-liquid-glass — Codex skill: what it does, how to install
This skill helps build and review SwiftUI Liquid Glass interfaces for iOS 26+. Use it when adopting the API or checking fallbacks, interaction, and design fit.
npx skills add openai/plugins --skill swiftui-liquid-glass -a codexWhat swiftui-liquid-glass does
The skill covers SwiftUI features built with the iOS 26+ Liquid Glass API. It guides the use of native APIs such as glassEffect, GlassEffectContainer, and the .glass and .glassProminent button styles. It also helps decide where glass surfaces, chips, buttons, and cards fit the interface.
Its workflow supports three cases: reviewing an existing feature, improving a glass-based screen, or implementing a new one. The checks include modifier order, consistent shapes, spacing, interactive elements, grouped glass views, and morphing with glassEffectID and @Namespace. Availability should be gated with #available(iOS 26, *), with a non-glass fallback such as .ultraThinMaterial for earlier versions.
Install it when a SwiftUI project needs Liquid Glass implementation or review against Apple’s guidance. It is a poor fit for projects that do not use SwiftUI or target Liquid Glass on iOS 26+.
What it helps with
- review a SwiftUI feature using Liquid Glass
- choose glass surfaces for a new interface
- group multiple glass views with
GlassEffectContainer - add a fallback for earlier iOS versions
- check modifier order and morphing transitions
Example prompts for the agent
- Review this SwiftUI screen for correct iOS 26+ Liquid Glass usage.
- Refactor these cards and buttons to use native Liquid Glass APIs with an earlier-iOS fallback.
- Check whether this view needs `GlassEffectContainer`, then fix the modifier order.
How to install swiftui-liquid-glass
1Skills CLI (Vercel)
npx skills add openai/plugins --skill swiftui-liquid-glass -a codex2Manually: put the files in place
.agents/skills/swiftui-liquid-glass/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openai/plugins --skill swiftui-liquid-glass -a claude-code2Manually: put the files in place
~/.claude/skills/swiftui-liquid-glass/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/swiftui-liquid-glass/
Manually: put the files in place
.cursor/skills/swiftui-liquid-glass/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openai/plugins swiftui-liquid-glass2Manually: put the files in place
.github/skills/swiftui-liquid-glass/SKILL.mdPlatform CLI
gemini skills install https://github.com/openai/plugins --path plugins/build-ios-apps/skills/swiftui-liquid-glassManually: put the files in place
.devin/skills/swiftui-liquid-glass/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set201
The whole set →Similar
Questions about swiftui-liquid-glass
How do I install swiftui-liquid-glass in Codex?
Run npx skills add openai/plugins --skill swiftui-liquid-glass. The skill file will be available at .agents/skills/swiftui-liquid-glass/SKILL.md.
What does swiftui-liquid-glass do?
It helps implement and review SwiftUI interfaces using Liquid Glass for iOS 26+. It checks API usage, modifier order, interaction, grouping, transitions, and fallbacks.
Does swiftui-liquid-glass require iOS 26+?
The skill targets the Liquid Glass API on iOS 26+. For earlier versions, it recommends a fallback using material such as .ultraThinMaterial.
Source text
SKILL.md · MIT
---
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.
---
# 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.
## 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 `GlassEffectContainer` where multiple glass elements appear.
- 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 `GlassEffectContainer` when multiple glass elements coexist.
- Apply `.glassEffect(...)` after layout and visual modifiers.
- Use `.interactive()` for elements that respond to touch/pointer.
- Keep shapes consistent across related elements for a cohesive look.
- Gate with `#available(iOS 26, *)` and provide a non-glass fallback.
## Review Checklist
- **Availability**: `#available(iOS 26, *)` present with fallback UI.
- **Composition**: Multiple glass views wrapped in `GlassEffectContainer`.
- **Modifier order**: `glassEffect` applied after layout/appearance modifiers.
- **Interactivity**: `interactive()` only where user interaction exists.
- **Transitions**: `glassEffectID` used with `@Namespace` for morphing.
- **Consistency**: Shapes, tinting, and spacing align across the feature.
## Implementation Checklist
- Define target elements and desired glass prominence.
- Wrap grouped glass elements in `GlassEffectContainer` and tune spacing.
- Use `.glassEffect(.regular.tint(...).interactive(), in: .rect(cornerRadius: ...))` as needed.
- Use `.buttonStyle(.glass)` / `.buttonStyle(.glassProminent)` for actions.
- Add morphing transitions with `glassEffectID` when hierarchy changes.
- Provide fallback materials and visuals for earlier iOS versions.
## Quick Snippets
Use these patterns directly and tailor shapes/tints/spacing.
```swift
if #available(iOS 26, *) {
Text("Hello")
.padding()
.glassEffect(.regular.interactive(), in: .rect(cornerRadius: 16))
} else {
Text("Hello")
.padding()
.background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 16))
}
```
```swift
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()
}
}
```
```swift
Button("Confirm") { }
.buttonStyle(.glassProminent)
```
## Resources
- Reference guide: `references/liquid-glass.md`
- 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.
© OpenAI · MIT · openai/plugins