Update Swiftui APIs
AvdLee/SwiftUI-Agent-Skill
Scan Apple's SwiftUI documentation for deprecated APIs and update the SwiftUI Expert Skill with modern replacements.
Implement, review, and refactor SwiftUI features using the iOS 26+ Liquid Glass API.
$ npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FloWritesCode/fwc-swiftui-skills swiftui-liquid-glass --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/FloWritesCode/fwc-swiftui-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/swiftui-liquid-glass .claude/skills/swiftui-liquid-glass && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "swiftui-liquid-glass" agent skill from https://github.com/FloWritesCode/fwc-swiftui-skills/tree/main/skills/swiftui-liquid-glass into .claude/skills/swiftui-liquid-glass/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swiftui-liquid-glass", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/FloWritesCode/fwc-swiftui-skills/tree/main/skills/swiftui-liquid-glassType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FloWritesCode/fwc-swiftui-skills swiftui-liquid-glass --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FloWritesCode/fwc-swiftui-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/swiftui-liquid-glass .agents/skills/swiftui-liquid-glass && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "swiftui-liquid-glass" agent skill from https://github.com/FloWritesCode/fwc-swiftui-skills/tree/main/skills/swiftui-liquid-glass into .agents/skills/swiftui-liquid-glass/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swiftui-liquid-glass", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FloWritesCode/fwc-swiftui-skills swiftui-liquid-glass --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FloWritesCode/fwc-swiftui-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/swiftui-liquid-glass .cursor/skills/swiftui-liquid-glass && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "swiftui-liquid-glass" agent skill from https://github.com/FloWritesCode/fwc-swiftui-skills/tree/main/skills/swiftui-liquid-glass into .cursor/skills/swiftui-liquid-glass/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swiftui-liquid-glass", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/FloWritesCode/fwc-swiftui-skills.git --path skills/swiftui-liquid-glass--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FloWritesCode/fwc-swiftui-skills swiftui-liquid-glass --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FloWritesCode/fwc-swiftui-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/swiftui-liquid-glass .gemini/skills/swiftui-liquid-glass && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "swiftui-liquid-glass" agent skill from https://github.com/FloWritesCode/fwc-swiftui-skills/tree/main/skills/swiftui-liquid-glass into .gemini/skills/swiftui-liquid-glass/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swiftui-liquid-glass", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install FloWritesCode/fwc-swiftui-skills swiftui-liquid-glassInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FloWritesCode/fwc-swiftui-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/swiftui-liquid-glass .github/skills/swiftui-liquid-glass && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "swiftui-liquid-glass" agent skill from https://github.com/FloWritesCode/fwc-swiftui-skills/tree/main/skills/swiftui-liquid-glass into .github/skills/swiftui-liquid-glass/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swiftui-liquid-glass", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FloWritesCode/fwc-swiftui-skills swiftui-liquid-glass --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FloWritesCode/fwc-swiftui-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/swiftui-liquid-glass .opencode/skills/swiftui-liquid-glass && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "swiftui-liquid-glass" agent skill from https://github.com/FloWritesCode/fwc-swiftui-skills/tree/main/skills/swiftui-liquid-glass into .opencode/skills/swiftui-liquid-glass/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "swiftui-liquid-glass", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
swiftui-liquid-glassImplement, review, and refactor SwiftUI features using the iOS 26+ Liquid Glass API.
Swiftui Liquid Glass is an agent skill from FloWritesCode/fwc-swiftui-skills. Implement, review, and refactor SwiftUI features using the iOS 26+ Liquid Glass API. Use when adopting Liquid Glass in new UI, converting existing surfaces to glass, reviewing glass usage for correctness, or fixing common Liquid Glass pitfalls (custom blur stacks, scroll views, button shapes, bottom bars, pre-enclosed symbols).
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).
It sits in Mobile, covering iOS development. It works with SwiftUI and iOS. The repository describes itself as: Coding Agent Skills for modern SwiftUI development. The licence is MIT.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3a6c74b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are swift).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developer.apple.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Swiftui Liquid Glass loads about 2.7k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 825 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from FloWritesCode/fwc-swiftui-skills at commit 3a6c74b, republished under its MIT licence (© FloWritesCode). 825 words, ~2,695 tokens.
.claude/skills/swiftui-liquid-glass/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use native Liquid Glass APIs on iOS 26+. Do not recreate the effect with materials, blurs, or shadows.
.buttonStyle(.glass) for non-colored buttons, and .buttonStyle(.glassProminent) for tinted buttons. .glassProminent supports .tint(), but this can only be a color (not a gradient)..buttonBorderShape() instead of applying a shape to the button label by hand..glassEffect(.regular, in: ...) to embed custom Views inside liquid glass containers.GlassEffectContainer when multiple liquid glass elements are next to each other. this View / Container adds a liquid merge effect when the elements grow / touch each other..safeAreaBar(.bottom) instead of a VStack or .overlay(). safeAreaBar adds a subtle blur effect behind its content..sharedBackgroundVisibility(.hidden) on the ToolbarItem, not on the inner view.plus.circle, xmark.circle.fill, or trash.circle) inside Liquid Glass buttons or containers. The glass shape already acts as the container; pre-enclosed symbols create an awkward "double enclosure" (a circle inside a circle). Use base/unenclosed symbols (plus, xmark, trash) and let .buttonBorderShape() or the glass container define the enclosing shape.Need a button?
├─ Neutral / secondary → .buttonStyle(.glass)
└─ Tinted / primary → .buttonStyle(.glassProminent).tint(someColor)
Icon in a glass button / surface?
└─ Plain unenclosed symbol (e.g. "plus", not "plus.circle") — glass provides enclosure
Need a custom non-button surface (chip, badge, card)?
└─ .glassEffect(.regular, in: shape) on the view content
Multiple glass elements nearby?
└─ Wrap in GlassEffectContainer(spacing: ...) { ... }
Fixed bottom toolbar / action bar?
└─ .safeAreaBar(.bottom) { ... } — not VStack + overlay
Toolbar item without glass background?
└─ ToolbarItem { ... }.sharedBackgroundVisibility(.hidden)
Inside ScrollView, List, or Form rows?
└─ Do not use Liquid Glass — use solid/material fallback.glass / .glassProminent, not hand-built capsules..buttonBorderShape() is used instead of clipping the label.GlassEffectContainer..safeAreaBar(.bottom)..sharedBackgroundVisibility(.hidden) on the ToolbarItem.#available(iOS 26, *) and provide fallbacks.glassEffect vs safeAreaBar).GlassEffectContainer.// Secondary / neutral
Button("Cancel") { dismiss() }
.buttonStyle(.glass)
.buttonBorderShape(.capsule)
// Primary / tinted — color only, not gradient
Button("Save") { save() }
.buttonStyle(.glassProminent)
.tint(.blue)
.buttonBorderShape(.roundedRectangle(radius: 12))Do not clip the label yourself:
// ❌ Wrong — shape on label, not the glass button
Button { action() } label: {
Text("Save")
.padding()
.background(.ultraThinMaterial, in: Capsule())
}
// ✅ Right — native glass handles shape and padding
Button("Save") { action() }
.buttonStyle(.glassProminent)
.buttonBorderShape(.capsule)Do not use pre-enclosed SF Symbols inside glass buttons:
// ❌ Wrong — pre-enclosed symbol creates redundant double enclosure
Button { add() } label: {
Image(systemName: "plus.circle.fill")
}
.buttonStyle(.glass)
.buttonBorderShape(.circle)
// ✅ Right — plain symbol, glass shape provides the enclosure
Button { add() } label: {
Image(systemName: "plus")
}
.buttonStyle(.glass)
.buttonBorderShape(.circle)Label("3 items", systemImage: "tray")
.padding(.horizontal, 16)
.padding(.vertical, 10)
.glassEffect(.regular, in: .capsule)Add .interactive() when the surface responds to touch:
Text("Tap me")
.padding()
.glassEffect(.regular.interactive(), in: .rect(cornerRadius: 16))GlassEffectContainer(spacing: 24) {
HStack(spacing: 24) {
ToolButton(icon: "pencil")
ToolButton(icon: "eraser")
ToolButton(icon: "lasso")
}
}
private struct ToolButton: View {
let icon: String
var body: some View {
Image(systemName: icon)
.frame(width: 56, height: 56)
.font(.title2)
.glassEffect(.regular, in: .circle)
}
}Tune spacing to control how close elements must be before the liquid merge kicks in.
ContentView()
.safeAreaBar(.bottom) {
HStack {
Button("Share") { share() }
.buttonStyle(.glass)
Button("Done") { done() }
.buttonStyle(.glassProminent)
}
}Prefer this over pinning with VStack { Spacer(); ... } or .overlay(alignment: .bottom).
On iOS 26+, toolbar items in the same logical grouping share a Liquid Glass background. Hide it when the item should look bare:
.toolbar {
ToolbarItem(placement: .principal) {
Text("Draft")
.font(.headline)
}
.sharedBackgroundVisibility(.hidden)
ToolbarItem(placement: .topBarTrailing) {
Button { add() } label: {
Image(systemName: "plus")
}
}
.sharedBackgroundVisibility(.hidden)
ToolbarItem(placement: .topBarTrailing) {
Button("Save") { save() }
.buttonStyle(.glassProminent)
}
}Apply .sharedBackgroundVisibility(.hidden) on the ToolbarItem, not on the Button or label inside. Hiding the effect places the item in its own grouping, which can change spacing relative to glass-backed neighbors.
Do not put the modifier on the inner view:
// ❌ Wrong — modifier on Button, glass background remains
ToolbarItem(placement: .topBarTrailing) {
Button { add() } label: {
Image(systemName: "plus")
}
.sharedBackgroundVisibility(.hidden)
}
// ✅ Right — modifier on ToolbarItem
ToolbarItem(placement: .topBarTrailing) {
Button { add() } label: {
Image(systemName: "plus")
}
}
.sharedBackgroundVisibility(.hidden)if #available(iOS 26, *) {
content.glassEffect(.regular, in: .rect(cornerRadius: 16))
} else {
content.background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 16))
}| Anti-pattern | Why it fails | Do instead |
|---|---|---|
.background(.ultraThinMaterial) + blur + stroke + shadow | Not Liquid Glass; wrong optics and no merge/morph | .glassEffect(...) or button styles |
Gradient .tint() on .glassProminent | API accepts color only | Solid Color tint, or custom label without glassProminent tint |
Glass on List/ScrollView rows | Scroll + glass = visual glitches, perf cost | Opaque/material rows; glass only on fixed chrome |
| Shape applied to button label | Misses native padding (~13pt) and border rendering | .buttonBorderShape() |
Bottom bar via .overlay | No system blur bar treatment | .safeAreaBar(.bottom) |
| Multiple glass views without container | No merge effect, worse rendering | GlassEffectContainer |
| Glass capsule on toolbar items that should be bare | iOS 26 adds shared glass to toolbar groupings by default | .sharedBackgroundVisibility(.hidden) on the ToolbarItem |
.sharedBackgroundVisibility on inner view | Does not remove toolbar glass background | Apply on ToolbarItem (or other ToolbarContent) |
Pre-enclosed SF Symbols in glass buttons (plus.circle, xmark.circle.fill) | Redundant double enclosure ("circle in circle"); clashes with glass shape | Use unenclosed symbol (plus, xmark) and let .buttonBorderShape provide the container |
.glass or .glassProminent with .buttonBorderShape().glassEffect(.regular, in: ...)GlassEffectContainer.safeAreaBar(.bottom).sharedBackgroundVisibility(.hidden) on ToolbarItem#available(iOS 26, *) with fallback on older OS© FloWritesCode, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/swiftui-liquid-glass of FloWritesCode/fwc-swiftui-skills.
Open the folder on GitHubat commit 3a6c74b
Swiftui Liquid Glass next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Swiftui Liquid Glass this skillFloWritesCode/fwc-swiftui-skills | 407 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Update Swiftui APIsAvdLee/SwiftUI-Agent-Skill | 3.7k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Swiftui Liquid Glassharperreed/dotfiles | 334 | 8 repos | ~941 | Automated safety check: Pass | None | |
| Swiftui Expert Skillomarshahine/HomeClaw | 175 | 4 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Hig Project Contextraintree-technology/hig-doctor | 143 | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Liquid Glass DesignAstraFoundry/KumoApp | 291 | 5 repos | ~2.3k | Automated safety check: Pass | AGPL-3.0 |
AvdLee/SwiftUI-Agent-Skill
Scan Apple's SwiftUI documentation for deprecated APIs and update the SwiftUI Expert Skill with modern replacements.
harperreed/dotfiles
Implement, review, or improve SwiftUI features using the iOS 26+ Liquid Glass API.
omarshahine/HomeClaw
A skill your agent uses when writing, reviewing, or refactoring SwiftUI code for iOS or macOS, including state management, view composition, performance, Liquid Glass adoption, or Instruments .trace…
raintree-technology/hig-doctor
Create or update a shared Apple design context document that other HIG skills use to tailor guidance.
AstraFoundry/KumoApp
iOS 26 Liquid Glass design system — dynamic glass material with blur, reflection, and interactive morphing for SwiftUI, UIKit, and WidgetKit.
garrytan/gstack
Tests a SwiftUI app on a real iPhone connected by USB, reading the Swift source and then looping through screenshot, analysis and action to find bugs.
FloWritesCode/fwc-swiftui-skills
Adapts and reviews SwiftUI apps for iPhone Duo (Xcode 27.1 / iOS 27.1 SDK) and continuously changing window sizes.
Categories
Implement, review, and refactor SwiftUI features using the iOS 26+ Liquid Glass API. Swiftui Liquid Glass is an agent skill from FloWritesCode/fwc-swiftui-skills. Implement, review, and refactor SwiftUI features using the iOS 26+ Liquid Glass API.
Swiftui Liquid Glass fits situations like: adopting Liquid Glass in new UI; converting existing surfaces to glass; reviewing glass usage for correctness; fixing common Liquid Glass pitfalls (custom blur stacks.
Run `npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a claude-code`. Or copy the skill folder (skills/swiftui-liquid-glass in FloWritesCode/fwc-swiftui-skills) into .claude/skills/swiftui-liquid-glass in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a codex`. Or copy the skill folder (skills/swiftui-liquid-glass in FloWritesCode/fwc-swiftui-skills) into .agents/skills/swiftui-liquid-glass in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FloWritesCode/fwc-swiftui-skills --skill swiftui-liquid-glass -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/swiftui-liquid-glass, .gemini/skills/swiftui-liquid-glass, .github/skills/swiftui-liquid-glass and .opencode/skills/swiftui-liquid-glass in your project.
SKILL.md names no scripts, command-line tools or credentials: Swiftui Liquid Glass is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: developer.apple.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Swiftui Liquid Glass is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Swiftui Liquid Glass: Update Swiftui APIs (AvdLee/SwiftUI-Agent-Skill, 3.7k stars), Swiftui Liquid Glass (harperreed/dotfiles, 334 stars), Swiftui Expert Skill (omarshahine/HomeClaw, 175 stars) and Hig Project Context (raintree-technology/hig-doctor, 143 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FloWritesCode (a GitHub user) maintains it in FloWritesCode/fwc-swiftui-skills, which has 407 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 8, 2026.
Source: FloWritesCode/fwc-swiftui-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.