‹ 首页

swiftui-liquid-glass

@dimillian · 收录于 1 周前 · 上游提交 4 个月前

Implement, review, or improve SwiftUI features using the iOS 26+ Liquid Glass API. Use when asked to adopt Liquid Glass in new SwiftUI UI, refactor an existing feature to Liquid Glass, or review Liquid Glass usage for correctness, performance, and design alignment.

For you if you are building SwiftUI apps for iOS 26+ and want to adopt Liquid Glass design.

/ 通过 npx 安装 校验哈希
npx oh-my-skill add dimillian/skills/swiftui-liquid-glass
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- dimillian/skills/swiftui-liquid-glass
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify dimillian/skills/swiftui-liquid-glass
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
3846GitHub stars
~726最小装载
~2.3K含声明引用
~2.3K文本包总量
索引托管

怎么用

商店整理自技能原文 · 版本 05ba982 · 表述以原文为准
它做什么

装上后,Claude 能帮你用 iOS 26+ 的 Liquid Glass API 实现、审查或改进 SwiftUI 界面,生成带玻璃效果的代码。

什么时候触发

当你要求为 SwiftUI 界面添加 Liquid Glass 效果、重构现有功能以使用 Liquid Glass,或审查 Liquid Glass 用法时触发。

装好后可以这样说
Claude 会添加 glassEffect 修饰符。
Claude 会检查可用性、修饰符顺序等。
Claude 会将多个玻璃元素包裹在容器中。
技能原文 SKILL.md作者撰写 · MIT · 05ba982

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.

if #available(iOS 26, *) {
    Text("Hello")
        .padding()
        .glassEffect(.regular.interactive(), in: .rect(cornerRadius: 16))
} else {
    Text("Hello")
        .padding()
        .background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 16))
}
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()
    }
}
Button("Confirm") { }
    .buttonStyle(.glassProminent)
Resources
  • Reference guide: references/liquid-glass.md
  • Prefer Apple docs for up-to-date API details.
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。