All components
27

Inbox triage

Inbox sorts itself; Reply/Skip/Urgent chips land; drafted reply slides out

Prompt for your agentpaste into Claude Code or Codex
Add the "Inbox triage" video component (Jev confidence scores, light) from everestchris.com to this project.

1. Download https://ai-component-library-dun.vercel.app/projects/inbox-triage.zip?v=1dd595807198 and unzip it into components/inbox-triage/. Read the README.md and CLAUDE.md in it.
2. Render it: cd components/inbox-triage && npx hyperframes@0.8.162 render . --variables '{"variant":"2","theme":"light"}' -o inbox-triage.mp4
3. Give me the path of the MP4. The text, names and timings live in the CONFIG block at the top of the script in index.html; change nothing there unless I ask.

Code

One file. The project download adds the fonts, skins and motion kit it runs on.

index.htmlhtmlDownload
1<!doctype html>
2<html lang="en" data-composition-variables='[
3 {"id":"variant","type":"enum","label":"Variant","default":"0","options":[{"value":"0","label":"dots"},{"value":"1","label":"Grok Bot"},{"value":"2","label":"Jev confidence scores"}]},
4 {"id":"theme","type":"enum","label":"Theme","default":"light","options":[{"value":"light","label":"Light"},{"value":"dark","label":"Dark"}]}
5]'>
6 <head>
7 <meta charset="UTF-8" />
8 <meta name="viewport" content="width=1920, height=1080" />
9 <link rel="stylesheet" href="assets/fonts/fonts.css" />
10 <link rel="stylesheet" href="assets/skins/chatgpt/skin.css" />
11 <link rel="stylesheet" href="assets/skins/grok/skin.css" />
12 <link rel="stylesheet" href="assets/skins/device/skin.css" />
13 <script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
14 <script src="assets/kit/motion/motion.js"></script>
15 <script src="assets/skins/chatgpt/icons.js"></script>
16 <script src="assets/skins/grok/icons.js"></script>
17 <script src="assets/skins/device/icons.js"></script>
18 <style>
19 * { margin: 0; padding: 0; box-sizing: border-box; }
20 html, body { margin: 0; width: 1920px; height: 1080px; overflow: hidden; background: #f5f5f4; }
21 body[data-theme="dark"] { background: #0e0e0f; }
22 #root { position: relative; width: 100%; height: 100%; overflow: hidden; font-family: 'Inter', sans-serif; }
23
24 /* ---------- stage: flat, DESIGN.md tokens ---------- */
25 #stage { position: absolute; inset: 0; background: #f5f5f4; }
26 body[data-theme="dark"] #stage { background: #0e0e0f; }
27 #center { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
28 #cam { position: relative; }
29 #win-wrap { position: relative; opacity: 0; }
30 #zoom { position: relative; }
31 #ptr { opacity: 0; }
32
33 /* ---------- bottom-anchored thread items: each grows from height 0 as it arrives ---------- */
34 .tr-item { position: relative; display: flow-root; flex: none; clip-path: inset(-10px -10px -3px -10px); }
35
36 /* ---------- the triage list (shared by all three variants) ---------- */
37 .tr-list { position: relative; }
38 .tr-row { position: absolute; left: 0; right: 0; top: 0; }
39 .tr-row > .tr-lift, .tr-row > .tr-bg, .tr-row > .tr-hl { position: absolute; inset: 0; border-radius: var(--tr-r, 12px); }
40 .tr-lift { opacity: 0; }
41 .tr-hl { opacity: 0; }
42 .tr-sep { position: absolute; top: 0; height: 1px; }
43 .tr-in { position: relative; }
44 .tr-main { position: relative; display: flex; align-items: center; }
45 .tr-txt { flex: 1; min-width: 0; }
46 .tr-l1 { display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
47 .tr-from { font-weight: 600; letter-spacing: -0.01em; }
48 .tr-time { font-variant-numeric: tabular-nums; }
Open full file
Download project1 MB