DietrichGebert/ponytail160kponytail
Lazy senior dev mode for any coding task: the smallest change that fully solves it, and a reply a busy human understands in one read.
编码与调试
搜索文档、Skill 和 MCP
Use when implementing, reviewing, or debugging Apple Liquid Glass: iOS 26+ adoption, Regular vs Clear variants, tinting, scroll edge effects, or an iOS-native redesign review.
把这段话发给 Claude Code、Codex 或 Cursor。智能体会先检查安全性,你确认后才安装。
读取 https://funcoding.ai/skills/coco-research/coco/axiom-liquid-glass/install.md ,按里面的步骤帮我安装这个 Skill。
Avoid trendy glassmorphism gimmicks. Glass effects should appear only where they improve clarity and depth. Every screen should feel like it belongs in a first-party Apple app.
Liquid Glass is Apple's next-generation material design system introduced at WWDC 2025. It represents a significant evolution from previous materials (Aqua, iOS 7 blurs, Dynamic Island) by creating a new digital meta-material that:
Use glass materials to express depth and context:
| Material | Use For | Visual Weight |
|---|---|---|
| Ultra-thin | Subtle overlays, toolbars, floating controls | Lightest |
| Regular | Cards needing gentle separation | Medium |
| Thick | Bottom sheets, modals, areas requiring strong readability | Heaviest |
Rules:
Liquid Glass defines itself through lensing — the warping and bending of light that communicates presence, motion, and form. Unlike previous materials that scattered light, Liquid Glass uses instinctive visual cues from the natural world.
Liquid Glass continuously adapts without fixed light/dark appearance:
glassEffect Modifier// Basic usage - applies glass within capsule shape
Text("Hello")
.glassEffect()
// Custom shape
Text("Hello")
.glassEffect(in: RoundedRectangle(cornerRadius: 12))
// Interactive elements (iOS)
Button("Tap Me") { }
.glassEffect()
.interactive()
Automatic Adoption: Simply recompiling with Xcode 26 brings Liquid Glass to standard controls automatically.
CRITICAL DECISION: Never mix Regular and Clear in the same interface.
When to use: Navigation bars, tab bars, toolbars, buttons, menus, sidebars
NavigationView {
// Content
}
.glassEffect() // Uses Regular variant by default
Use ONLY when ALL three conditions are met:
ZStack {
MediaRichBackground()
.overlay(.black.opacity(0.3)) // Dimming layer
BoldBrightControl()
.glassEffect(.clear)
}
WARNING: Using Clear without meeting all three conditions results in poor legibility.
[Content Layer — No Glass]
|
[Navigation Layer — Liquid Glass]
- Tab bars, Navigation bars, Toolbars, Floating controls
// WRONG
List(items) { item in
Text(item.name)
}
.glassEffect() // Competes with navigation, muddy hierarchy
// WRONG
ZStack {
NavigationBar().glassEffect()
FloatingButton().glassEffect() // Glass on glass
}
// CORRECT
ZStack {
NavigationBar().glassEffect()
FloatingButton()
.foregroundStyle(.primary) // Use fills, transparency, vibrancy
}
Reposition or scale content to maintain separation. Intersections are acceptable during scrolling/transitions.
Button("Primary Action") { }
.tint(.red)
.glassEffect()
// WRONG - Solid fill breaks glass character
Button("Action") {}
.background(.red) // Opaque
// CORRECT - Transparent, grounded
Button("Action") {}
.tint(.red)
.glassEffect()
Work in concert with Liquid Glass to maintain separation with scrolling content.
Use when pinned accessory views exist:
ScrollView { }
.scrollEdgeEffect(.hard)
Liquid Glass offers accessibility features that modify material without sacrificing its magic:
| Feature | Effect | Developer Action |
|---|---|---|
| Reduced Transparency | Makes glass frostier, obscures more | Automatic |
| Increased Contrast | Elements predominantly black/white with contrasting border | Automatic |
| Reduced Motion | Decreases intensity, disables elastic properties | Automatic |
No developer action required — all features apply automatically when using Liquid Glass.
// WRONG - Deep nesting
ZStack {
GlassContainer1().glassEffect()
ZStack {
GlassContainer2().glassEffect()
}
}
// CORRECT - Flat hierarchy
VStack {
GlassContainer1().glassEffect()
GlassContainer2().glassEffect()
}
func testLiquidGlassAppearance() {
let app = XCUIApplication()
app.launch()
// Test light mode
XCTContext.runActivity(named: "Light Mode Glass") { _ in
let screenshot = app.screenshot()
}
// Test dark mode
app.launchArguments = ["-UIUserInterfaceStyle", "dark"]
app.launch()
XCTContext.runActivity(named: "Dark Mode Glass") { _ in
let screenshot = app.screenshot()
}
}
func testLiquidGlassAccessibility() {
app.launchArguments += [
"-UIAccessibilityIsReduceTransparencyEnabled", "1",
"-UIAccessibilityButtonShapesEnabled", "1",
"-UIAccessibilityIsReduceMotionEnabled", "1"
]
XCTAssertTrue(glassElement.exists)
XCTAssertTrue(glassElement.isHittable)
}
If you hear ANY of these, STOP and reference the skill:
Step 1: Show the Framework
"Let me show you Apple's guidance on Clear variant.
It requires THREE conditions:
1. Media-rich content background
2. Dimming layer for legibility
3. Bold, bright controls on top
Let me show which screens meet all three..."
Step 2: Demonstrate the Risk Open the app on a device. Show Clear variant in low-contrast scenario (unreadable) vs Regular (legible).
Step 3: Offer Compromise
"Clear works beautifully in these hero sections where all three conditions apply.
Regular handles everything else with automatic legibility. Best of both worlds."
Step 4: Document the Decision If overruled, send written documentation of the decision and monitoring plan.
glassEffect(in:isInteractive:)func glassEffect<S: Shape>(
in shape: S = Capsule(),
isInteractive: Bool = false
) -> some View
glassEffect(_:in:isInteractive:)func glassEffect<S: Shape>(
_ variant: GlassVariant, // .regular or .clear
in shape: S = Capsule(),
isInteractive: Bool = false
) -> some View
scrollEdgeEffect(_:)func scrollEdgeEffect(_ style: ScrollEdgeStyle) -> some View
// styles: .automatic, .soft, .hard
scrollEdgeEffectStyle(_:for:) (NEW in iOS 26)func scrollEdgeEffectStyle(_ style: ScrollEdgeStyle, for edges: Edge.Set) -> some View
glassBackgroundEffect() (NEW in iOS 26)Apply glass effect to custom views for reflecting surrounding content.
CustomPhotoGrid()
.glassBackgroundEffect()
GlassEffectContainer (NEW in iOS 26)Container for combining multiple Liquid Glass effects with optimized rendering.
GlassEffectContainer {
HStack {
Button("Action 1") { }.glassEffect()
Button("Action 2") { }.glassEffect()
}
}
Benefits: Optimizes rendering, fluid morphing between glass shapes, reduced compositor overhead.
Spacer(.fixed) in ToolbarsSeparates toolbar button groups with fixed spacing.
.buttonStyle(.borderedProminent) + .tint() in ToolbarsMakes toolbar items prominent with Liquid Glass tinting.
.searchable()).tabRole(.search) — morphs into search field.tabBarMinimizationBehavior(.onScrollDown)enum GlassVariant {
case regular // Default - full adaptive behavior
case clear // More transparent, no adaptation
}
enum ScrollEdgeStyle {
case automatic // System determines
case soft // Gradual fade
case hard // Uniform across toolbar height
}
Add to Info.plist to maintain iOS 18 appearance while building with iOS 26 SDK:
<key>UIDesignRequiresCompatibility</key>
<true/>
Migration strategy:
For each redesigned screen, provide:
WWDC: 2025-219, 2025-323, 2025-256 Docs: /technologyoverviews/adopting-liquid-glass, /swiftui/landmarks-building-an-app-with-liquid-glass, /swiftui/applying-liquid-glass-to-custom-views Related Skills: axiom-liquid-glass-ref, swiftui-liquid-glass Platforms: iOS 26+, iPadOS 26+, macOS Tahoe, visionOS 3 Xcode: 26+
DietrichGebert/ponytail160kLazy senior dev mode for any coding task: the smallest change that fully solves it, and a reply a busy human understands in one read.
编码与调试
addyosmani/agent-skills104kSimplifies code for clarity. Use when refactoring code for clarity without changing behavior. Use when code works but is harder to read, maintain, or extend than it should be. Use when reviewing code that has accumulated unnecessary complexity.
编码与调试
addyosmani/agent-skills104kConducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Use when you need to assess code quality across multiple dimensions before it enters the main branch. Use when asked to review a diff or a pull request, even when the diff is pasted inline.
编码与调试
addyosmani/agent-skills104kOptimizes application performance across frontend, backend, queries, and databases. Use when performance requirements exist, when you suspect performance regressions, when Core Web Vitals or load times need improvement, when N+1 query patterns need fixing, or when profiling reveals bottlenecks.
编码与调试
addyosmani/agent-skills104kGrounds every implementation decision in official documentation. Use when you want to verify an approach against the official docs before implementing it, or when you want authoritative, source-cited code free from outdated patterns. Use when building with any framework or library where correctness matters.
编码与调试
addyosmani/agent-skills104kDelivers changes incrementally in thin, verifiable slices. Use when implementing any feature or change that touches more than one file, or when picking up the next task from a plan. Use when rolling a change out behind a feature flag, when you're about to write a large amount of code at once, or when a task feels too big to land in one step.
编码与调试