Skip to content

Commit 88d1ee5

Browse files
authored
Merge pull request #20 from theprototype-app/docs-38-int-b
[docs] 1.30: the redesign — The Interface page, UI kit, phone layout + editors, Configure Scene ▸ Play (38-int-b)
2 parents 7f1c350 + d2f015e commit 88d1ee5

16 files changed

Lines changed: 289 additions & 7 deletions

‎docs/animation.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,13 @@ The clipboard is held **by channel** and relative to the earliest key copied, so
105105
| Zoom | Wheel (up = in), or the ± buttons |
106106
| Pan | Right- or middle-drag, <kbd>Shift</kbd>+wheel, or the navigator thumb |
107107

108+
## On a phone
109+
110+
Since 1.30 the Animation window fits a phone (and any window narrower than 640 px): it shows one pane at a time —
111+
**Channels**, **Timeline**, **Key** or **Clip** — from a switch in its header. Drag keys and easing handles with a
112+
finger, two fingers pan and pinch-zoom the timeline, and a long press opens the key or plot menu (the right-click
113+
menu on a desktop). Tool rows that do not fit scroll sideways.
114+
108115
## Auto-key
109116

110117
Switch **Auto-key** on and posing the object records it: drag the gizmo or type a number in the properties panel and a key lands at the playhead, creating the channel if it does not exist yet. Switch it off and the object goes back to being just an object.

‎docs/appearance.md‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,22 @@ Profiler's text).
2424
The theme applies at once and is remembered on this device; a built-in theme is painted before the first frame on the
2525
next visit, so it never flashes the default. Icons follow the theme's colours too.
2626

27+
Since 1.30 every theme follows the **one-accent rule**: blue marks what you can act on or have selected, and orange is
28+
kept for Play, recording and live states. The light theme and custom themes now restyle **every** surface — windows,
29+
menus, dialogs, the HUD and the node editor — because every colour comes from the design tokens.
30+
2731
## Making your own theme
2832

2933
**Settings ▸ Interface ▸ Appearance ▸ Custom theme**:
3034

3135
1. **Export template** downloads the active theme as an editable `.theme.json` — every colour the interface uses, by
3236
name (surfaces, fields, text, muted text, borders, accents, menus, scrollbars…). Since 1.21 a theme also carries
3337
**state colours** — `--ink-bad`, `--ink-warn`, `--ink-good` for error, warning and good text, and `--accent-fill` /
34-
`--on-accent` for a filled accent chip and the text on it, and a custom theme may set them.
38+
`--on-accent` for a filled accent chip and the text on it, and a custom theme may set them. Since 1.30 it may also
39+
set the redesign's tokens — `--bg-app`, `--surface-1`, `--surface-2`, `--surface-inset`, `--border`,
40+
`--border-strong`, `--text`, `--text-2`, `--text-muted`, `--text-faint`, `--accent`, `--accent-soft`,
41+
`--accent-text`, `--live`, `--warn-text`, `--danger`, `--badge-bg`, `--badge-text`; any it leaves out are derived
42+
from its other colours.
3543
2. Change the colours in any text editor.
3644
3. **Browse…** loads it back. It appears in the **Theme** list under its own name, and as a chip under *Custom theme*;
3745
the chip's **✕** removes it.

‎docs/avatars.md‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,13 @@ yourself the way other people do.
3535
| **Show my name above me** | your name label |
3636
| **Ping** | the colour and chime of *your* [pings](notifications.md#pinging); **Preview** pings beside your character (only you see and hear it) |
3737

38+
Since 1.30 the panel is a **drawer** on the right (a bottom sheet on a phone): drag its inner edge to make it wider or
39+
narrower — the keyboard works too (focus the edge, then the arrow keys; <kbd>Shift</kbd> for bigger steps) — and the
40+
camera keeps your character in the part of the screen the drawer leaves free. The size is remembered on this device.
41+
3842
Every change shows on your character at once; nothing reaches other people until you press **Apply**, which saves it and
39-
shows it to everyone. **Cancel**, <kbd>Esc</kbd> or ✕ throw the changes away. Either way the camera flies back to where
40-
you were.
43+
shows it to everyone. **Cancel**, <kbd>Esc</kbd> or ✕ throw the changes away. Either way the camera returns exactly to
44+
where your view was before you opened it.
4145

4246
## Showing everyone as classic heads
4347

‎docs/checkpoints.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ Two filters narrow the list: show only **This scene**'s checkpoints, or hide the
3131
While you work, autosave also adds an **automatic** checkpoint every few minutes — only when the scene actually changed
3232
since the last one, and never while a scene is loading or a simulation is running.
3333

34+
In the Checkpoints window the **Automatic** switch shows or hides the automatic checkpoints in the timeline.
35+
3436
## Settings
3537

3638
**Settings ▸ Scene ▸ Checkpoints**:

‎docs/connection.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ It has two halves:
1313
- **📋 Your ID** — the button on the left shows your own peer ID. Click it to **copy your invite link** (your app URL with your ID attached, e.g. `https://theprototype.app/#AB12CD`) to the clipboard. Until the connection to the signaling server is ready it reads *Generating…*.
1414
- **Connect field** — paste a peer's ID into *Enter peer ID to connect* and press **Connect** to request a connection.
1515

16+
Since 1.30, once you are connected the bar **collapses to a compact chip** — a status dot, the session, the avatars
17+
of who is here and your mic; click it to open the full bar again (its collapse button folds it back). While the signaling link
18+
is down the status badge says how long it has been trying (*Reconnecting · 2 min*); the attempt count is in the drawer's
19+
**Info** tab. On a phone the bar is always the chip — tap it for your ID, the join field, Info and Toasts.
20+
1621
### Inviting someone
1722

1823
1. **Copy your invite link** (the 📋 button) and send it to a friend.

‎docs/controls.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,9 @@ Layouts are kept on this device. A reload still starts with a clean slate: a lay
377377

378378
## The toolbar
379379

380+
Since 1.30 the toolbar is one glass bar where the accent marks the armed tool or an open window and **Play** is the
381+
only orange button; on a touch screen its buttons are 44 px. See [The Interface](interface.md#the-main-hud).
382+
380383
Pressing a toolbar button never takes the keyboard: the keys stay with whatever had them — this holds for the bottom
381384
toolbar, the Connect bar, the touch tools, the draw, sculpt, spline and mesh-edit toolboxes and module toolboxes. So
382385
"press Move, then <kbd>F</kbd>" still frames the selection from the 3D view.
@@ -406,6 +409,9 @@ own page: see [Settings](settings.md).
406409

407410
## Keyboard shortcuts
408411

412+
<kbd>Ctrl</kbd>+<kbd>K</kbd> opens the [command palette](interface.md#the-command-palette-ctrlk): one search over tools,
413+
windows, menus and every setting.
414+
409415
Shortcuts are inert while you type in a text field and while play mode owns the keyboard. The same list is shown in **Settings ▸ Shortcuts** (<kbd>Ctrl</kbd>+<kbd>/</kbd> opens it directly), where a click on a shortcut's keys rebinds it and **Reset all** puts the defaults back.
410416

411417
The keys in the table are the **3D view's**: they fire while the 3D view has focus. A panel you click in gets its own keys — see [Keys follow the panel you are in](#keys-follow-the-panel-you-are-in).

‎docs/index.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,19 @@ with a contributing guide and an `llms.txt` for coding agents.
2424

2525
## What's new
2626

27+
**1.30 — a calm new look, on a desk and in a pocket.** Every window, menu, dialog, the main HUD and the phone layout
28+
now share [one interface](interface.md): one window header and [one tab strip](interface.md#windows-and-tabs), one menu
29+
style with a [shorter object menu](interface.md#menus) (rare actions one level down, nothing removed), calmer dialogs,
30+
and one accent colour — blue for what you can act on, orange only for Play and live states. The HUD is one glass
31+
toolbar, the [Connect bar collapses to a chip](connection.md#the-connect-panel) once you are connected, toasts stack three
32+
at a time, and <kbd>Ctrl</kbd>+<kbd>K</kbd> opens a [command palette](interface.md#the-command-palette-ctrlk) over every
33+
tool, window, menu and setting. While you play a small [banner](physics.md#play-mode-is-interact-mode) says how to stop
34+
(a scene can hide it or use its own words). [Customize character](avatars.md#customize-character) is a resizable drawer
35+
that puts your view back exactly. On a phone, a [decluttered layout](interface.md#on-a-phone) keeps the logo, a Connect
36+
chip and a bottom bar you can rearrange — Add · Objects · Play · Explorer · More — with windows as bottom sheets that
37+
remember their height. Light and custom [themes](appearance.md) restyle everything. Every shortcut, setting, scrub field
38+
and panel works as before.
39+
2740
**1.29 — groundwork for cloud saves and kept rooms.** Under the hood, the app can now tell the
2841
theprototype.app cloud plugin when the scene changes, fingerprint what is in it, and hand over or open a whole
2942
project — what [cloud saves and rooms that stay open when everyone leaves](community.md) are built on. They switch on

‎docs/interface.md‎

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# The Interface
2+
3+
Since 1.30 every window, menu, dialog, the main HUD and the phone layout are built from one small kit of parts and
4+
one set of colours. This page is the map: where things are and what the shapes mean. Nothing you can *do* changed —
5+
every shortcut, setting, scrub field and panel works as before; only the look and a few placements moved.
6+
7+
## One accent colour
8+
9+
**Blue** marks what you can act on or have selected: the armed tool, a switch that is on, the chosen chip, a primary
10+
button, the focus ring. **Orange** is kept for things that are live — **Play**, recording, streaming — so it stands out
11+
where it matters. A **Shared** or **This device** badge beside a heading says who a setting affects, instead of a
12+
paragraph explaining it.
13+
14+
The light theme and every custom `.theme.json` restyle all of it; see [Themes & Appearance](appearance.md).
15+
16+
## The main HUD
17+
18+
- **The toolbar** at the bottom is one glass bar: Move, Rotate, Scale, Interact, **Play** (the only orange button), then
19+
the windows you keep there (Objects, Node editor, Explorer, Animation…). The accent fill marks the armed tool or an open
20+
window. It is still yours to arrange — right-click any button; see [The toolbar](controls.md#the-toolbar).
21+
- **The logo** (top-left) opens the main menu, grouped as Project · Scene · Collaborate · App.
22+
- **The Connect bar** (top centre) shows your ID — click it to copy your invite link — the field to join someone, and
23+
the status as a badge. Once you are connected it **collapses to a chip**: a status dot, the session, the avatars of who
24+
is here and your mic. Click the chip to open the full bar again. While the link to the signaling server is down it
25+
says for how long ("Reconnecting · 2 min"); the attempt count is in **Connect ▸ Info**. See
26+
[Connection](connection.md#the-connect-panel).
27+
- **Top right**: scene notes, the notification bell (with a count) and the peers list sit in one group beside your
28+
picture, which opens your profile menu (**Customize character**, **Profile settings**).
29+
- **Toasts** are calm cards under the Connect bar, at most three at a time; more collect behind **+N more**. See
30+
[Toasts](notifications.md#toasts).
31+
- Someone who is **speaking** in voice chat gets a soft green ring on their avatar.
32+
- Buttons are 36–38 px with a mouse and grow to **44 px on a touch screen**.
33+
34+
## The command palette (Ctrl+K)
35+
36+
<kbd>Ctrl</kbd>+<kbd>K</kbd> opens one search box over everything: **tools** (Move, Scale, Interact…), **windows**
37+
(Explorer, Objects, the Profiler…), **menu items** and **every setting**. Type a few letters, move with
38+
<kbd>↑</kbd> <kbd>↓</kbd>, press <kbd>Enter</kbd> to run it; <kbd>Esc</kbd> or a click outside closes it. Picking a
39+
setting opens Settings already searching for that row. The palette is listed in the shortcut sheet (<kbd>?</kbd>) and
40+
can be rebound there like any shortcut.
41+
42+
## Windows and tabs
43+
44+
Every docked or floating window — Explorer, Objects, Chat, AI assistant, Notes, the Notification centre, the node
45+
editor, Flow code, Animation, UV, Shader, HUD editor, Profiler, the Code workspace — has the same header: icon, title,
46+
the window's own actions, then pin and close in the same places. Windows in one group, and the views in the bottom dock,
47+
share **one tab strip**: pill tabs with the view's icon and their own **✕** to close that view (it shows on the
48+
active tab and when you point at one); a docked view no longer repeats its name under its tab. More tabs than fit
49+
scroll sideways (the wheel or a swipe; the strip fades where more tabs are hidden) while **+** stays in place.
50+
Moving, docking, splitting and tabbing work exactly as before — see [Floating windows](controls.md#floating-windows).
51+
52+
Lists scroll with a thin scrollbar that appears only while you scroll or point at them; there are no chunky native
53+
scrollbars anywhere.
54+
55+
## Menus
56+
57+
The right-click, Add (<kbd>Shift</kbd>+<kbd>A</kbd>) and viewport menus share one style: 32 px rows, an icon per row,
58+
shortcuts right-aligned, quiet section labels.
59+
60+
**Right-click an object** and the everyday actions come first — **Properties**, **Rename**, **Duplicate**, **Delete** —
61+
then **Focus**, **Ping** and **Add note**, then the editing modes. Rarer work is one level down: **Transform ▸**
62+
(align to ground, origin, pivot…), **Mesh ▸** (convert, boolean…), **Physics & effects ▸** (joints, particles, flow
63+
effects), **Prefab ▸** on a placed prefab copy, and **Save as… ▸**. Every action and its shortcut is still there.
64+
65+
## Dialogs
66+
67+
Modules, Sessions, Checkpoints, Templates, Storage, Publish / Export, Import and every confirmation share one dialog
68+
style: a header with the title and close, tabs directly under it where a dialog has them, one scrolling body and the
69+
answers bottom-right. Each view has **one** emphasised action; a destructive answer is red. Escape, a click outside and
70+
the close button behave as before. **Customize character** is a drawer you can resize by its edge — see
71+
[Your Character](avatars.md#customize-character).
72+
73+
## On a phone
74+
75+
Below 640 px wide the app switches to a phone layout with less on screen and nothing missing:
76+
77+
- **Top**: the logo (main menu) on the left, a **Connect chip** in the middle — tap it for your invite link, the join
78+
field, Info and Toasts — and the notification bell and your picture on the right.
79+
- **Bottom bar**: **Add · Objects · Play · Explorer · More**. Play stays the only orange control. **More** holds the
80+
rest: Chat, the AI assistant, Notes, the node editor and every other window, the viewport tools and stats.
81+
- **Make the bar yours**: **More ▸ Edit bar…**, or a long press on any tab, picks which views take the four slots
82+
(More always stays). The choice is kept on this device; **Reset** goes back to the default.
83+
- **The selection toolbar** appears only while something is selected: Move, Rotate, Scale, Inspect, Undo and Redo.
84+
With nothing selected — just looking around — there is no toolbar; **More ▸ Edit** has Undo, Redo, Select multiple
85+
and Interact mode.
86+
- **Sheets sit above the bottom bar.** Objects, Explorer and the other docked views, the Inspector, Notifications, Add
87+
and More open as bottom sheets with a handle — drag (or tap the handle) between peek, half and full height — and
88+
the bar with Play stays visible and tappable. The selection toolbar rides on top of whatever sheet is open, so you
89+
can pick an object in Objects and move or undo without closing it. Each sheet reopens at the height you left it, on
90+
this device. The menus you open by long-pressing the scene are short-lived action sheets that may cover the bar
91+
until you pick something or tap outside.
92+
- **Editors fit a phone**: the [Animation](animation.md#on-a-phone) window shows one pane at a time, the [Shader
93+
editor](shader-graph.md#on-a-phone) gives the canvas the whole screen with the palette and properties as sheets,
94+
and every toolbar that does not fit — UV editor tools, Profiler controls — scrolls sideways (with a fade where
95+
more is hidden); nothing is out of reach.
96+
- **Settings** is a list you tap into, with ‹ Back on every page; Settings and dialogs open full-screen and cover the
97+
logo while they are open.
98+
99+
Touch targets are at least 44 px, switches 51 × 31, and text fields use 16 px text so the browser never zooms.
100+
101+
## For module authors
102+
103+
Every part shown here is on the **/kit** page of the app, in every state, and module panels can use the same parts — see
104+
[The UI kit](ui-kit.md).

‎docs/module-sdk.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ Two ways to ship one:
1717
Start by downloading a core module from the manager ("Download as example") —
1818
`hello` is the smallest complete one.
1919

20+
Giving your module a panel or settings? Build it from the app's own parts and design
21+
tokens so it matches every theme: see [UI kit for module authors](ui-kit.md) and the live
22+
[kit page](https://theprototype.app/kit).
23+
2024
Writing a **user module**? The companion repo
2125
[theprototype-app/modules](https://github.com/theprototype-app/modules) carries
2226
the working end of this page:

‎docs/modules.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ Modules plug playable content into the app — instruments, mini-games, generato
44

55
## The Modules manager
66

7-
Open it from **Menu ▸ Modules**.
7+
Open it from **Menu ▸ Modules**. Since 1.30 **Install from file…** sits in the header, the **Core / User / Browse** tabs
8+
show counts, a **Filter modules** field narrows whatever the tab lists (name, description, author, tags), and each module
9+
is one row — name, version, description, its actions, the download-as-example icon and its on/off switch.
810

911
- **Core modules** ship with the app (hello, button, pong, VR sleeve). Toggle each on or off: both are **live** (since 1.20, disabling no longer needs a reload).
1012
- The dungeon generator, piano, avatar controller, VR essentials and drivable car used to ship in the app; they now live in the **Browse** gallery, so install them there when you want them. Everyone in a session needs the same modules for shared behaviour to match — including anyone who joins later.

0 commit comments

Comments
 (0)