What Changed in WebKit: Safari 18.2
WebKit EngineWhy This Matters
WebKit powers every browser on iOS and iPadOS, plus Safari on macOS and visionOS. Safari 18.2 is one of the biggest point releases in recent memory — 61 new features and 111 bug fixes touching CSS, JavaScript, WebAssembly, security, and the spatial web. It ships with iOS 18.2, macOS Sequoia 15.2, and visionOS 2.2.
CSS
CSS dominates this release. The headline feature is cross-document View Transitions via @view-transition, enabling animated page-to-page navigation without SPA frameworks. Building on same-document transitions from Safari 18.0, this adds view-transition-name: auto (no more naming hundreds of elements manually), View Transition Classes for shared animation styles, and View Transition Types for directional variants like left-vs-right carousel slides. The pageswap and pagereveal events complete the API.
text-box (formerly “leading trim”) is Safari’s marquee CSS debut — the first browser to ship this long-requested feature. With text-box: trim-start cap, you can finally align text optically with adjacent elements by trimming the invisible space above and below glyphs. It’s a progressive enhancement: browsers without support simply fall back to the old behavior.
background-clip: border-area lets you fill only the border region with a background image — combine it with background-clip: text for striking visual effects that previously required hacks. Advanced calc() support adds unit division (e.g., calc(100vw / 1px)) aligning with the latest web standard.
Ruby typography gets 3 new properties: ruby-align, ruby-overhang, and the unprefixed ruby-position. Scrollbar styling arrives with scrollbar-width and scrollbar-gutter, and ::target-text enables styling for Scroll to Text Fragment highlights. Additional additions include text-underline-position: left/right, @page margin descriptors with Japanese paper sizes, and <string> values for @property syntax.
JavaScript
Float16Array joins the TypedArray family alongside Float32Array and Float64Array, enabling efficient 16-bit floating-point operations — particularly relevant for machine learning and GPU data exchange.
Base64/hex encoding gets first-class support: Uint8Array.prototype.toBase64(), toHex(), fromBase64(), and setFromBase64() eliminate the need for third-party encoding libraries. Promise.try provides a cleaner way to wrap synchronous-or-async code, and RegExp.escape safely escapes special characters for regex construction.
Iterator.from and Iterator.prototype enhancements land as part of the Iterator Helpers proposal. Intl.Locale gains firstDayOfWeek support, and WebAssembly module type reflection is added for imports and exports.
Web APIs
Pointer Events receive a comprehensive upgrade: click, contextmenu, and click() now fire as PointerEvent (exposing pointerType), the auxclick event ships for non-primary buttons, and new methods getPredictedEvents() and getCoalescedEvents() enable smoother drawing and input handling. altitudeAngle and azimuthAngle support lets developers precisely detect Apple Pencil orientation.
NavigationActivation.finished handling improves navigation lifecycle management, and a new initial-focus algorithm for <dialog> aligns with updated specifications.
Genmoji support allows AI-generated emoji from iOS 18.2 keyboards to be posted to the web as images, with full NSAdaptiveImageGlyph API support in WKWebView.
Media
Websites can now override system-default accessibility caption styles via ::cue, while still respecting custom user preferences. A fallback Now Playing image is automatically provided when sites omit MediaSession metadata artwork. Spatial videos are now playable in Safari on visionOS 2.2, using standard <video> elements with MV-HEVC sources.
Security
Safari 18.2 makes HTTPS the default on iOS, iPadOS, and visionOS — every page load attempts a secure connection first, falling back to HTTP only if HTTPS fails. On all platforms, a new optional setting warns users before connecting over non-secure HTTP, giving them the choice to cancel or proceed.
CSP enforcement is tightened with a fix for javascript: URL navigation bypassing Content Security Policy in cross-context window.open scenarios. Cross-Origin-Opener-Policy no longer incorrectly disables the back-forward cache.
Performance
WASM Garbage Collection is the standout performance addition. Languages like Java, C#, Kotlin, and Go can now define managed types directly in WebAssembly, leveraging the browser’s native GC instead of bundling their own inefficient collectors. This dramatically reduces binary sizes and improves interop with JavaScript. WASM Tail Calls ship alongside, enabling efficient recursive algorithms and state machines — critical for interpreters and emulators compiled to WASM.
blocking=render for <script> and <style> and <link rel=expect> for document render-blocking give developers fine-grained control over what must load before rendering begins — especially useful for cross-document View Transitions.
CSS Nesting gets a behavioral update removing hoisting, and numerous Web Animations fixes (discrete animation for column-span, appearance, image-rendering, mask-border-*, and more) improve animation reliability.
Bottom Line
Who should care? Every front-end developer. Cross-document View Transitions and text-box trim are features teams have been waiting years for. If you’re building apps that target WebAssembly from GC’d languages, WASM GC is transformative. And Float16Array + the base64/hex APIs reduce dependency on polyfills and utility libraries.
Biggest impact: HTTPS by default is the most user-facing change — it protects millions of Safari users automatically. For developers, cross-document View Transitions and WASM GC represent the largest capability jumps, enabling patterns that were previously impossible or impractical in WebKit.