openai/liquid-glass
Implement and review macOS SwiftUI Liquid Glass UI. Use when adopting system glass, removing conflicting custom chrome, or building glass surfaces.
npx skills add https://github.com/openai/plugins --skill liquid-glass
Use this skill to bring a macOS SwiftUI app into the modern macOS design system
with the least custom chrome possible. Start with standard app structure,
toolbars, search placement, sheets, and controls, then add custom Liquid Glass
only where the app needs a distinctive surface.
Prefer system-provided glass and adaptive materials over bespoke blur, opaque
backgrounds, or custom toolbar/sidebar skins. Audit existing UI for extra fills,
scrims, and clipping before adding more effects.
NavigationSplitView, TabView, sheet presentation, detail/inspector
layout, toolbar, or custom floating controls.
sidebars, and toolbars unless the product explicitly needs them. These can
obscure Liquid Glass and interfere with the automatic scroll-edge effect.
glassEffect surfaces only for app-specific UI that standardcontrols do not cover.
activation are visually coherent and still usable with pointer and keyboard.
build-run-debug so the app runs as a foreground .app bundle rather
than as a raw executable.
NavigationSplitView for hierarchy-driven macOS layouts. Let thesidebar use the system Liquid Glass material instead of painting over it.
backgroundExtensionEffect so the visual can extend beyond the safe area
without clipping the subject.
giving them a heavier custom background than the content they inspect.
TabView for persistent top-level sections andpreserve each tab's local navigation state.
On macOS, prefer a conventional top toolbar and native tab/search placement.
presentationBackground purely to imitate frostedmaterial, consider removing it and letting the system's new material render.
make the presenting item the source of a navigation zoom transition and mark
the sheet content as the destination.
grouped automatically.
ToolbarSpacer to communicate grouping:sharedBackgroundVisibility when an item should stand alone without theshared glass background, for example a profile/avatar item.
badge to toolbar item content for notification or status indicators.tint only toconvey semantic meaning such as a primary action or alert state, not as pure
decoration.
background layers, remove them before judging the new automatic scroll-edge
effect.
treatment with scrollEdgeEffectStyle instead of building a custom bar
background.
searchable to the NavigationSplitView, not to just one column.
searchToolbarBehavior instead of hand-rolling a toolbar button and a
separate field.
tab and place searchable on the TabView.
in the top-trailing toolbar location.
above browsing suggestions rather than a bottom search bar.
macOS, mini/small/medium controls preserve a rounded-rectangle shape for
denser layouts.
buttonBorderShape when a button shape needs to be explicit.controlSize to preserve density in inspectors and popovers, and reserveextra-large sizing for truly prominent actions.
instead of recreating a translucent button background by hand.
step to get automatic tick marks orprovide specific ticks in a ticks closure.
neutralValue.
Label or standard control initializers for menu items so icons areconsistently placed on the leading edge across platforms.
window corner, use a concentric rectangle shape with the
containerConcentric corner configuration instead of guessing a radius.
glassEffect for custom glass surfaces. The default shape is capsule-likeand text foregrounds are automatically made vibrant and legible against
changing content underneath.
glassEffect when a capsule is not the right fit.tint only when color carries meaning, such as a status or call toaction.
glassEffect(... .interactive()) for custom controls or containers withinteractive elements so they scale, bounce, and shimmer like system glass.
GlassEffectContainer. This is avisual correctness rule, not just organization: separate containers cannot
sample each other's glass and can produce inconsistent refraction.
glassEffectID with a local @Namespace when matching glass elementsshould morph between collapsed and expanded states.
glass.
system material were removed unless intentionally required.
searchable is attached at the correct container level for the intendedsearch scope.
ToolbarSpacer, sharedBackgroundVisibility, andbadge instead of one-off hand-built chrome.
GlassEffectContainer.
glassEffectID with a namespace and stableidentity.
.app bundle,not as a raw executable.
standard SwiftUI APIs already provide the modern macOS behavior.
NavigationSplitViewsidebar, system toolbar, or sheet just because an older version needed
one.
GlassEffectContainers.
Prefer desktop-native toolbar, split-view, and inspector placement.
Liquid Glass behavior; missing foreground activation can make a design bug
look like a rendering bug.
swiftui-patterns when the main question is scene architecture,sidebar/detail layout, commands, or settings rather than Liquid Glass-specific
treatment.
view-refactor when the main issue is file structure, stateownership, and extracting large views before design changes.
appkit-interop when the design requires window, panel, responder-chain,or AppKit-only control behavior.
build-run-debug when you need to launch, verify, or inspect logsfor the app after the visual update.
Take openai/liquid-glass from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.