Table of Contents
1. Introduction
In June 2026, at WWDC26, Apple’s WebKit team brought a series of new Web platform features to Safari 27. Compared to the “incremental” pace of Safari updates in previous years, this year’s Web technology session can be called a minor explosion—from CSS layout to form controls, from 3D content embedding to spatial computing web experiences, each one directly addressing pain points front-end developers have had for years.
This article analyzes the five core features one by one, with code examples, to help you quickly understand how these new capabilities will change the way we develop.
2. Five Core Features
2.1 CSS Grid Lanes — Native Masonry Layout
This is the CSS new feature that drew the most attention from front-end developers at this WWDC. Grid Lanes gives the Web platform native support for Pinterest-style masonry layout—no JavaScript required, achievable with just a few lines of CSS.
Pain points of traditional solutions
Before this, there were only two ways to implement masonry layout:
| Solution | Problem |
|---|---|
| JavaScript calculation | Poor performance, laggy on window resize, requires ResizeObserver + absolute positioning |
CSS Grid + grid-auto-rows: masonry | Has been an experimental proposal since 2020, never shipped in any browser |
The Grid Lanes solution
Grid Lanes introduces the new syntax grid-template-columns lanes(), allowing elements to flow naturally between columns:
.masonry { display: grid; grid-template-columns: lanes(300px, 300px, 300px); gap: 16px;}
/* Responsive with auto-fill */.masonry-responsive { display: grid; grid-template-columns: lanes(auto-fill, minmax(280px, 1fr)); gap: 16px;}Unlike the previously abandoned masonry keyword, Grid Lanes is designed to be more general—it not only supports masonry, but also any custom grid arrangement algorithm, making it a much bigger concept than “masonry layout.”
Core characteristics:
- Pure CSS implementation, zero JavaScript, browser-native rendering optimization
- Adaptive, responsive when combined with
auto-fill,minmax() - Controllable ordering, supports arrangement strategies such as
grid-lane-order: column | row | shortest-column
In WebKit’s demo, for a masonry page with 200 images, after switching from the JS solution to Grid Lanes, layout computation time dropped from ~120ms to ~4ms.
2.2 Fully Customizable <select> Element
The war between front-end developers and the <select> element has lasted for more than twenty years. Safari 27 finally provides a native solution: appearance: base-select + a brand-new pseudo-element system.
New pseudo-element system
/* Enable the new stylable select */select { appearance: base-select;}
/* Dropdown trigger (replaces the browser's default arrow) */select::picker(select) { border-radius: 12px; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12); backdrop-filter: blur(20px);}
/* Option list */select::picker(select) option { padding: 12px 16px; font-size: 15px; display: flex; align-items: center; gap: 8px;}
/* Selected marker */select::checkmark { color: var(--accent-color); margin-left: auto;}
/* Selected state */select::picker(select) option:checked { background: var(--accent-color-light);}Key capabilities
| Pseudo-element / Selector | Purpose |
|---|---|
::picker() | Style the dropdown panel (background, border radius, shadow, blur) |
::picker-icon | Custom dropdown arrow icon |
::checkmark | Custom selected marker |
option:checked | Style for the currently selected item |
option:hover | hover state |
flex/grid inside ::picker(select) | Fully free option layout |
This means we can finally abandon those custom select libraries that weigh tens of KB (such as Choices.js, Select2, react-select, etc.) and implement design-spec-level dropdown selectors with pure native CSS.
2.3 <model> Element — Embedding 3D Models in Web Pages
Safari 27 adds the <model> HTML element, allowing interactive 3D models to be embedded directly in web pages without any JavaScript library or WebGL code.
Basic usage
<model src="airpods.usdz" width="600" height="400" camera-controls auto-rotate ar> <p>Your browser does not support 3D model display, please upgrade to Safari 27</p></model>Supported features
| Attribute / Capability | Description |
|---|---|
src | Model file URL (supports USDZ, glTF 2.0, OBJ) |
camera-controls | Users can rotate/zoom/pan the view |
auto-rotate | Automatically rotates slowly for display |
ar | Click to launch AR viewing (Quick Look on iOS/iPadOS) |
environment | Environment lighting presets (auto / studio / outdoor) |
poster | Placeholder image URL before the model loads |
loading | Lazy loading (lazy / eager) |
JavaScript API
The <model> element exposes a complete JavaScript control interface:
const model = document.querySelector('model');
// Play built-in animationsmodel.playAnimation('idle');
// Listen to loading statemodel.addEventListener('load', () => { console.log('Model loaded, triangle count:', model.triangleCount);});
// Programmatically control the cameramodel.camera.orbit(0, 45, 2); // theta, phi, radiusThe <model> element first hinted at this back when previewing USDZ files in Quick Look on iOS, and now it has officially entered the Web standard. For e-commerce, education, and product showcase websites, this is an important tool.
2.4 visionOS Immersive Website Environments
This is the most futuristic capability of this WWDC. Safari 27 supports spatial web experiences on visionOS 27: websites can declare themselves “immersive,” and thus be presented in a spatial way on Apple Vision Pro.
Declaring an immersive experience
<meta name="apple-immersive" content="full"><meta name="apple-immersive-environment" content="starry-night">The browser renders the page as a panel floating in the user’s space, while also supporting WebXR standard spatial interaction:
// Detect immersive web supportif ('xr' in navigator) { const session = await navigator.xr.requestSession('immersive-vr', { requiredFeatures: ['hand-tracking'], });
// Use the WebXR API to create spatialized UI panels const layer = new XRWebGLLayer(session, gl); session.updateRenderState({ baseLayer: layer });}The WebKit team emphasizes that this is not creating a new “visionOS-only” standard, but rather an extended implementation on top of the existing WebXR Device API standard. This means the same WebXR page can also run on devices such as Meta Quest and Pico.
Practical application scenarios:
- Product showcase: Furniture brands let users view furniture in space
- Data visualization: 3D charts and data dashboards
- Online education: Three-dimensional teaching such as anatomical models and molecular structures
- Art exhibitions: Spatial web art experiences
2.5 Cross-Browser Web Extensions Packaging
Safari 27 greatly simplifies the development and distribution process for Safari extensions.
Main changes
| Before | After (Safari 27) |
|---|---|
| Must be packaged through an Xcode project | Submit the extension package directly, no Xcode required |
| Can only be built and submitted on a Mac | Can be built and submitted on any platform (via App Store Connect API) |
| Large differences in Safari-specific APIs | Closer to Chrome/Firefox extension APIs, following the W3C WebExtensions Community Group specification |
| Cannot be reused across browsers | One codebase → Chrome + Firefox + Safari, with zero or minimal modifications |
New packaging approach
# Package directly with command-line tools, no Xcode neededsafari-web-extension build ./my-extension
# Submit via the App Store Connect APIxcrun altool --upload-app \ -f my-extension.zip \ -t osx \ --apiKey YOUR_KEY \ --apiIssuer YOUR_ISSUERThis is especially friendly to independent developers and open-source projects—previously, maintaining an extension for Safari required a Mac and an Apple Developer account, but now submission can be completed through CI/CD.
3. What These Features Mean
If you look at the five major features together, you’ll see they all point in the same direction: the Web platform is taking over more and more territory that originally belonged to “native.”
| Feature | What it replaces |
|---|---|
| CSS Grid Lanes | Masonry.js and other JS layout libraries |
Custom <select> | react-select, Choices.js, Select2 |
<model> element | Basic scenes in Three.js / model-viewer |
| Immersive Web | Exclusive experiences of native visionOS / iOS apps |
| Web Extensions packaging | Xcode + Mac build monopoly |
This is a steadily advancing standardization strategy: first let a need be solved in the community through JS libraries (validating demand), then build it into the platform through standardized APIs (providing native performance and security guarantees), relegating the JS approach to fallback compatibility (polyfill).
4. When It Will Be Available
WebKit’s response at WWDC:
| Timing | Availability |
|---|---|
| Now | All new features testable in Safari Technology Preview |
| September 2026 | Safari 27 officially released with iOS 27 / macOS 27 |
| Cross-browser | The Grid Lanes spec has entered the ED stage of the W3C CSS WG; <select> styling has cross-browser consensus in the Open UI CG; <model> is advancing in the Immersive Web CG |
It’s worth noting that CSS Grid Lanes and custom <select> are the two features most likely to be quickly followed across browsers—engineers at Chrome and Firefox have already expressed support in related standards discussions. The <model> element is currently exclusive to Safari, but Google has similar needs in the Android ecosystem (Scene Viewer), so the prospects for standardization look promising.