genjutsu

Apple

The two Apple modules: SwiftUI animation foundations, and the advanced graphics layer covering Metal shaders, visual effects, Liquid Glass and Canvas.

All documentation

Detected from Package.swift or an Xcode project, with iOS and macOS told apart by platform declaration or SDK root. That distinction matters before anything is written, because it decides whether desktop or mobile principles load, and those two disagree about hover.

swiftui-motion

Loads whenever SwiftUI is detected.

An animation API decision tree, then springs treated as the default rather than as a special case, because on Apple platforms they are the easing that matches the platform’s own motion. Implicit against explicit animation and when each is correct. Transitions. matchedGeometryEffect for hero animations. PhaseAnimator and KeyframeAnimator from iOS 17. Animatable and @Animatable for custom interpolation. Gesture-driven animation.

It also carries the anti-patterns in wrong-then-right pairs, and reduced-motion handling through @Environment(\.accessibilityReduceMotion), which is treated as a requirement and not a refinement.

The audit for this stack is specific: no body recomputed on state changes that do not affect it, the Instruments Hitches instrument showing no dropped frames, accessibility labels and hints on every interactive view, and testing with Reduce Motion on and Dynamic Type at 200%.

swiftui-graphics

Loads when the scope is full, or when the validated thesis is advanced. The trigger words are things like shader, Metal, colorEffect, layerEffect, distortionEffect, Liquid Glass, holographic, CRT and displacement.

It opens with a decision tree for which API fits which need, then an introduction to Metal shaders in SwiftUI and worked recipes: a ripple through .layerEffect, a holographic treatment through .colorEffect, CRT scanlines. Then .visualEffect from iOS 17, Liquid Glass on iOS 26, and SwiftUI’s native Canvas.

It closes with performance considerations, which for shader work is the part that decides whether an effect ships: shader compile cost, and whether the bottleneck is GPU or CPU, verified through an Instruments GPU frame capture rather than assumed.

macOS specifics

When the target is macOS, the desktop layer adds requirements the audit checks directly: hover states on every interactive element, keyboard shortcuts bound to the primary actions, multi-window state kept coherent, and visible focus rings on keyboard navigation with no outline: none equivalent left unreplaced.