소스 정보
- 저장소
- tomevault-io/skills-registry
- 최근 소스 활동
- 2026년 7월 3일 19:45
- 감지된 SKILL.md 언어
- 영어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/tomevault-io/skills-registry --skill swift-liquid-glass-design-system-ios26명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
| Use when this capability is needed.
> Use when this capability is needed.
Review architecture and API design for the vfs-s3 project. Use when the user mentions @architect, asks to review an issue's design, discuss module boundaries, API shape, or architectural decisions for vfs-s3. Also trigger when the user wants to create an ADR (Architecture Decision Record) or evaluate a technical approach for the project. Intended for dispatch from Codex automation or Claude routines; GitHub trigger phrase: @vfs-s3-bot please prepare design doc Use when this capability is needed.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | swift-liquid-glass-design-system-ios26 |
| description | >- Use when this capability is needed. |
Liquid Glass is the adaptive material Apple introduced at WWDC25 for controls and navigational
elements across iOS / iPadOS / macOS 26 and the rest of the 26 family. In SwiftUI you reach it
through two canonical entry points — the glassEffect(_:in:) view modifier and the
GlassEffectContainer view — plus a small set of variants and an id-based morph mechanism. This
skill applies it the way Apple's
Applying Liquid Glass to custom views
article and the
Landmarks sample
prescribe — not by hand-rolling .ultraThinMaterial blurs.
.ultraThinMaterial / .regularMaterial blurs imitating glass — replace
with the real glassEffect.Announce on invoke: "Using swift-liquid-glass-design-system-ios26 to apply the system glass material per Apple's custom-views guidance."
Do not reach for this when the built-in components already provide glass for free — standard
TabView, .toolbar, sheets, and NavigationStack chrome render Liquid Glass automatically on
iOS 26. Adopt the new component APIs first; use glassEffect for custom views the system
doesn't style for you.
| API | Signature (verified) | Use |
|---|---|---|
glassEffect(_:in:) | nonisolated func glassEffect(_ glass: Glass = .regular, in shape: some Shape = DefaultGlassEffectShape()) -> some View | Apply glass to a custom view, clipped to a shape |
GlassEffectContainer | GlassEffectContainer(spacing:) { … } | Group glass shapes so they can sample/morph together |
Glass | struct Glass — variants .regular (default), .clear, .identity | The material configuration |
Glass.interactive(_:) | func interactive(_ isEnabled: Bool = true) -> Glass | Make custom glass respond to tap/press |
glassEffectID(_:in:) | nonisolated func glassEffectID(_ id: (some Hashable & Sendable)?, in namespace: Namespace.ID) -> some View | Tag glass shapes so SwiftUI morphs them across transitions |
GlassButtonStyle / GlassProminentButtonStyle | .buttonStyle(.glass) / .buttonStyle(.glassProminent) | Glass on standard Buttons without manual glassEffect |
GlassEffectTransition | type | Customize the morph transition between tagged shapes |
DefaultGlassEffectShape | type | The default clip shape glassEffect uses when none given |
Note:
glassEffectIDtakes(some Hashable & Sendable)?— the id is optional and must beSendable. Passing a non-Sendableid, or forgetting the optionality, won't match Apple's signature.
Glass cannot sample other glass. Two .glassEffect() views that overlap or need to interact
must live inside a single GlassEffectContainer. Nesting glass without a shared container
produces broken, doubled visuals (a well-known iOS 26 pitfall). One container per cluster of
glass that belongs together; don't wrap your whole view tree in one giant container either.
glassEffectID(_:in:) only morphs shapes whose ids share the same Namespace.ID and
live in the same GlassEffectContainer. Source and destination across different containers
or namespaces will not animate into each other — they'll cross-fade or pop.
.clear is opt-in legibility riskGlass.regular is legible by default. Glass.clear is more transparent and, per Apple HIG,
needs an explicit contrast strategy (a dimming layer, a shadow, or content-aware tinting) on
busy backgrounds. Default to .regular; reach for .clear only when you control what's behind it.
Every API here is iOS 26.0+ (and the 26-family equivalents). There is no shim for iOS 17/18/25. Guard and provide a non-glass fallback:
if #available(iOS 26, *) {
content.glassEffect(.regular, in: .capsule)
} else {
content.background(.regularMaterial, in: .capsule) // graceful pre-26 fallback
}
Liquid Glass must respect the system settings. Honor:
glassEffectID morphs.Maintain WCAG 4.5:1 contrast for text over glass. Read these via @Environment
(accessibilityReduceTransparency, accessibilityReduceMotion, colorSchemeContrast).
A toolbar of two buttons that share a container so they morph and don't double-sample. Verified against the signatures above:
struct GlassToolbar: View {
@Namespace private var glassNS
@Environment(\.accessibilityReduceTransparency) private var reduceTransparency
var body: some View {
GlassEffectContainer(spacing: 12) {
HStack(spacing: 12) {
Button("Save") {}
.glassEffect(reduceTransparency ? .identity : .regular.interactive(),
in: .capsule)
.glassEffectID("save", in: glassNS)
Button("Cancel") {}
.glassEffect(reduceTransparency ? .identity : .regular,
in: .capsule)
.glassEffectID("cancel", in: glassNS)
}
.padding()
}
}
}
For standard buttons that don't need custom shapes, prefer the style instead of manual glass:
Button("Continue") {}.buttonStyle(.glassProminent) // GlassProminentButtonStyle
.scrollEdgeEffectStyle(_:for:) rather than stacking your own glass at the edge.If the codebase fakes glass with .ultraThinMaterial + custom shadows:
.glassEffect(.regular, in: <shape>) inside a
GlassEffectContainer.#available fallback (rule 4).global-skills/apple/apple-anti-patterns/SKILL.md — registers the "no glass on glass" and
"wrap an Apple-canonical API in a hand-rolled struct" anti-patterns this skill avoids.global-skills/meta/skill-pattern-freshness-audit/SKILL.md — re-verifies these glass APIs
after each WWDC, since the material's API surface evolved through the iOS 26 beta cycle.Last verified: 2026-06-03 against Apple Developer docs (glassEffect / Glass / glassEffectID
signatures confirmed live, iOS 26.0+) + WWDC25 #323. Glass.tint(_:) was checked and does not
exist as a documented API — use the standard tint(_:) modifier instead.
Re-check after: WWDC26, or by 2026-12-01. Decay risk: medium (the glass API surface shifted
during the iOS 26 beta cycle; re-confirm signatures each major).
Found a drift? Run /skill-pattern-freshness-audit apple.
Source: esaldgut/ai-native-engineering-workspace — distributed by TomeVault.