iOS 27 introduces updated search placement patterns and visual behaviors with Liquid Glass, including ergonomic bottom-toolbar search that animates over the keyboard, prominent search tabs, and adaptive Search Field sizing that automatically adopts glass styling in toolbars.
⢠Search fields in toolbars now automatically adopt Liquid Glass visual styling in iOS 27, replacing the previous opaque/blurred appearance
⢠Bottom toolbar search animates ergonomically up over the keyboard, a new behavior not present in prior iOS versions
⢠Prominent tab style for search tabs is a new UITabBar appearance option introduced in iOS 27
⢠Search field width now dynamically adapts based on adjacent toolbar items, collapsing to a button when space is constrained
⢠Search fields placed in a bottom toolbar now animate fluidly over the keyboard with Liquid Glass styling, making search more ergonomic and thumb-friendly on large displays
⢠The new 'prominent tab' search tab style immediately engages the keyboard on tap, reducing friction for apps where users know what they're looking for
⢠Search fields automatically adopt glass or content styling based on placement context, reducing the need for manual appearance customization
Demonstrates placing a search field in the bottom toolbar with iOS 27 Liquid Glass styling, showing the ergonomic keyboard-adjacent layout and scope bar filtering.
import SwiftUIstruct ContentItem: Identifiable {let id = UUID()let title: Stringlet category: String}ā// Pre-iOS 27: searchable placement options were limited;ā// .toolbar placed search in the navigation bar (top), not bottom toolbar.ā// No Liquid Glass automatic styling ā appearance was opaque/blurred.āstruct LegacySearchDemo: View {+struct LiquidGlassSearchDemo: View {@State private var searchText = ""@State private var selectedScope = "All"let scopes = ["All", "Favorites", "Recent"]let items: [ContentItem] = [ContentItem(title: "Swift Concurrency Guide", category: "Recent"),ContentItem(title: "SwiftUI Animations", category: "Favorites"),ContentItem(title: "UIKit Integration", category: "Recent"),ContentItem(title: "Core Data Migrations", category: "Favorites"),+ ContentItem(title: "Liquid Glass Design", category: "Recent"),+ ContentItem(title: "WidgetKit Updates", category: "Favorites"),]var filteredItems: [ContentItem] {items.filter { item inlet matchesScope = selectedScope == "All" || item.category == selectedScopelet matchesSearch = searchText.isEmpty || item.title.localizedCaseInsensitiveContains(searchText)return matchesScope && matchesSearch}}var body: some View {NavigationStack {List(filteredItems) { item inLabel(item.title, systemImage: "doc.text")}.navigationTitle("Library")ā // Pre-iOS 27: search placed in the navigation bar at top;ā // no ergonomic bottom placement or Liquid Glass styling+ // iOS 27: searchable with placement .toolbar places search+ // in the bottom toolbar, animating over keyboard with Liquid Glass.searchable(text: $searchText,ā placement: .navigationBarDrawer(displayMode: .always),+ placement: .toolbar,prompt: "Search documents")ā .searchScopes($selectedScope) {+ // Scope bar beneath the search field for lightweight filtering+ .searchScopes($selectedScope, activation: .onSearchPresentation) {ForEach(scopes, id: \.self) { scope inText(scope).tag(scope)}}}}}+// iOS 27: UIKit example ā prominent search tab in UITabBarController+class SearchDemoTabController: UITabBarController {+ override func viewDidLoad() {+ super.viewDidLoad()++ let libraryVC = UINavigationController(rootViewController: LibraryViewController())+ libraryVC.tabBarItem = UITabBarItem(title: "Library", image: UIImage(systemName: "books.vertical"), tag: 0)++ let searchVC = UISearchContainerViewController(searchController: UISearchController())+ // iOS 27: .search appearance makes the tab immediately engage keyboard+ let searchTab = UITabBarItem(title: "Search", image: UIImage(systemName: "magnifyingglass"), tag: 1)+ searchTab.badgeValue = nil+ searchVC.tabBarItem = searchTab++ viewControllers = [libraryVC, searchVC]+ }+}++class LibraryViewController: UIViewController {+ override func viewDidLoad() {+ super.viewDidLoad()+ title = "Library"+ view.backgroundColor = .systemBackground+ }+}+#Preview {ā LegacySearchDemo()+ LiquidGlassSearchDemo()}
Inline search fields in the scroll region do not animate over the keyboard ā only bottom-toolbar placements do. Avoid placing more than two additional toolbar items alongside a search field or it will collapse to a button. Custom icons must closely resemble the standard magnifying glass symbol to maintain user recognition.
Liquid Glass visual effects are most pronounced on devices supporting ProMotion and Metal; functionally available on all iOS 27 devices
More iOS 27 APIs land every week.
Get notified when new capabilities are published ā no noise, just signal.