diff --git a/src/client/app.tsx b/src/client/app.tsx index 34315b3..db954d8 100644 --- a/src/client/app.tsx +++ b/src/client/app.tsx @@ -18,6 +18,7 @@ import { Type as TypeIcon, Music, AlertCircle, + Scissors, X, } from "lucide-react"; import { @@ -59,6 +60,9 @@ interface RenderJob { status: "rendering" | "completed" | "failed"; output_url: string | null; error: string | null; + /** The media-library asset this render produced, so the finished + * composition can be cut into an edit instead of only downloaded. */ + asset_id: string | null; created_at: string; } @@ -162,7 +166,10 @@ function Gallery({ navigate }: { navigate: (to: string) => void }) { setCreating(true); try { const c = await api.send("POST", "/api/compositions", { - name: "Untitled", + // Name it after what is actually on screen. Three things called + // "Untitled" tell you nothing; this agrees with the thumbnail and says + // what kind of object you just got. + name: "Product launch title card", html: STARTER_HTML, }); navigate(`/${c.id}`); @@ -174,18 +181,28 @@ function Gallery({ navigate }: { navigate: (to: string) => void }) { return (
- {/* Toolbar grammar: identity left, the one solid action right. */} -
-

- Your videos - {comps && comps.length > 0 && ( - {comps.length} - )} -

- + {/* Toolbar grammar: identity left, the one solid action right. The + two sections carry the same anatomy and a line each saying which + one you want — "graphics you make" vs "footage you shot". */} +
+
+

+ Your videos + {comps && comps.length > 0 && ( + {comps.length} + )} +

+

+ Graphics you make from scratch: titles, intros, lower thirds. Built on a timeline, + rendered to MP4. +

+
+ {comps && comps.length > 0 && ( + + )}
{comps === null ? ( @@ -205,7 +222,7 @@ function Gallery({ navigate }: { navigate: (to: string) => void }) { } title="No videos yet" - body="A video is motion graphics you author as HTML on a timeline — a title card, a lower third, an intro. Start from a template and edit it live." + body="Start from a working title card and change the words." action={