You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`new-design/` is the visual and interaction source of truth.
14
+
-`design/` is the visual and interaction source of truth.
15
15
16
16
There is no backend in the runtime shape. The app must boot directly in the browser from the WebAssembly host.
17
17
@@ -289,10 +289,10 @@ Repo-specific design rules:
289
289
- Keep shared build settings in `Directory.Build.props`.
290
290
- Keep shared package versions in `Directory.Packages.props`.
291
291
- Keep the pinned SDK version in `global.json`.
292
-
- Treat `new-design/index.html`, `new-design/tokens.css`, `new-design/components.css`, `new-design/styles.css`, and `new-design/app.js` as the exact design reference.
293
-
- Treat every file under `new-design/` as a static design/prototype reference only. Production UI must be implemented as Blazor components in `src/PrompterOne.Shared`; do not ship raw `new-design` HTML as runtime UI.
294
-
- Do not re-invent the UI when the answer should be “port the markup and classes from `new-design`”.
295
-
- For parity tasks, port the full routed screen from its matching `new-design/*.html` reference, not just isolated high-signal blocks. Settings, Editor, Learn, Teleprompter, and Go Live must match the reference screen in layout and intended interaction while staying Blazor/C# owned.
292
+
- Treat `design/index.html`, `design/tokens.css`, `design/components.css`, `design/styles.css`, and `design/app.js` as the exact design reference.
293
+
- Treat every file under `design/` as a static design/prototype reference only. Production UI must be implemented as Blazor components in `src/PrompterOne.Shared`; do not ship raw `design` HTML as runtime UI.
294
+
- Do not re-invent the UI when the answer should be “port the markup and classes from `design`”.
295
+
- For parity tasks, port the full routed screen from its matching `design/*.html` reference, not just isolated high-signal blocks. Settings, Editor, Learn, Teleprompter, and Go Live must match the reference screen in layout and intended interaction while staying Blazor/C# owned.
296
296
- About content must stay factual and current: do not invent team members or contributor names; use Managed Code attribution and official company links only.
297
297
- Do not introduce a server host for the app runtime.
298
298
- Preserve stable `data-testid` selectors on core flows because the Playwright suite depends on them.
@@ -305,7 +305,7 @@ Repo-specific design rules:
305
305
- Any vendored runtime JavaScript SDK that tracks an upstream GitHub repo MUST have an automated watcher job that checks new GitHub releases and opens a repo issue describing the required update when a newer release appears.
306
306
- Teleprompter TPS speed modifiers MUST affect both playback timing and subtle word- or phrase-level letter spacing, so slower spans open up slightly and faster spans tighten slightly without hurting readability.
307
307
- Teleprompter reader word styling MUST mirror TPS/editor inline semantics: explicit inline TPS tags control per-word emphasis and color, while section or block emotion sets card context and must not recolor every reader word.
308
-
- Teleprompter block transitions MUST stay visually consistent: outgoing cards move upward and incoming cards rise from below in the same direction every time; alternating up/down travel is forbidden.
308
+
- Teleprompter block transitions MUST stay visually consistent: outgoing cards move upward and incoming cards rise from below in the same direction every time; alternating up/down travel is forbidden, and extra settling, bounce, or intermediate card states are forbidden.
309
309
- Learn and Teleprompter are separate screens with separate style ownership; do not bundle RSVP and teleprompter reader feature styles into one shared screen stylesheet or let one page inherit the other page's visual treatment.
310
310
- User preferences persistence MUST sit behind a platform-agnostic user-settings abstraction, with browser storage implemented via local storage and room for other platform-specific implementations; theme, teleprompter layout preferences, camera/scene preferences, and similar saved settings belong there instead of ad-hoc feature stores.
311
311
- Build quality gates must stay green under `-warnaserror`.
@@ -351,7 +351,7 @@ Ask first:
351
351
352
352
### Likes
353
353
354
-
- exact fidelity with `new-design`
354
+
- exact fidelity with `design`
355
355
- thin WASM host boundaries
356
356
- browser-realistic UI verification
357
357
- domain logic that stays reusable and serializable
@@ -364,13 +364,14 @@ Ask first:
364
364
- progress updates that imply a fix is done before there is concrete implementation and verification evidence; keep status factual and let the user verify final behavior personally
365
365
- automated test or coverage runs for UI-behavior fixes before the user has manually checked the change locally; wait for the user's confirmation before resuming automation
366
366
- mixed-language root README or public entry docs; keep them English-only unless the user explicitly asks otherwise
367
-
- design drift from `new-design`
367
+
- design drift from `design`
368
368
- made-up About/team content or stale attribution; About must point to real Managed Code ownership and official links
369
369
- any visible typing latency in the editor; plain input must feel immediate with no observable delay
370
370
- teleprompter controls that fade so much they become hard to see during real reading
371
-
- teleprompter paragraph repositioningor per-word vertical transform updates that make the text jump; `new-design/teleprompter.html` motion is the required reference
371
+
- teleprompter paragraph repositioning, line hopping, or per-word vertical transform updates that make the text jump; `design/teleprompter.html` motion is the required reference, with steady bottom-to-top movement and no extra animation layers beyond the reference
372
372
- any green teleprompter shell or background treatment; Teleprompter must stay on its dark reader palette and use emotion only for accents, not green screen-wide fills
373
373
- Learn and Teleprompter style boundaries bleeding through a shared feature stylesheet; their visuals must stay isolated by page-owned style manifests
374
+
- Learn RSVP compositions that shift when shorter or longer words render; changing word length must not move the overall RSVP component or its anchored centerline
374
375
- teleprompter camera starting enabled by default; default reader startup should keep the camera off until the user explicitly enables it
375
376
- editor keystroke paths that persist, compile, or rebuild shared session state; keep plain typing in memory and move heavier local sync to debounce or autosave
376
377
- murky JavaScript or interop layers that keep product UI behavior in JS when Blazor can own it cleanly
Copy file name to clipboardExpand all lines: docs/ADR/ADR-0002-go-live-operational-studio-surface.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Related Features: [Go Live Runtime](/Users/ksemenenko/Developer/PrompterOne/docs
6
6
7
7
## Implementation plan (step-by-step)
8
8
9
-
-[x] Audit the existing routed `Go Live` page against `new-design/golive.html`.
9
+
-[x] Audit the existing routed `Go Live` page against `design/golive.html`.
10
10
-[x] Replace the design drifted routing form layout with a studio shell that matches the design rails and canvas.
11
11
-[x] Bind the studio shell to real browser media state, real scene cameras, and honest destination readiness summaries.
12
12
-[x] Keep detailed provider setup in `Settings` and reduce `Go Live` to operational toggles plus links back to setup.
@@ -16,13 +16,13 @@ Related Features: [Go Live Runtime](/Users/ksemenenko/Developer/PrompterOne/docs
16
16
## Context
17
17
18
18
- The prior `Go Live` page mixed an operational studio surface with a large lower deck of inline provider forms.
19
-
- That shape diverged from `new-design/golive.html`, pushed the most important controls below the fold, and encouraged duplicate ownership of provider credentials between `Go Live` and `Settings`.
19
+
- That shape diverged from `design/golive.html`, pushed the most important controls below the fold, and encouraged duplicate ownership of provider credentials between `Go Live` and `Settings`.
20
20
- The product already has browser media services, scene state, output runtime services, and persisted provider settings. The problem was not missing capability; it was a blurred page contract.
21
21
- The user explicitly asked for a real `Go Live` studio with camera switching, live preview, honest data, and design fidelity instead of a fake or placeholder surface.
22
22
23
23
Goals:
24
24
25
-
- Keep `Go Live` visually faithful to `new-design/golive.html`.
25
+
- Keep `Go Live` visually faithful to `design/golive.html`.
26
26
- Make `Go Live` operational, not administrative.
27
27
- Keep live status, room state, and destination readiness truthful to what the browser runtime actually knows.
28
28
- Cover the main studio flow with automated component and browser tests.
- vertical slices own their routed pages, components, renderers, and feature-local services under folders such as `Editor/`, `Library/`, `Teleprompter/`, and `GoLive/`
368
368
- only true cross-cutting UI assets stay outside feature slices: `Contracts/`, `Localization/`, `wwwroot/`, root bootstrap files, and `AppShell/`
369
-
- exact design shell and imported `new-design` assets
369
+
- exact design shell and imported `design` assets
370
370
- shared UI localization catalog for supported browser cultures
371
371
- browser interop and app DI wiring
372
372
- browser-backed `IUserSettingsStore` wiring for persisted reader, theme, scene, and studio preferences
@@ -381,7 +381,7 @@ If a native embedded browser host returns later, media access must not rely on s
381
381
382
382
Rules:
383
383
384
-
- keep markup aligned with `new-design`
384
+
- keep markup aligned with `design`
385
385
- do not move business logic here if it belongs in `Core`
386
386
- preserve `data-testid` selectors for browser tests
Copy file name to clipboardExpand all lines: docs/Features/GoLiveRuntime.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,9 @@
6
6
7
7
The current page layout is a production-style studio surface:
8
8
9
-
- top session bar follows `new-design/golive.html`: back to Read, script title + session badge, centered session timer, panel toggles, mode switch, settings shortcut, REC, and the main stream action on the far right
10
-
- the studio shell follows the same three-column grid as `new-design/golive.html`: a compact left input rail, a dominant center canvas/program stage, and a dedicated right operational rail
9
+
- the routed `Go Live` page owns its own studio chrome and suppresses the shared app header while the route is active, so `design/golive.html` remains the only topbar on that screen
10
+
- top session bar follows `design/golive.html`: back to Read, script title + session badge, centered session timer, panel toggles, mode switch, settings shortcut, REC, and the main stream action on the far right
11
+
- the studio shell follows the same three-column grid as `design/golive.html`: a compact left input rail, a dominant center canvas/program stage, and a dedicated right operational rail
11
12
- left input rail for scene cameras, add-camera action, utility sources, and microphone route status
12
13
- center program stage for the selected program source and current script/session state
13
14
- scene controls bar for scene chips, layout controls, transitions, and the primary `Take To Air` action
@@ -184,6 +185,7 @@ flowchart LR
184
185
-`Go Live` must auto-seed the first available browser camera into the scene when the scene is empty and devices are available.
185
186
-`Go Live` must show the selected program source in the center monitor and the currently on-air source in the right preview rail until the operator explicitly takes the selected source live.
186
187
-`Go Live` must show a stable empty preview state instead of mounting camera interop when the current scene has no cameras.
188
+
- the routed `Go Live` page must not stack the shared app header above the studio topbar; the studio topbar is the only route chrome on that screen
187
189
- any shared `Go Live` localized copy must come from `PrompterOne.Shared.Localization.UiTextCatalog`, so supported browser cultures localize the studio surface without feature-local string copies.
188
190
- quick destination cards must only expose honest readiness summaries and arm/disarm toggles; fake in-page credential editors are forbidden on the operational studio surface
189
191
- legacy streaming settings must normalize to the current included program cameras so existing browser storage keeps working
0 commit comments