Liquid Glass Nedir?
Liquid Glass, Apple'ın WWDC25'te tanıttığı ve iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26 ve tvOS 26 ile yayınladığı tasarım dilidir. Arkasındaki içeriği yansıtıp kıran, dokunuşa, ışığa ve harekete tepki veren yarı saydam bir materyaldir. Tab bar, toolbar ve sidebar gibi navigasyon öğeleri artık opak çubuklar yerine içeriğin üzerinde, cam bir katmanda yüzer.
Otomatik Gelen Değişiklikler
Standart SwiftUI, UIKit ve AppKit bileşenleri, Xcode 26 (iOS 26 SDK) ile derleyip 26 sürümlerinde çalıştırdığınızda Liquid Glass'ı otomatik benimser:
- Tab bar ve toolbar yüzer; toolbar öğeleri ortak cam arka planlarda gruplanır.
- Sheet köşeleri daha yuvarlaktır; yarım sheet'ler kenarlardan içeri çekilir, arkadaki içerik görünür.
- Kontroller daha yuvarlaktır; slider ve toggle düğmeleri etkileşim sırasında cama dönüşür.
- List ve form satırları büyür, section başlıkları artık tamamı büyük harfle gösterilmez.
- Scroll edge effect, kayan içeriğin üzerindeki bar içeriğini okunur tutar.
SwiftUI ve UIKit ile Özel Cam
Camı az kullanın: yalnızca en önemli işlevsel öğelere uygulayın, içerik katmanının kendisine asla.
GlassEffectContainer(spacing: 16) {
HStack(spacing: 16) {
Image(systemName: "pencil")
.frame(width: 44, height: 44)
.glassEffect(.regular.tint(.blue).interactive())
Image(systemName: "trash")
.frame(width: 44, height: 44)
.glassEffect()
}
}
Button("Continue") { next() }
.buttonStyle(.glassProminent)
GlassEffectContainer, yakın cam şekilleri gruplar; daha verimli render edilmelerini ve birbirine dönüşebilmelerini sağlar (geçişler için glassEffectID(_:in:)). UIKit'te UIVisualEffectView içinde UIGlassEffect veya UIButton.Configuration stillerinden glass() ve prominentGlass() kullanın.
Bilinmesi gereken diğer API'ler:
| Amaç | SwiftUI | UIKit |
|---|---|---|
| Scroll'da tab bar'ı küçültme | tabBarMinimizeBehavior(.onScrollDown) | tabBarMinimizeBehavior |
| Arama sekmesi | Tab(role: .search) | UISearchTab |
| İçeriği sidebar altına uzatma | backgroundExtensionEffect() | UIBackgroundExtensionView |
| Toolbar gruplarını ayırma | ToolbarSpacer | UIBarButtonItem.fixedSpace(_:) |
| Edge effect'li özel bar | safeAreaBar(edge:) | UIScrollEdgeElementContainerInteraction |
2026 sürümlerinde (iOS 27) görünüm kod değişikliği gerektirmeden rafine edildi; SwiftUI'a toolbarMinimizeBehavior(.onScrollDown, for: .navigationBar) ve Tab(role: .prominent) eklendi.
Opt-Out Anahtarı ve Sonu
Info.plist anahtarı UIDesignRequiresCompatibility (Boolean), iOS 26 SDK ile derlenen bir uygulamanın önceki tasarıma benzeyen uyumluluk modunda çalışmasını sağlar. Apple bunu baştan geçici olarak tanımladı; dokümantasyon artık iOS 27, iPadOS 27, macOS 27 veya tvOS 27 ve sonrası için derlendiğinde sistemin bu anahtarı yok saydığını belirtiyor.
| Derleme SDK'sı | Anahtar YES ise |
|---|---|
| iOS 26 SDK (Xcode 26) | Önceki tasarım korunur |
| iOS 27 SDK (Xcode 27) | Anahtar yok sayılır, Liquid Glass uygulanır |
Bunu strateji değil köprü olarak görün: Xcode 27'ye geçtiğiniz anda yeni tasarım zaten devreye girer.
App Icon ve Icon Composer
İkonlar artık katmanlıdır ve ışığa tepki verir. iOS, iPadOS ve macOS'ta default (light), dark, clear ve tinted görünümler bulunur. Ön, orta ve arka plan katmanlarını tasarlayıp Xcode 26 ile gelen Icon Composer'a aktarın; burada katmanları gruplayabilir, opaklığı ayarlayabilir ve tüm görünümleri önizleyebilirsiniz. Maske, blur veya gölgeyi görsele gömmeyin; bunları sistem uygular.
Erişilebilirlik
Liquid Glass; Reduce Transparency, Increase Contrast ve Reduce Motion ayarlarına uyum sağlar, kullanıcılar Ayarlar'dan tercih ettikleri cam görünümünü de seçebilir. Standart bileşenler bunu kendisi halleder, özel cam her zaman değil.
- Özel öğeleri bu ayarların tüm kombinasyonlarıyla test edin.
- Gerektiğinde düz arka plana geçmek için SwiftUI'da
accessibilityReduceTransparency, UIKit'teUIAccessibility.isReduceTransparencyEnableddeğerini okuyun. - Özel renklere yüksek kontrast varyantı, yalnızca ikondan oluşan toolbar butonlarına accessibility label ekleyin.
Sık Yapılan Hatalar
- Özel bar arka planları: navigation bar, tab bar ve toolbar'daki opak appearance ayarları camı ve scroll edge effect'i engeller.
- Cam üstüne cam: cam öğeleri üst üste bindirmek okunabilirliği ve performansı düşürür.
- Sabit ölçüler: sabit yükseklik ve köşe yarıçapları yeni, yuvarlak kontrollerle çakışır.
- Özel tab bar: elle yazılmış tab bar; yüzme, küçülme ve arama sekmesi davranışlarını kaçırır.
- Büyük harfli başlıklar: otomatik büyük harfe güvenen section başlıkları artık normal yazımla görünür.
Geçiş Checklist'i
- Opt-out anahtarı olmadan Xcode 26 ile derleyin, her ekranın ekran görüntüsünü alın.
- Bar, toolbar, sheet ve popover'lardaki özel arka planları kaldırın.
- Mümkünse özel tab bar ve header'ları sistem bileşenleriyle değiştirin.
- Toolbar öğelerini gruplayın, metin butonları yerine SF Symbols tercih edin.
- App icon'u Icon Composer'da yeniden oluşturup tüm görünümleri kontrol edin.
- Reduce Transparency, Increase Contrast, Reduce Motion, dark mode ve büyük metinle test edin.
- Eski desteklenen cihazlarda scroll ve animasyonları profilleyin.
Cross-Platform Uygulamalar
React Native: native-stack header'ları, alert'ler ve switch'ler gibi native UIKit view'larına dayanan bileşenler, Xcode 26 ile derlendiğinde Liquid Glass'ı benimser; JavaScript ile çizilen tab bar ve header'lar değişmez. Expo'nun expo-glass-effect paketi GlassView ve GlassContainer sunar; cam desteklenmiyorsa normal view'a düşer.
Flutter: Flutter kendi piksellerini çizer, bu yüzden Cupertino widget'ları değişmez. Flutter ekibi mevcut Cupertino kütüphanesine Liquid Glass eklemediğini açıkladı; topluluk paketleri platform view ile native kontrolleri gömüyor. Share sheet, izin pencereleri ve klavye gibi sistem arayüzleri yine yeni görünür; iOS'a mı uyacağınıza yoksa marka tutarlılığını mı koruyacağınıza karar verin.