After WWDC25, Liquid Glass can look like a material to add everywhere. A toolbar is an information-architecture problem first. Concrete effects and API details from the Xcode 26 and iOS 26 beta cycle require review against the final SDK. The durable decision is the action hierarchy: what people most often complete here, what can live in a menu, and what state must remain visible.

Let system components migrate first

Standard navigation bars, tab bars, toolbars, and controls adopt much of the new design when built with the new SDK. Start by removing custom backgrounds, shadows, separators, and masks previously layered over those bars. Then inspect whether content and controls already have a clear relationship. Adding glass on top of old decoration commonly creates two materials, excessive blur, and duplicated corner treatments.

struct DocumentScreen: View {
    var body: some View {
        NavigationStack {
            DocumentContent()
                .navigationTitle("Draft")
                .toolbar {
                    ToolbarItem(placement: .primaryAction) {
                        Button("Share", systemImage: "square.and.arrow.up") {
                            share()
                        }
                    }
                    ToolbarItem(placement: .secondaryAction) {
                        Button("Duplicate", action: duplicate)
                    }
                }
        }
    }
}

Prefer semantic placements over spacers and fixed frames that imitate a coordinate. The system can then adapt the controls for platform, window size, language, and input method. Layout in a beta seed may still change, so avoid UI tests that assume one exact pixel position.

Give each region one primary action

If save, share, add, done, and more are all separate and equally prominent, the material has no direction to communicate. Rank the tasks. Keep the action that completes the current screen’s main job directly available. Group less common or explanatory commands as secondary actions. A toggle must communicate its current value and cannot rely on tint alone.

Destructive commands need distance from frequent primary controls. Moving delete into a menu does not remove the need for confirmation, undo, or a clear description of its scope. An icon that is obvious to the development team may be ambiguous to everyone else. Use Label when the meaning is not universal, allowing the system to show text where space permits and giving VoiceOver a stable name.

A toolbar is not an inventory of every capability on the screen. Search, selection, editing, and viewing can have different command sets. Model those modes explicitly so obsolete controls leave the accessibility tree instead of merely becoming transparent.

Let content pass behind without losing content

Transparency and dynamic sampling can establish continuity between controls and scrolling content. A complex background also increases the states that need validation. Test light and dark appearances, photographs, dense text, rapid scrolling, and the keyboard-present state. With Increase Contrast or Reduce Transparency enabled, the hierarchy must still be understandable. With Reduce Motion enabled, a morph or collapse cannot be the only explanation of where an action moved.

Avoid washing an entire toolbar in brand color. Tint is useful for a restrained emphasis or status, but pair it with shape, text, or icon differences. A custom glass effect is most defensible for a genuinely custom floating control. It is usually unnecessary to wrap each standard toolbar button in an additional material. If adjacent custom controls need a shared morphing relationship, group only that small region and preserve stable identities.

Design scrolling as state

Toolbars can change prominence or size as content scrolls. Inspect the top, middle, search-active state, selection mode, editor mode, and modal presentation. In each state, ask whether the primary action remains discoverable, whether the way back is stable, and whether title changes create distracting jumps. If a command disappears while scrolling, its return behavior should be predictable. If a command requires a selection, expose both its disabled state and the selection count to assistive technology.

Localization and large text are part of the structure. A short English title fitting does not prove every translation will fit. Replacing every label with an icon merely converts a layout issue into a comprehension issue. Let system placements decide presentation and inspect the toolbar at accessibility text sizes, where commands may need to move or content may need additional room.

Test semantics before screenshots

Beta visual details move, making broad pixel snapshots noisy. More durable assertions verify that the primary command exists and works, secondary items are grouped, a destructive command requires the intended safeguard, focus order is sensible, and the older-system path still operates. Keep visual regression coverage for a small set of important states, with human review after each Xcode seed to distinguish an operating-system change from an application regression.

Performance needs device evidence as well. Several custom blur layers and continuous animations over scrolling content can affect frame pacing and energy. Begin with standard bars and use Instruments on the screens that justify customization. Simulator smoothness is not evidence of zero cost.

A useful migration order

Build with the beta SDK, capture baseline screens, remove obsolete chrome, rank actions, adopt semantic placements, and only then add a small custom effect if the task requires it. Check accessibility settings and older systems before polishing animation. Keep the beta-only code behind a component boundary and repeat the review against each seed.

A clear Liquid Glass toolbar is disciplined rather than decorative: system components first, one primary action, grouped secondary work, redundant state cues, and hierarchy that survives accessibility settings. Those decisions will remain useful even if the beta’s exact material tuning changes before release.