iOS 27 introduces updated search field placement patterns with Liquid Glass styling, including ergonomic bottom-toolbar search that animates over the keyboard, prominent Search Tab options, and adaptive toolbar search that collapses to a button on constrained layouts.
⢠Search fields placed in toolbars now automatically render with Liquid Glass material instead of the previous opaque bar background
⢠New bottom-toolbar search pattern animates the field upward over the keyboard, an ergonomic shift not available as a first-class pattern pre-iOS 27
⢠Prominent tab appearance for a Search Tab (immediate keyboard focus on tap) is a newly documented and supported pattern in iOS 27
⢠Adaptive toolbar search now automatically collapses to a button when space is constrained, then expands with overflow items moved to a menu
⢠Search fields placed in toolbars automatically adopt Liquid Glass styling, providing visual consistency with the new iOS 27 design language without extra code
⢠Bottom toolbar search animates fluidly over the keyboard for one-handed reachability, a new ergonomic pattern developers should adopt for list-based apps
⢠Scope bars, recent search suggestions, and predictive completions now have clearer placement guidelines tied to where the search field lives, reducing design ambiguity
Demonstrates the new iOS 27 bottom-toolbar search placement where the field animates over the keyboard, combined with a scope bar for filtering results across mailboxes.
import SwiftUIstruct Message: Identifiable {let id = UUID()let sender: Stringlet subject: Stringlet mailbox: String}enum MailboxScope: String, CaseIterable, Identifiable {case all = "All Mailboxes"case inbox = "Inbox"case sent = "Sent"var id: String { rawValue }}ā// Pre-iOS 27: searchable placed in the navigation bar (top).ā// No Liquid Glass material; field stays at top when keyboard appears.ā// No bottom-toolbar animation or ergonomic keyboard-adjacent layout.āstruct MailSearchDemoViewLegacy: View {+struct MailSearchDemoView: View {@State private var searchText = ""@State private var selectedScope: MailboxScope = .alllet messages: [Message] = [Message(sender: "Apple", subject: "Your receipt", mailbox: "Inbox"),Message(sender: "Team", subject: "Sprint review", mailbox: "Inbox"),Message(sender: "Me", subject: "Follow-up notes", mailbox: "Sent"),Message(sender: "GitHub", subject: "PR merged", mailbox: "Inbox"),Message(sender: "Me", subject: "Design feedback", mailbox: "Sent"),]var filteredMessages: [Message] {messages.filter { message inlet matchesScope = selectedScope == .all || message.mailbox == selectedScope.rawValuelet matchesSearch = searchText.isEmpty ||message.sender.localizedCaseInsensitiveContains(searchText) ||message.subject.localizedCaseInsensitiveContains(searchText)return matchesScope && matchesSearch}}var body: some View {NavigationStack {List(filteredMessages) { message inVStack(alignment: .leading, spacing: 4) {Text(message.sender).font(.headline)Text(message.subject).font(.subheadline).foregroundStyle(.secondary)}}.navigationTitle("Mail")ā // Pre-iOS 27 default placement: navigation bar (top).ā // Field does not animate over keyboard; no glass material.+ // searchable with placement: .toolbaritem(.bottomBar) produces+ // the iOS 27 bottom-toolbar Liquid Glass search field that+ // animates upward over the keyboard when activated..searchable(text: $searchText,ā placement: .navigationBarDrawer(displayMode: .always),+ placement: .toolbarItem(.bottomBar),prompt: "Search Mail")ā .searchScopes($selectedScope) {+ .searchScopes($selectedScope, activation: .onSearchPresentation) {ForEach(MailboxScope.allCases) { scope inText(scope.rawValue).tag(scope)}}+ .toolbar {+ ToolbarItem(placement: .bottomBar) {+ Button(action: {}) {+ Label("Compose", systemImage: "square.and.pencil")+ }+ }+ }}}}#Preview {ā MailSearchDemoViewLegacy()+ MailSearchDemoView()}
Liquid Glass is Apple's new material and visual design language introduced in iOS 27, bringing translucent, refractive glass-like surfaces to system and custom UI elements. It replaces the frosted vibrancy aesthetic with a more dynamic, depth-aware material that responds to content beneath it.
PaperKit is Apple's full-featured canvas framework ā previously internal-only ā now publicly available in iOS/macOS/visionOS 27. It powers the drawing and markup experience in Notes, Preview, and Freeform, giving developers access to a complete pencil, shapes, images, and text canvas with a rich data model.
Xcode 27 introduces a fully customizable toolbar and theme system, untitled scratch projects, coding agent integration directly in the editor, and the new Device Hub for evaluating apps across simulators and physical devices side-by-side.
In-depth guide
SwiftUI & Liquid Glass in iOS 27 āPlacing searchable() in the wrong toolbar position will not produce the bottom-animating behavior ā the field must be associated with a bottom toolbar to get the keyboard-adjacent animation. Custom icons replacing the magnifying glass must closely resemble standard symbols or users may not recognise the field as search. Over-customising the search field risks breaking the automatic glass/content styling that SwiftUI applies based on placement context.
Liquid Glass visual treatment is iOS 27+ only; iPad and Mac variants require appropriate split-view or sidebar navigation structure
iOS 27 introduces new SwiftUI drag and drop APIs including reorderable, reorderContainer, dragContainer, and configuration modifiers that enable reordering within and across collections, multi-item drag, and fine-grained control over how data is transferred during drag and drop operations.