Overview
ChatGPT is OpenAI's AI assistant, on the web and in iOS and Android apps. Logged out, chatgpt.com shows the real product shell with its sidebar and composer, so the web layer here describes the product and not a marketing page. The look is monochrome: near-black on near-white, no brand color, and the platform's own font. [Measured]
What defines the look:
- No brand color. The product is near-black
#0d0d0d, near-white#fcfcfcand grays. [Measured] - System fonts in the product. The stack starts with the platform's own face. The published guidance says SF Pro on iOS and a sans-serif on Android. [Measured]
- Full pills. Buttons use a 999 radius and are 44 high. [Measured]
- A strict inversion in dark. The filled button flips to white with
#0d0d0dtext. [Measured] - Color means status. Blue, green, red and orange exist only as semantic tokens in the published set. [Measured from the published design system]
Source for this file: chatgpt.com logged out, plus the openai.com home, ChatGPT overview and pricing pages, measured in a browser at 1440 and 390 wide on 2026-11-01 with a dark color scheme pass. Token names and scales come from OpenAI's published Apps SDK UI package (version 0.2.2) and UI guidelines. These describe apps that run inside ChatGPT, so they are strong evidence for the shell but are not its full specification. See Known Gaps.
Core
Colors
| Role | Value | Source |
|---|---|---|
| Ink and filled button | #0d0d0d | gray 1000 in the published set, matches the live shell [Measured] |
| Page | #fcfcfc | live shell [Measured] |
| Soft button | #f3f3f3 | live shell [Measured] |
| Secondary text | #5d5d5d | gray 500 in the published set, matches the live shell [Measured] |
| Hairlines | black at 5, 10 and 20 percent, #e8e8e8 | live shell [Measured] |
| Info | #0285ff, strong #0169cc | blue 400, 500 [Measured from the published design system] |
| Success, danger, warning | #00a240, #e02e2a, #e25507 | green, red and orange 500 [Measured from the published design system] |
| Dark page and surface | #000000, #212121 | live shell. The published surface is #212121 [Measured] |
| Dark text | #ffffff, #cdcdcd | live shell [Measured] |
| Dark controls | #414141, also at 50 percent | live shell [Measured] |
Typography
| Role | Size | Face and weight |
|---|---|---|
| Prompt title | 24 on 28 | system 400 [Measured] |
| Composer text | 17 on 24 desktop, 16 on 24 mobile | system 400 [Measured] |
| Body | 16 on 24 | system 400 [Measured] |
| Button | 14 on 20 | system 600, tracking -0.08 [Measured] |
| Sidebar row | 14 on 20 | system 400, tracking -0.15 [Measured] |
| Legal | 12 on 16 desktop, 11 on 15 mobile | system 400 [Measured] |
| Site title | 64 on 64 | OpenAI Sans 500, tracking -1.92 [Measured] |
| Site body | 17 on 28 | OpenAI Sans 400 [Measured] |
Shape and spacing
Radius tokens are 2, 4, 6, 8, 10, 12, 16, 20 and 24 plus full. [Measured from the published design system] In the live shell: buttons full and sidebar rows 10. Radii of 24 and 28 also appear on elements that were not identified. [Measured] Control heights step 22, 24, 26, 28, 32, 36, 40, 44 and 48. [Measured from the published design system]
Iconography and motion
Not measured. [Inferred]
Themes
Light and dark, following the system setting. The published set defines both. [Measured]
Platform: iOS
Items marked from the published design system come from OpenAI's UI guidelines, which address the ChatGPT mobile interface. No device capture was done.
Back and up navigation
Expected on iOS: Chevron plus previous title, swipe from the left edge.
Not measured. [Inferred]
Primary navigation
Expected on iOS: Bottom tab bar, about five items.
Not measured. [Inferred]
Main action
Expected on iOS: Nav bar or bottom bar button.
Cards inside a conversation carry at most two actions. Brand accents, when an app has them, apply to its primary button only. [Observed from the published design system]
Sheets, dialogs and messages
Expected on iOS: Action sheets, alerts, modals.
Fullscreen views keep the composer overlaid, and tapping it opens the chat sheet. Picture in picture stays fixed to the top of the display area. [Observed from the published design system]
Controls
Expected on iOS: Cupertino switches, pickers, segmented controls.
Not measured. [Inferred]
Text sizing
Expected on iOS: Dynamic Type.
Layouts are asked to support text resizing without breaking. The system font is SF Pro on iOS. [Observed from the published design system]
Touch and pointer targets
Expected on iOS: 44pt minimum.
Not measured. [Inferred]
Insets and system bars
Expected on iOS: Safe areas, status bar.
Not measured. [Inferred]
Icons
Expected on iOS: SF Symbols or custom.
Not measured. [Inferred]
Account and sign-in rules
Expected on iOS: Equivalent login option when third-party sign-in exists (Guideline 4.8) and in-app account deletion. Note the date checked.
Not verified. Sign-in rules and account deletion were not checked. [Inferred] Checked: 2026-11-01 against the public web only.
Platform conformance
Expected on iOS: For each important component: what iOS expects, what this app does, and why it deviates.
The app is expected to share monochrome surfaces, the system font and full pill buttons with the web. [Inferred]
Platform: Android
Items marked from the published design system come from OpenAI's UI guidelines, which address the ChatGPT mobile interface. No device capture was done.
Back and up navigation
Expected on Android: System back and gesture, up arrow in the top bar.
Not measured. [Inferred]
Primary navigation
Expected on Android: Navigation bar, rail on tablets.
Not measured. [Inferred]
Main action
Expected on Android: Floating action button.
Cards inside a conversation carry at most two actions. Brand accents, when an app has them, apply to its primary button only. [Observed from the published design system]
Sheets, dialogs and messages
Expected on Android: Bottom sheets, dialogs, snackbars.
Fullscreen views keep the composer overlaid, and tapping it opens the chat sheet. Picture in picture stays fixed to the top of the display area. [Observed from the published design system]
Controls
Expected on Android: Material switches, pickers, chips.
Not measured. [Inferred]
Text sizing
Expected on Android: Font scale.
Layouts are asked to support text resizing without breaking. The system font is a platform sans-serif on Android. [Observed from the published design system]
Touch and pointer targets
Expected on Android: 48dp minimum.
Not measured. [Inferred]
Insets and system bars
Expected on Android: Edge to edge, system bars.
Not measured. [Inferred]
Icons
Expected on Android: Material Symbols or custom.
Not measured. [Inferred]
Account and sign-in rules
Expected on Android: Account deletion and data safety requirements. Note the date checked.
Not verified. Sign-in rules and account deletion were not checked. [Inferred] Checked: 2026-11-01 against the public web only.
Platform conformance
Expected on Android: For each important component: what Android expects, what this app does, and why it deviates.
The app is expected to share monochrome surfaces, the system font and full pill buttons with the web. [Inferred]
Platform: Web
The logged-out product shell at chatgpt.com, and the openai.com pages, measured at 1440 and 390 wide.
Back and up navigation
Expected on Web: Browser back, breadcrumbs.
Browser back. [Observed]
Primary navigation
Expected on Web: Top nav or sidebar.
A left sidebar of 36 high text rows at 10 radius on desktop, collapsing away at the mobile width, where Log in stays in the top bar. [Measured]
Main action
Expected on Web: Page-level button.
A composer centered under a 24px prompt title, with suggestion pills beneath it. Log in is a #0d0d0d pill 44 high with white 14px text. [Measured]
Sheets, dialogs and messages
Expected on Web: Modals, toasts.
A logged-out prompt card sits in the sidebar with Log in as a soft #f3f3f3 pill. Other dialogs were not measured. [Measured]
Controls
Expected on Web: Native or custom.
Tool chips such as Deep research are 36 high at 10 radius. Sign up is a white pill with a black 20 percent border. [Measured]
Text sizing
Expected on Web: Browser zoom.
Sizes are fixed. The composer drops from 17 to 16 at the mobile width. [Measured]
Touch and pointer targets
Expected on Web: Pointer and keyboard.
Buttons are 44 high and sidebar rows 36. [Measured]
Insets and system bars
Expected on Web: Viewport, scrollbars.
Not measured. [Inferred]
Icons
Expected on Web: Any.
Not measured. [Inferred]
Account and sign-in rules
Expected on Web: Not applicable unless the product has accounts.
The shell loads without an account, and a card says logging in gives answers based on saved chats. Sending a message was not tried. Other rules were not checked. [Observed]
Platform conformance
Expected on Web: For each important component: what the web norm is, what this app does, and why it deviates.
The shell uses the platform font rather than a brand font, so it looks native on each system. OpenAI Sans appears only on the marketing pages. [Measured]
Cross-platform consistency
Consistent across platforms: monochrome surfaces, the system font and full pill buttons. [Measured for web, Inferred for the apps]
Intentionally different: not measured. [Inferred]
Do's and Don'ts
Do
- Stay monochrome and let the conversation carry the color.
- Use the platform's system font in the product.
- Use full pills for buttons at 44 high.
- Invert the filled button in dark mode.
Don't
- Don't add a brand color to the chrome.
- Don't use custom fonts inside the product, even in fullscreen views.
- Don't use color outside status.
- Don't put more than two actions on a card.
Known Gaps
- A signed-in conversation, its message bubbles and its settings were not measured. Only the logged-out shell was.
- The published package and guidelines describe apps inside ChatGPT, so applying them to the host app is a judgement. The live shell matched the ink and secondary text values. It did not match the page color in either theme (
#fcfcfcagainst white in light,#000000against#212121in dark), and live values are used in those cases. - The guidelines give no pixel sizes, touch targets or insets, so those mobile topics stay inferred.
- The chatgpt.com measurement names a system font first, so the face seen depends on the device. Sizes and weights are still measured.
- OpenAI Sans is private and is used only on the site. Geist is within 1 percent at 17px. Instrument Sans matched width more closely but its forms are narrower in the round letters.
- Account deletion and store sign-in rules were not verified.