Screening room
ProcessingDEL-2048 · AF-104-V7 · Aug 16, 09:32 UTC
Building the local review package
Attempt history
- Aug 16, 09:32 UTCProcessingBuilding the local review package
Northline Pictures
23 primitives, 13 sections and 89 tokens, each shown in every state it ships.
tokens
Primary
Accent
Info
Positive
Warning
Critical
Muted
Selection
ui
Buttons, status, fields, progress, waveform, chrome, layout
ui/button
variant primary
The one action a screen is for.
variant secondary
Everything beside it that is still an action.
variant ghost
A control that must not compete with the row it sits in.
pending
Busy, disabled against a second press, and the label swaps in place.
disabled
Not now: a change you can make turns it back on.
unavailable
Not built. A labelled non-control, never a disabled button.
icon
A fixed 44px target named for assistive technology.
ui/panel
Five tones, and never colour alone: every pill carries a dot and a word.
ui/fields
labelled
Shown to invited reviewers
valid
Address accepted
invalid
Enter a YouTube or Vimeo URL
read-only
Read-only source reference
disabled
Managed by your studio owner
focus (forced)
The ring is instant and never transitions
textarea
One sentence appears above the player
checkbox and switch
ui/progress
variant primary
The role, the three value attributes and the fill width read one number.
variant quiet
A measure nobody is being asked to act on stays in the neutral ramp.
ui/audio-waveform
Geometry from decoded peaks, colour from tokens, and every marker repeated as text under the figure.
ui/mode-toggle · ui/mobile-nav
mode toggle
The name says what the press will do; aria-pressed says what the page already is.
navigation drawer
Non-modal: Escape and an outside press dismiss it, and the page never stops scrolling.
ui/dashboard-layout
sidebar
Labels beside every icon. The default, and the one a new operator reads fastest.
rail
80px of icons, for an editor who knows the eight routes by shape.
topbar
The whole width for the work, with navigation on one line above it.
Layout primitive
Slots keep navigation and product controls separate from layout geometry. The choice is a pressed button with a real label and it persists under cutroom-layout.
data-layout=sidebar
ui/dialog
Modal dialog: veil, focus trap, scroll lock, focus return
Live behaviour
Dialog surface
ui/confirm-dialog
The destructive question: alertdialog, consequence in the description, safe answer focused
Live behaviour
Nothing answered yet.
The quiet answer takes focus, not the destructive one. The consequence is the surface’s description, so it is heard on arrival rather than read off a band.
Confirmation surface
ui/popover
Anchored, non-modal, flipped when the side has no room
Live behaviour
Escape closes it, an outside press closes it, and Tab leaving the card closes it. The page keeps scrolling throughout.
Popover surface
Not a modal
The surface, undocked. On the page it is measured from its trigger and flips above it when the viewport has no room below.
ui/dropdown-menu
role=menu, roving focus, and a locked row that keeps its reason
Live behaviour
Arrow keys move between items. Escape closes and returns focus.
Menu surface
align start
The card's left edge meets the trigger's.
align end
The right edges meet instead, and the drop opens from that corner.
ui/tooltip
Hover after 80ms, focus instantly, Escape dismisses
Live behaviour
The hint is a description, never the name: every control it decorates keeps its own label, and no control depends on it, because there is no touch path.
Tooltip surface
English SDH captionsui/tabs
Roving tabindex, arrow keys, Home and End
Timecoded comments from the shared player, newest last.
Tab enters the list once, then arrows move. Home and End jump to the ends.
Rendition and release checks for the selected version.
A disabled tab says so in a word and loses its turn: the arrows skip it exactly as Tab does.
Picture checks for AF-104, final cut 07.
The list scrolls sideways and the arrows still reach every tab.
ui/command-palette
⌘K over routes and media
Live behaviour
Opens on click, on Enter or Space, and on ⌘K anywhere in the workspace. It is a modal layer, so focus is trapped and the page behind it stops scrolling.
Palette surface
No match
ui/toast
Four tones, each with a word and an icon
Tones
DoneReview link copied
The preview link is held in this browser only.
NoteBilling preview only
Connect a payment provider to open the real portal.
CheckDestination checks are stale
Refresh them before queueing a delivery.
FailedPackage checksum interrupted
Retry the archive handoff.
Each tone carries a word and an icon, so the state survives a greyscale print and a colour-vision difference.
Live queue
Three at a time, dismissible, and gone after six seconds. Critical messages interrupt a screen reader; the rest wait their turn. Under reduced motion the card arrives and leaves without the rise.
A long message, at the region’s real width
CheckTerritory review is still open on three destinations
Rights sign-off for EMEA, LATAM and APAC is advisory: the owner can queue the delivery anyway, and the check stays on the release until it clears.
Nothing truncates. The card grows and the queue below it moves down.
ui/date-picker
A month grid you can pick from, computed in UTC
Live behaviour
Release day
Selected: October 18, 2026
Arrows move a day, Up and Down a week, Page keys a month, Home and End the week’s ends. Enter picks.
Calendar surface
October 2026
Nothing chosen yet
October 2026
No day carries the selection ground, and the trigger reads “Pick a date”.
Before the release day
October 2026
Days before October 12 are disabled, not merely grey: an arrow key will not walk onto one.
Refused by the form
Pick a day on or after the release day
ui/data-table
Sort, filter, paginate, with a live result count
18,600 plays
12 of 12 regions
| Market | |||
|---|---|---|---|
| United States | Domestic | 5,766 | 31.0% |
| United Kingdom | Europe | 3,348 | 18.0% |
| Canada | Americas | 2,232 | 12.0% |
| Germany | Europe | 1,674 | 9.0% |
| Australia | Asia-Pacific | 1,302 | 7.0% |
| France | Europe | 1,116 | 6.0% |
Loading
Loading the region table
Enter or Space on a column head sorts it; the arrow and aria-sort both come from state, and a column with no comparator carries neither. Filtering keeps the query, and a filter that matched nothing renders differently from a table that is genuinely empty.
ui/search-input
One filter field, four conditions, and the count line that answers it
rest
12 of 12 media
Nothing typed. The count line still answers, because a reader arriving at a filtered view needs to know it is not filtered.
filled
1 of 12 media
A query that found something. Typing here really narrows the count.
no result
No media matches that search
The query stays in the field. A search that clears itself has taken the reader’s work away as well as their answer; the reset lives in the pane below the field, not inside it.
disabled
0 archived media
Not now, and the placeholder says what would change it.
ui/sort-head
One head row in its three conditions: carrying the order, offering to, and unable to
| Version |
|---|
aria-sort is on the sorted column and nowhere else — never none, which is an attribute on every column carrying information about none of them. Version has no comparator, so it draws no control and makes no offer.
ui/pagination
A strip long enough to elide, and the end where a control is really unavailable
mid-collection
first page
First, last, and one either side of where you are; the run between them elides rather than growing. The range sentence is a live region, so a reset after a filter is heard and not only seen.
ui/field
The shell around a control: the label, and the one line that carries the verdict
rest
Shown to invited reviewers
Who can open the review link
One sentence appears above the player
invalid
Enter a YouTube or Vimeo URL
Pick a rendition before queueing
A note is required when a check is overridden
valid
Address accepted
Invited reviewers only
Saved to this preview
read-only
Set by the ingest, and not editable here.
Read-only source reference
Set by the rights record, and not editable here.
Read-only rights reference
Written by the ingest, and not editable here.
Read-only ingest note
disabled
Opens with the first archived master
Managed by your studio owner
Only the studio owner writes here
One line at a time, in one order: what went wrong, then what was accepted, then what the field wants. A field that said two of those at once would be asking the reader to decide which one is true.
ui/skeleton
Pending placeholders with a spoken label
Pending panel
Loading the selected range
Pending rows
Loading the delivery queue
Placeholders are hidden from assistive technology. The pending state is announced once, in words.
Settled
Plays across twelve markets, 18.6k for the window ending Oct 18.
The same region once the range has answered: same card, same edge, same padding, and the wait has stopped speaking.
shape line
Fully round, for anything that stands in for text.
shape block
The 12px inner radius, for a frame, a chart or a poster.
app-shell
Sidebar, header row and page framing, bounded
Northline Pictures
Navigation, the series link, the system line, the mode control and the one filled action sit in the shell; a route brings its title, its lede and its work.
form-showcase
Sequence defaults
Control states
Enter a YouTube or Vimeo URL
Address accepted
Read-only source reference
Managed by your studio owner
chart-showcase
Area chart
34,660 min
Seven-day total
Bar chart
Line chart
Donut chart
Composed chart
16.1k plays
Week six delivery
Data states
Loading analytics for the selected range
No plays yet
Publish a review link to collect data
Analytics unavailable
Retry the reporting feed
distribution-workspace
Local preview only
Queue, retry, cancel, and refresh actions stay in React state. Connect your delivery backend to publish files.
Delivery overview
2 ready
1 release check blocking queue
1
Warning override available
2
Failed or unchecked requirement
1
Older than 24 hours
Selected release
Connected outlets
Selected destination
Package
4K review package
Last checked
Aug 16, 09:24 UTC
Queue unavailable
Rendition requirements
| Destination | Picture | Audio | Captions | Artwork | Metadata | Last check |
|---|---|---|---|---|---|---|
| Screening room4K review package | PassUHD · ProRes 422 HQ | Pass5.1 + stereo | PassEnglish SDH | Pass16:9 + 2:3 | Pass18 fields complete | Aug 16, 09:24 UTCCurrent |
| Archive transferPreservation master | PassUHD · ProRes 422 HQ | Pass5.1, stereo, M&E | PassEnglish SDH + French | PassKey art source | PassArchive manifest ready | Aug 16, 08:56 UTCCurrent |
| Partner OTTUHD episodic package | PassUHD · 23.976 fps | WarningStereo loudness is −22 LUFS; target is −24 LUFS | PassEnglish SDH, French, German (Deutsch) | Pass16:9, 2:3, 1:1 | Pass22 fields complete | Aug 14, 09:02 UTCStale check |
| Festival portalDCP submission | PassUHD source accepted | Pass5.1 theatrical | FailFrench forced-narrative file is missing | PassFestival stills accepted | Not checkedCheck expired after 24 hours | Aug 14, 07:40 UTCExpired |
| Broadcast exchangeRegional broadcast master | Not checkedReconnect to inspect picture requirements | Not checkedReconnect to inspect audio requirements | Not checkedReconnect to inspect caption requirements | Not checkedReconnect to inspect artwork requirements | Not checkedReconnect to inspect metadata requirements | No check availableUnavailable |
Release checks
Simulated handoff
DEL-2048 · AF-104-V7 · Aug 16, 09:32 UTC
Building the local review package
DEL-2047 · AF-104-V7 · Aug 14, 07:44 UTC
Package checksum interrupted before the archive handoff
Retry blocked: Final mix in review: Resolve the final mix review before queueing a new delivery
DEL-2046 · AF-104-V7 · Aug 13, 18:20 UTC
Local delivery preview completed
Showing fixture checks for Final cut 07
Simulated handoff
No local deliveries queued
Choose a ready destination to create the first local queue receipt.
Permission state
Reviewer access
Publish access is none. An owner or producer queues deliveries.
overview

Audience now
1,284
Viewer activity rose after the second scene. Review notes remain open on the final cut.
Open live playerWatch time
612 h
+12% this week
Completion
68%
+4 points
Open reviews
7
2 need replies
Shared seats
12
9 active today
Current season
Loading the operating measures
As of 13:21. Reconnecting.
filmstrip
18:42
24:08
21:16
12:54
26:31No frames in this season yet
Upload a master and the filmstrip fills in shot order.
media-library
5 of 5 assets · Episode order
variant grid
variant list
18:42AF-104
Afterlight · E04 · Master
24:08AF-101
Afterlight · E01 · YouTube
no result
No media matches this view
Nothing in published matches "second movement".
empty library
No media in the library yet
Upload a master or link a published source and it lands here.
upload-center
Remote source
3 items
No local files added.
night-passage-master.mov
4K ProRes · 18.4 GB
82%
afterlight-trailer.mp4
1080p H.264 · 1.2 GB
100%
captions-en.vtt
English · 14 KB
100%

1 item
ridge-grade-v3.mov
video/quicktime · 6.4 GB
Held in this browser only. Nothing is uploaded or transcoded.
Remote source
Source linked in this preview
The URL is held in component state. Wire a source resolver to fetch the real metadata.
shared-player
Preview captions for Night passage.12AF-104 · MASTER
Afterlight · E04 · 18:42 · Review open
Audio and notes
2 open
Hold the wide shot for two more beats before the cut.
The music cue lands cleanly here. Marking this ready.
Can we use the alternate road plate before the title reveal?
0 open
No notes on this cut yet
Pin the first note to a frame and everyone with the link can reply.
1 open
Grade the headlight bloom down half a stop before the mix lock.
Comment added to this preview
sequence-builder
Sequence 04
01:33 / 01:46Split runs locally and keeps the sequence at 01:33. Titles, audio and colour tools arrive with an editing backend.
C02
5 clips · 01:33
Sequence 04
Saved to this browser at 14:02
Five clips, 01:33. The draft is local: reload and the fixture order comes back.
Sequence 05
Nothing on the timeline yet
Drag a clip from the library filmstrip to open the sequence.
watch-analytics
Plays
+9.4%18.6k
Unique viewers
+7.1%14.2k
Avg. watch
+1:0812:46
Drop at credits
−2.3 points8.2%
7 days
7,068 plays
5,022 plays
3,906 plays
2,604 plays
Episode 04
| Moment | Timecode | Viewers | Change |
|---|---|---|---|
| Opening road | 00:00 | 100% | Baseline |
| First reveal | 03:12 | 84% | −16 points |
| House interior | 08:48 | 73% | −11 points |
| Final ascent | 15:06 | 66% | −7 points |
Loading
Loading the region table
0 plays
No plays in this range
Regions appear once the release has been watched somewhere.
people-settings
4 of 12 seats
mara@northline.studio
jon@northline.studio
ari@northline.studio
sol@northline.studio
Studio
$49
per month · renews Oct 4
Two-step sign-in
Required
Review links
Passcode
Guest access
Editors approve
Permissions
Compare the four fixture roles before wiring access changes to your backend.
| Role | Library | Edit | Publish | Billing |
|---|---|---|---|---|
| Owner | Full | Full | Full | Full |
| Producer | Full | Full | Full | None |
| Editor | Full | Full | Review | None |
| Reviewer | View | Comment | None | None |
5 of 12 seats
reviewer@example.com
Added as a local preview row. No mail leaves the browser.
Reviewer
Reviewers can read the roster
Inviting, removing and role changes belong to the owner and one producer.
title-landing
One state, deliberately: a title page waits for no data, misses no filter and refuses no permission

A Northline original
Five films follow people moving through landscapes after the familiar light has gone.
Season one
Enter anywhere; each film stands alone inside one shared visual world.
E03 · 08:48The story
Across five places, ordinary movement becomes evidence: a turn in the road, a lit room, a hand reaching through fog.
Review the fourth film inside the same player used by the production team.
Open the playerNo account needed in this preview