Design System

Widgets & Registry - Fullscreen

Overview
Review paths

Fullscreen Host Mode

Host-managed fullscreen mode for deeper work, plus the interior workspace payload that belongs inside that expanded host canvas.

Fullscreen Host Mode

Fullscreen is a host-managed expanded mode requested through the Apps SDK. The registry contract here only covers the interior workspace payload rendered inside that host canvas.

What it is for

Document fullscreen as host behavior first, then show the workspace payload that fits inside that host-owned expanded canvas.

Use when

The task needs more space than an inline card, rail, or PiP can safely provide.

Do not use when

You are treating fullscreen like permission to replace chat with a standalone app shell.

Related patterns

App Surfaces · Fullscreen Workspace · MCP Client Interface · Widgets & Registry · Inspector Rail

Escalation path

Inline or rail -> request host fullscreen for deep work -> use the host composer for follow-up prompts.

What This Page Should Mean

This is not the app taking over the screen. It is the host granting more room while still keeping the conversation and composer model intact.

What The Registry Owns

The registry owns the interior workspace payload: the task canvas, supporting context, and action strip that live inside the host-managed fullscreen mode.

Mock ChatGPT fullscreen viewport

The host expands the task canvas, but the composer still exists below the app response area.

requestDisplayMode: fullscreen
New app responses appear as a truncated snippet above the composer, so the fullscreen payload should assume ongoing conversational follow-up instead of embedding its own composer.

Interior workspace payload

Estimate review workspace

This shell is the payload designed for host fullscreen. It is not the fullscreen mode itself.

Selection summary

Fullscreen should deepen engagement, not recreate a standalone app header, sidebar, and composer.

Design this payload so a conversational follow-up can change the selection, filters, or next action without requiring a second in-widget composer.