ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
新しいデザインによるAppKitアプリの作成
AppKitアプリをアップデートして、新しいデザインシステムを最大限に活用しましょう。タブビュー、スプリットビュー、バー、プレゼンテーション、検索、コントロールなどの重要な変更について詳しく説明し、カスタムUIでLiquid Glassをどのように使用するかのデモを行います。このビデオの内容を十分理解できるよう、まず一般的なデザインガイダンスとして「Get to know the new design system」を視聴することをおすすめします。
関連する章
- 0:00 - Introduction
- 1:23 - App structure
- 9:27 - Scroll edge effect
- 11:10 - Controls
- 17:30 - Glass
- 21:30 - Next steps
リソース
関連ビデオ
WWDC25
-
このビデオを検索
AppleのFrameworks Engineering ManagerのJeff Nadeauです 本セッションは「Build an AppKit app with the new design」です macOSの新しいデザインは Macアプリの外観と雰囲気の 共通基盤となり システム全体に フレッシュな 素材とコントロールをもたらします この新デザインの核となるのは Liquid Glass素材です それは光を反射して屈折させる 半透明のサーフェスであり ユーザーインターフェイスに 奥行きとダイナミズムを与えます AppKitには この新デザインの導入に 必要な機能がすべて揃っています 本セッションでは フレームワークの 重要な変更点について確認し macOS Tahoeで想定される 動作の概要を説明した後 新デザインの導入方法を 細かく調整する際に利用できる 新しいAPIをご紹介します 重要な変更点を 順番に説明していきますが まずは アプリの基本的な 構造上のコンポーネントから始めます 次に スクロールエッジエフェクトを 紹介しますが これは端から端まで 表示されるスクロールコンテンツの上での 読みやすさを向上させるエフェクトです 新デザインでは コントロールの外観と レイアウトも大きく変更されます 最後に Liquid Glass素材について 詳しく解説し その仕組みと そのデザインをカスタムUI要素に 取り入れる際に使用できる AppKit APIをご紹介します まずはアプリの構造です 新しいデザインシステムは Macのウインドウの外観を変革します ウインドウの形状を変更し 構造上の主な領域をガラスで枠付けします それらの領域の1つがツールバーです 新しいデザインシステムでは ツールバーの要素は ガラス素材の上に重ねられ ツールバー全体がコンテンツの上に 浮いているように見えるので ウインドウ内の階層構造を 印象付けることができます またガラスデザインでは コントロールが 論理的グループにまとめられます グループは各々固有のアクションに 基づいてまとめられるもので AppKitは 複数のツールバーボタンを 1枚のガラスに自動的にまとめます 異なるタイプのコントロールは 各々のガラス要素に分割されます セグメントコントロール、ポップアップボタン、 検索コントロールといった感じです AppKitは 各項目の コントロールビューのタイプに基づいて どのようにグループ化するか 自動的に判断します この自動での動作を変更するには NSToolbarItemGroupを使用して 項目をグループ化するか スペーサを挿入して項目を分離します Liquid Glass素材は適応性に優れており コンテキストに応じて インテリジェントに反応し 背景のコンテンツの明るさに合わせて 外観を変更します ツールバーのガラスは スクロールしたコンテンツが 特に明るいか暗い場合 ライト/ダークの外観も切り替えます この外観の変更は NSAppearanceのシステムを使用して ツールバーのコンテンツに伝達されるので ダークモードをサポートするために行った 作業はここにも適用されます NSToolbarは すべてのツールバー項目の 背景に ガラス素材を自動配置します しかし すべての項目を ガラスの上に配置すべきではありません カスタムタイトルや状態の表示などの 操作不能の項目では ガラス素材の使用は避けましょう
この写真アプリのツールバーの 情報テキストがよい例です ガラス素材の背景により ボタンのように見えてしまいます ガラス素材を除去するには NSToolbarItemで isBorderedプロパティをfalseに設定します だいぶよくなりました
ツールバーの他の項目に適した もう1つの便利な ガラス素材の機能は 色付けです NSToolbarItemの 新しいstyleプロパティを使用して prominentスタイルを指定します prominentスタイルは ディスプレイに最適な アクセントカラーでガラスに色を付けます 状態の表示や重要なアクションの強調に 使うのに最適な機能です prominentを指定したツールバー項目の 外観をさらにカスタマイズするには backgroundTintColorプロパティを使用して ガラスに使う特定の色を選択します ツールバー項目に注意を引きつける もう1つの方法はバッジです NSItemBadge APIを使うと ツールバー項目から 新規または保留中の コンテンツに移動できることを示せます 例えば バッジを使って 未読メッセージの数を表示したり 新しい通知の受信を知らせたりできます ガラスのツールバーの説明は以上で 次はウインドウのメインコンテンツです メインコンテンツは通常 分割ビューを使って整理します 新デザインでは サイドバーは ウインドウのコンテンツの上に浮かぶ ガラスのペインとして表示されます 一方 インスペクタは端から端までガラスで 覆われ コンテンツと並べて配置されます アプリでこの効果を利用するには NSSplitViewControllerを使用します サイドバーやインスペクタの動作で 項目間を分割する場合 AppKitは 適切なガラス素材を 各項目に自動的に適用します サイドバーをガラスの上に配置したので 従来のサイドバーの素材は 不要になりました サイドバー内の素材を表示するために NSVisualEffectViewを使用している場合 ガラス素材でコンテンツが 透けて見えるのを妨げます これらの視覚効果ビューは ビュー階層から削除する必要があります
サイドバーのガラスは ウインドウの上に 浮いているように見えるので 隣接する分割領域のコンテンツの上に 表示できます これがうまく機能するのは 水平スクロールコンテンツや スライドするとスワイプアクションが 表示される 項目の一覧表示 マップや映画のポスターなど サイドバーの領域にまで及ぶ リッチコンテンツなどです 分割コンテンツを サイドバーの下に表示するには automaticallyAdjustSafeAreaInsets プロパティをtrueに設定します これを設定する対象は サイドバーの下に 拡張したいコンテンツです サイドバー自体ではありません このプロパティがtrueの場合 NSSplitViewはそのアイテムのフレームを サイドバーの下に拡張した上で セーフエリアのレイアウトガイドを適用し コンテンツを 隠されない領域に 配置しやすいようにします 写真やアートワークなどの リッチコンテンツでは 浮かぶガラス素材の サイドバーの価値がよくわかりますが この効果を利用するために コンテンツの一部が隠れるようにするのは 通常望ましくありません このApp Store用ポスターは 端から端まで 表示すると印象的な効果を生み出しますが アートワークには元々 サイドバーのサイズに見合った 無駄な領域は含まれていません サイドバーを非表示にすると 何が実際に問題なのかわかります アートワークの一部を隠すのではなく コンテンツがミラーリングされてぼかされ 画像自体を拡張しています AppKitにはこのエフェクトを提供する 新しいAPIがあります
NSBackgroundExtensionViewです このビューでは セーフエリアを使用して コンテンツをビュー内の 隠れていない場所に配置するとともに ビジュアルエフェクトを適用して 画像自体を端から端まで拡張します 実際に使用するには NSBackgroundExtensionViewを作成し 分割された項目の フレーム全体を埋めるように配置します それにContentViewを割り当てると フローティングサイドバーを避けるように セーフエリアに配置されます これで完了です BackgroundExtensionViewは コンテンツビューのレプリカを 自動的に作成して セーフエリアの外の スペースを埋めます フローティングサイドバーとツールバーには 新デザインの重要な要素である 同心性が反映されています これらの要素はそれぞれ コンテナ(ここではウインドウ)の角の半径に すっきり収まる曲率でデザインされています そして この関係は双方向的です 新しいデザインシステムでは 角の半径は より緩やかでゆとりがあります 角の半径は ウインドウのスタイルによって様々です ツールバーのあるウインドウは より半径が大きくなり ガラスのツールバー要素を 同心的に囲むようにデザインされており ツールバーのサイズに応じ拡大/縮小します タイトルバーのみのウインドウの 角の半径はより小さく ウインドウコントロールを コンパクトに囲みます 大きな角は ウインドウにソフトな印象と エレガントな同心性をもたらしますが ウインドウの端に近いコンテンツが 切れてしまう場合もあります コンテンツを角に適切に収めるには 新しいNSView.LayoutRegion APIを使います レイアウト領域は ビューのエリアを セーフエリアと 同様に記述しますが 角を回避する機能などが 組み込まれています 角のサイズに応じて 領域を横向きまたは縦向きに 挿入できます APIをご紹介しましょう セーフエリア または標準の レイアウト余白を持つエリアの いずれかの領域を取得できます 領域には角への適応機能が含まれ 領域に横向きまたは縦向きの インセットを適用します LayoutRegionから layoutGuideメソッドを使用して Auto Layoutの制約を適用するための ガイドを取得します この領域の生のジオメトリを 端のインセット または現在の 四角形の形式で取得できます
こちらは この新しいAPIの 実際の使用例です ボタンが角と重なっています これに制約を追加して 領域が角と重ならないようにします updateConstraintsメソッドで 横向きの角への適応を含む セーフエリアの レイアウトガイドを取得します このレイアウトガイドは いわば セーフエリアのレイアウトガイドの典型です しかし 角のエッジに 余分なインセットが含まれています
次に レイアウト制約をいくつか作成し ボタンのジオメトリを セーフエリアガイドに結び付けます ほんの数行のコードのみで ボタンが角の横に うまく収まるようになりました 次に スクロールエッジエフェクトを 紹介します 新デザインでの推奨方法では コンテンツの全体を端から端まで表示し その上にLiquid Glass要素を重ねます Liquid Glassとコンテンツを分離するために システムはこれら2つが重なる領域に ビジュアルエフェクトを適用します このエフェクトには2種類があります 1つはソフトエッジスタイルで コンテンツを徐々にぼかしフェードさせます もう1つのハードエッジスタイルは より不透明な背景を使用して コンテンツとフローティング要素を より明確に分離します
スクロール可能なコンテンツでは スクロールエッジエフェクトは NSScrollViewにあります スクロールビューは ビューの上に浮かぶコンテンツに基づいて エフェクトのサイズと形状を変更します フローティング要素の移動に応じて エフェクトは自動的に適応します エフェクトが自動適用されるのは ツールバー項目、タイトルバーアクセサリ、 および新しいタイプのアクセサリである 分割項目アクセサリの下です 分割項目アクセサリは タイトルバーアクセサリとよく似ていますが 分割ビューコントローラ内の1つのみの 分割領域にまたがる点が異なり 分割領域の上端または下端の いずれかに配置できます 分割項目アクセサリを追加するには NSSplitViewItemAccessoryViewController を作成して addTopAlignedAccessoryViewControllerか addBottomAlignedAccessoryViewController メソッドを使用して 分割ビュー項目にアタッチします 分割項目アクセサリとタイトルバー アクセサリは フローティングコンテンツを スクロールエッジエフェクトに統合する 最良の方法です これらのアクセサリは エフェクトの サイズと形状に影響し コンテンツのセーフエリアを挿入して コンテンツのレイアウトを簡素化します さて どんなデザインシステムも私の好きな 要素であるコントロールなしには不完全です macOS Tahoeでは コントロールは まったく新しい外観になります 新デザインは 各種のデバイスをまたいで ファミリーの共通性を高めます ボタン、スイッチ、スライダなどの 要素の外観を macOS、iOS、iPadOSの間で統一します この変更では Macのコントロールならではの 特徴と機能が保持されるよう 十分な注意が払われています
macOSのコントロールでは ミニからラージまで 様々な標準サイズを利用できます これらの異なるサイズにより コントロール間に幅広いレベルの 密度と階層が確立されています macOS Tahoeではこのリストに もう1つサイズが追加されます 最も重要なアクションを強調するために 使用できる エクストララージです エクストララージのサイズは アプリで最も重要なアクションを 目立たせる上で最適です 対象は ユーザーがアプリを起動する 目的となるようなアクションです 例えば メディアプレーヤーで 音楽をキューに入れる操作や 通信アプリで電話をかける操作などです 新サイズ導入のほかに 今回の刷新を機会として コントロールの高さも見直しました
macOSの過去のリリースと比較して ミニ、スモール、ミディアムの コントロールの高さを少し拡張しました コントロールラベルの周りに もう少し余白をもたせ クリックターゲットのサイズも 大きくしています 様々なコントロールの高さに適応させる際は AutoLayoutを使用します 高さをハードコーディングしないでください 複雑なインスペクタやポップオーバーなど 既存の高密度レイアウトとの 互換性を維持するには AppKitが提供する mac OSの過去のリリースと一致する コントロールサイズをリクエストする APIを使用できます prefersCompactControlSizeMetrics という新しいプロパティを NSViewで使用します このプロパティは ビュー階層において継承されます trueに設定すると AppKitコントロールは macOSの過去のリリースと 互換性のあるサイズに戻ります 新デザインシステムでは いくつかの 新しいコントロール形状も導入されています ミニからミディアムまでのサイズでは 角丸長方形の形状が維持されるため 水平方向の密度が高くなります 一方 ラージとエクストララージは カプセルのような丸みのある形状になり 生じたスペースを活用できます カスタムデザインで同心性を実現するには コントロール形状の推奨設定を変更します この例では 誤字チェックを行う カスタムのコールアウトバーを ミディアムのコントロール形状で 作成しました バーのコンテナはカプセルの形状ですが 中にある角丸長方形のコントロールと マッチしません これは新しいborderShapedプロパティを 使用する 最適なユースケースです このAPIを使用すると ボタン、ポップアップボタン、 セグメント化されたコントロールの形状を 上書きできます
上書きにより カプセル形状を使用するようにすると カスタムコンテナに うまく収まるようになりました
形状のほかに ボタンの素材も 新しいガラスベゼルスタイルを使用して カスタマイズできます このベゼルスタイルは 標準のボタンの背景を Liquid Glass素材で置き換えます 他のコンテンツの上に 浮かばせる必要があるボタンに最適です ガラスベゼルスタイルは 既存の bezelColorプロパティと互換性があり これにより 指定した色で ガラスに色付けできます 新デザインシステムでは コントロールの 強調度の概念もAppKitに導入されます ボタンの強調度を変更することで ボタンの色に付与する 視覚的な重みのレベルを制御できます これにより 同じインターフェイス内にある デフォルトボタンなどの より強調したいボタンを目立たなくさせずに ボタンに色を付けることができます この手法は 注意を要するボタンに使用できます 赤は目立つ色で 注意を要する アクションを示すサインとして有効ですが 近くのコントロールを目立たなくさせない 強調度レベルに設定する必要があります
色の強調度のタイプは4つあります automaticは コントロールの スタイルと構成に応じて 適切な強調度のレベルを 選択する必要があることを示します noneは 色がほぼないか まったくないことを示します secondaryは 色をより抑えたレベルで 適用することを示します primaryは 最も顕著なレベルで 色を適用することを示します
より強調度の低い色をボタンに適用するには tintProminenceプロパティを secondaryに設定します この場合 デフォルトでは アクセントカラーが使用されます この例では ボタンを 他よりも少し際立たせます デフォルトボタンとして 機能させたいためです そのため returnキーでも 同等の操作ができるようにしました これで ボタンがキーボード入力に 予測可能な方法で応答します デフォルトボタンなので 最も強調度の高いレベルの色が 自動適用されます
色の強調度はスライダにも適用できます tintProminence APIにより トラックをアクセントカラーで 塗りつぶすか 選択できます noneに設定すると スライドのトラックは 塗りつぶされません secondaryまたはprimaryに設定すると 塗りつぶされます macOS Tahoeでは もう1つ興味深い スライダの塗りつぶし機能があります 塗りつぶしの起点として 最小点の端のほかに トラックの任意の場所を指定できます 新しいneutralValueプロパティを使って トラック塗りつぶしの起点となる 値を設定します この再生速度コントロールの例では neutralValueを「1x」に設定したので 再生速度がそれよりも 遅くなったり速くなったりすると 青い塗りつぶしにより 選択した値とデフォルト値の間の 差異がわかります 新しいデザインシステムでは メニューもアップデートされます 外観がリフレッシュされ アイコンの使用方法も 大きく拡張されます
メニューバーのメニューと コンテキストメニューの両方が アイコンで 重要なアクションを示すようになりました メニューの各セクション内で アイコンが一列に並び 見つけやすくなります メニュー項目に 明瞭で認識しやすい シンボルを追加することで メニュー内の重要なアクションを ユーザーが素早く発見できるようになります
「Get to know the new design system」では メニュー項目のシンボルを 選択する際に役立つ 追加のガイダンスをご紹介します ぜひご確認ください 最後に Liquid Glass要素を アプリに統合する方法を解説します Liquid Glass素材を カスタムUI要素に統合する前に この新素材の背景となる デザイン上の意図を認識することが重要です
Liquid Glass要素は UIの最上位層に配置され コントロールとナビゲーションは 特別な 機能上のレイヤーに属するようになります この認識に基づき Liquid Glassを使用する対象は アプリの中でも最も重要な要素である 階層の最上位レベルのコントロール のみに限定する必要があります 対象の好例は フリーボードの インライン編集コントロールです コンテンツと並ぶのではなく それらの上に浮かんでおり Liquid Glass素材により美しく動作します
コンテンツをガラスに配置するには NSGlassEffectView APIを使用します contentViewを設定すると AppKitが 必要なすべての視覚的処理を適用し ガラスが周囲に適応する際にも コンテンツの読みやすさを確保します そのため NSGlassEffectViewは ビューとしてコンテンツの背景に置けません 角の半径と色のプロパティを使用して ガラスの外観をカスタマイズできます NSGlassEffectViewを既存の要素に 導入する方法の例を 見てみましょう
このフィットネスアプリでは 毎日のトレーニングの統計と ワークアウトの種類を選択する カスタムコントロールがあります 横向きのNSStackViewを使用して それらを表示しています これらはUIの重要な部分なので 両方ともガラスの上に配置します Liquid Glass素材を導入するには 新しいコードを数行書く必要があります まず 表示したいガラス要素の各々に NSGlassEffectViewを作成してから それぞれのcontentViewプロパティを 目的のビューに設定します GlassEffectViewはAuto Layoutを使用して ジオメトリをcontentViewに結び付けるので 同期を維持するための作業は不要です
次に GlassEffectViewを ビュー階層内に配置します この例ではStackViewを更新して 新しいGlassEffectViewに置換しました 近くに複数のガラス要素がある場合 NSGlassEffectContainerViewを使って グループ化します GlassEffectContainerViewは 複数のガラス要素を結合し 単一のレンダリングエフェクトにします この処理のメリットを説明します
まず グループ化したガラス要素は リキッドビジュアルエフェクトにより 柔軟に結合/分離できる点です 複数のガラス要素は 互いの近さと spacingプロパティの 値に基づき 融合します この値はNSGlassEffectContainerViewで 取得できます
また 周囲環境に適応するガラスの外観は グループ化した要素間で共有されます それにより 背景のコンテンツが変化しても 外観の統一感が要素間で維持されます さらに グループ化は 視覚的な正確さの面でも重要です Liquid Glass素材は 光を反射および屈折させ 近くのコンテンツの色を反映します
この効果を利用するために ガラス要素は 自身より広い領域から コンテンツをサンプリングしますが そのサンプリング領域に 別のガラス要素が 含まれる場合はどうなるでしょう 実は ガラス要素は他のガラスを 直接はサンプリングできません この場合 視覚効果の一貫性は損なわれます ガラスエフェクトをグループ化すると そのグループの要素は サンプリング領域を共有します これにより 視覚的な一貫性が高まるだけでなく ガラスエフェクトの パフォーマンスも向上します サンプリングの送信が グループ全体で1回だけになるためです
先のサンプルアプリに戻ると これら2つのガラス効果は 同じ論理グループに属しているので ガラスエフェクトコンテナ内に 入れる必要があります コンテナの設定方法はシンプルです この例では NSGlassEffectContainerViewを作成し スタックビューを コンテナの contentViewに設定します コンテナとそのコンテンツビューには Auto Layoutを使用して 一緒に制約を適用します すると このコンテナで既存の レイアウトをきれいに置換できます Liquid Glass素材は アプリの 主要コントロールの存在感を高め コンテンツをウインドウの端から端まで シームレスに表示できるようにします これは アプリの独自性を生み出す機能を 目立たせる上で 最適な方法です
次のステップとして まず アプリの構築に Xcode 26を導入しましょう 新デザインの大部分を すぐに利用できるようになります コンテンツは可能な限り 端から端まで拡張しましょう フローティングガラスのツールバーと サイドバーを最大限に活用できます 新しいコントロールサイズに適応するために アプリを見直し 高さのハードコーディングや 柔軟性のないレイアウトの制約が 使用されていないか確認します シンボルアイコンで メニューのアクションを強化しましょう 最後に インターフェイスの 重要な要素を特定して Liquid Glass素材で レベルアップさせましょう ご視聴ありがとうございます デベロッパの皆さんに感謝します
-
-
3:11 - Removing toolbar item glass
// Removing toolbar item glass toolbarItem.isBordered = false
-
3:30 - Tinted toolbar controls
// Tints the glass with the accent color. toolbarItem.style = .prominent // Tints the glass with a specific color. toolbarItem.backgroundTintColor = .systemGreen
-
3:58 - Toolbar badges
// Numeric badge NSItemBadge.count(4) // Text badge NSItemBadge.text("New") // Badge indicator NSItemBadge.indicator
-
5:25 - Content under the sidebar
// Content under the sidebar splitViewItem.automaticallyAdjustsSafeAreaInsets = true
-
8:47 - Avoiding a window corner
// Avoiding a window corner func updateConstraints() { guard !installedButtonConstraints else { return } let safeArea = layoutGuide(for: .safeArea(cornerAdaptation: .horizontal)) NSLayoutConstraint.activate([ safeArea.leadingAnchor.constraint(equalTo: button.leadingAnchor), safeArea.trailingAnchor.constraint(greaterThanOrEqualTo: button.trailingAnchor), safeArea.bottomAnchor.constraint(equalTo: button.bottomAnchor) ]) installedButtonConstraints = true }
-
15:31 - Levels of prominence
// Create buttons with varying levels of prominence // Prefer a “secondary” tinted appearance for the shuffle and enqueue buttons shuffleButton.tintProminence = .secondary playNextButton.tintProminence = .secondary // The "play" will automatically use primary prominence because it is the default button playButton.keyEquivalent = "\r"
-
18:42 - Adopting NSGlassEffectView
// Adopting NSGlassEffectView let userInfoView = UserInfoView() let activityPickerView = ActivityPickerView() let userInfoGlass = NSGlassEffectView() userInfoGlass.contentView = userInfoView let activityPickerGlass = NSGlassEffectView() activityPickerGlass.contentView = activityPickerView let stack = NSStackView(views: [userInfoGlass, activityPickerGlass]) stack.orientation = .horizontal
-
21:03 - Adopting NSGlassEffectContainerView
// Adopting NSGlassEffectContainerView let userInfoView = UserInfoView() let activityPickerView = ActivityPickerView() let userInfoGlass = NSGlassEffectView() userInfoGlass.contentView = userInfoView userInfoGlass.cornerRadius = 999 let activityPickerGlass = NSGlassEffectView() activityPickerGlass.contentView = activityPickerView activityPickerGlass.cornerRadius = 999 let stack = NSStackView(views: [userInfoGlass, activityPickerGlass]) stack.orientation = .horizontal let glassContainer = NSGlassEffectContainerView() glassContainer.contentView = stack
-
-
- 0:00 - Introduction
Learn about the updated design system for macOS. The new design introduces Liquid Glass, a translucent surface that adds depth and dynamism to the user interface. AppKit is now updated to support this new design, including changes to basic structural components, the introduction of a scroll edge effect for legibility, and updates to the appearance and layout of controls. Learn how to implement these changes and utilize new APIs to incorporate Liquid Glass into your custom UI elements.
- 1:23 - App structure
The new Mac design system introduces Liquid Glass for toolbars and sidebars, enhancing hierarchy and visual appeal. Toolbar elements are automatically grouped on Liquid Glass, which adapts its appearance based on content brightness. Toolbar items can be customized. Sidebars appear as floating glass panes, while inspectors use edge-to-edge glass. The design system emphasizes concentricity, with softer window corner radii that vary based on style. To position content near corners, the new 'NSView.LayoutRegion' API provides corner-avoiding layout guides, ensuring a polished and elegant user interface.
- 9:27 - Scroll edge effect
The new design introduces the scroll edge effect, a visual separation between edge-to-edge content and floating Liquid Glass elements. This effect manifests as either a soft fade or a hard opaque backing and dynamically adapts within 'NSScrollView' as floating elements change. The effect is automatically applied underneath toolbar items, titlebar accessories, and new split item accessories, which span one split within a split view controller and which you can place at the top or bottom edge. These accessories influence the effect's size and shape, insetting the content safe area for easier layout.
- 11:10 - Controls
In macOS Tahoe, the control design system is updated to enhance consistency across Apple devices. The new system includes an extra-large control size for emphasizing primary actions, and slightly taller mini, small, and medium controls for better readability. Control shapes now vary based on size; smaller sizes are rounded rectangles, while larger ones are capsules. You can customize control shapes, materials, and prominence using the new APIs. The tint prominence property allows controls to have varying levels of visual weight, making it easier to distinguish between different actions. Sliders are also updated, with the ability to anchor the fill at any location and to use tint prominence. Menus are refreshed with a more modern appearance and now prominently feature icons in a single column for easier scanning and navigation.
- 17:30 - Glass
To integrate Liquid Glass elements into your app, consider the design intent and limit its use to the most important controls that float at the top level of the UI hierarchy. The 'NSGlassEffectView' API provides functionality to place content on glass, and you can customize its appearance with corner radius and tint color properties. When multiple glass shapes are close together, group them by using 'NSGlassEffectContainerView' to ensure fluid visual effects, uniform appearance, and consistent sampling of nearby content.
- 21:30 - Next steps
To leverage the latest design features, build your apps with Xcode 26. This allows for immediate implementation of edge-to-edge content, utilizing the floating glass toolbar and sidebar. Enhance menu actions with symbol icons and incorporating Liquid Glass material for key interface elements to modernize your app's look and feel.