What Changed in WebKit: Safari 18.0
WebKit EngineWhy This Matters
WebKit is the rendering engine behind Safari on macOS, iOS, iPadOS, and visionOS β and, crucially, behind every browser on iPhone and iPad. Appleβs App Store rules require all iOS browsers to use WebKit, meaning changes here affect Chrome, Firefox, Edge, and every other browser on the worldβs most profitable mobile platform. Safari 18.0 ships alongside iOS 18, macOS Sequoia, and visionOS 2, bringing 53 new features, 25 deprecations, and 209 resolved issues to the web.
CSS
Safari 18.0βs CSS story is headlined by the View Transitions API β the long-awaited mechanism for animating between page states with a simple call to document.startViewTransition(). Safari supports CSS View Transitions Module Level 1, including pseudo-elements like ::view-transition-old() and ::view-transition-new() for customizing animations. This is a major step toward native-feeling page transitions on the web.
Style Queries land for CSS Custom Properties, letting developers apply groups of styles based on a parentβs custom property values β a native alternative to Sass mixins. Combined with container query names, this opens up powerful component-level theming patterns.
Relative Color Syntax gets a significant upgrade: Safari 18.0 is the first browser to support currentcolor and system color keywords inside relative color definitions. You can now write oklch(from currentcolor calc(L * 4) C H) to derive colors dynamically from the text color β reducing reliance on rigid design-system variables.
Other notable additions include content-visibility for rendering performance optimization, unprefixed backdrop-filter (finally, after Safari pioneered this feature back in 2015), support for animating display with @starting-style, and translucent accent-color support for form controls.
JavaScript
WebKit for Safari 18.0 adds support for Unicode 15.1.0 characters in RegExp, bringing 627 new characters to regular expression matching. The v flag with RegExp.prototype[Symbol.matchAll] enables more powerful Unicode matching patterns from the ECMAScript 2024 standard β including the ability to distinguish Latin from Cyrillic characters or split strings on emoji.
The engine also removes [[VarNames]] from the global object to match the updated web standard, fixing a long-standing issue where eval('var x;') followed by let x; in a separate script would fail.
Web APIs
URL.parse() arrives as a cleaner alternative to new URL() β returning null instead of throwing exceptions on invalid URLs. Declarative Shadow DOM expands with shadowRootDelegatesFocus, shadowRootClonable, and the new shadowRootSerializable attribute plus getHTML() method for serialization.
The bytes() method is added to Request, Response, Blob, and PushMessageData, returning Uint8Array directly and replacing the awkward arrayBuffer() pattern. Subresource integrity now works in imported module scripts, and document.fragmentDirective enables feature detection for text fragments.
Passkeys get three upgrades: automatic upgrade from passwords via mediation=conditional, cross-related-origin passkey sharing, and the WebAuthn prf extension for deriving symmetric encryption keys from passkeys.
Media
Managed Media Source and Media Source Extensions gain Web Workers support, enabling continuous video playback even when the main thread is busy with comments, chat, or other interactions. This is a real-world performance win for complex video-streaming sites.
WebRTC adds RFC 7789 packetization for HEVC, MediaStreamTrack processing in dedicated workers, and improved stats reporting. The Canvas API gets willReadFrequently for optimizing read-heavy canvas operations, and currentcolor support inside color-mix() and Relative Color Syntax.
Security
Safari 18.0 auto-upgrades all passive subresource requests to HTTPS in mixed-content settings, aligning with Mixed Content Level 2. Images, video, and audio on HTTPS pages will no longer silently load over HTTP.
Six new WebGL extensions ship, including EXT_texture_mirror_clamp_to_edge, WEBGL_render_shared_exponent, and OES_shader_multisample_interpolation β meaningful additions for graphics-intensive applications and games.
Performance
content-visibility is the headline performance feature. By telling the browser which parts of the page are likely offscreen, developers can significantly reduce initial rendering work. On long, content-heavy pages, this can dramatically improve time-to-interactive.
The removal of JPEG2000 support is also performance-adjacent: Safari was the only browser to support this format, and its removal pushes sites toward more efficient, universally-supported formats like AVIF, WebP, and JPEG XL. CDNs that were serving JPEG2000 exclusively to Safari via UA sniffing should update their configurations.
AppCache sees its final removal β the last WKWebView exceptions are gone, completing a deprecation journey that began in Safari 11.0.
Spatial Web & visionOS
Safari 18.0 for visionOS 2 is a landmark release for spatial computing on the web. WebXR immersive-vr sessions are now supported, powered by WebGL, with transient-pointer input for natural look-and-pinch interaction and hand tracking for 3D hand model animation.
Spatial photos and panoramas can now be experienced immersively using the Fullscreen API, and CSS clip-path shapes are reflected in visionOS interaction regions β making tap targets visible and properly shaped in spatial UI.
Bottom Line
Who should care? Front-end developers finally get View Transitions and Style Queries in Safari, closing a major gap with Chrome. Anyone building video-heavy sites benefits from Workers support for MSE. And the spatial web features make Safari on visionOS a serious platform for immersive content.
Biggest impact: The combination of View Transitions, content-visibility, and HTTPS auto-upgrade makes Safari 18.0 both a developer experience and a user security upgrade. The JPEG2000 removal is a breaking change for sites relying on UA-sniffed image delivery β test your CDN configuration before iOS 18 rolls out widely.