@yojahny/wp-design-library 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/bin/library.mjs +1 -0
  2. package/entries/ada/entry.md +24 -6
  3. package/entries/air/entry.md +39 -10
  4. package/entries/ais-community-dark-depth/entry.md +44 -19
  5. package/entries/apple-home/entry.md +43 -10
  6. package/entries/apple-macbook-neo/entry.md +39 -10
  7. package/entries/apple-watch-ultra-4/entry.md +36 -11
  8. package/entries/bpco/entry.md +15 -7
  9. package/entries/column/entry.md +22 -9
  10. package/entries/cthdrl/entry.md +41 -19
  11. package/entries/dala-craftedbygc/entry.md +41 -16
  12. package/entries/dock/entry.md +36 -10
  13. package/entries/dub/entry.md +35 -10
  14. package/entries/duolingo/entry.md +42 -10
  15. package/entries/elevenlabs/entry.md +42 -10
  16. package/entries/flying-papers/entry.md +32 -10
  17. package/entries/gsap/entry.md +40 -10
  18. package/entries/letters/entry.md +40 -10
  19. package/entries/micro/entry.md +34 -10
  20. package/entries/monopo-saigon/entry.md +41 -12
  21. package/entries/notion/entry.md +42 -10
  22. package/entries/origin-financial/entry.md +42 -9
  23. package/entries/oryzo-ai/entry.md +46 -11
  24. package/entries/silencio/entry.md +6 -2
  25. package/entries/steep/entry.md +38 -12
  26. package/entries/stripe/entry.md +34 -10
  27. package/entries/superpower/entry.md +43 -9
  28. package/entries/superr/entry.md +22 -6
  29. package/entries/svz-weare/entry.md +15 -5
  30. package/entries/thoughtlab/entry.md +42 -10
  31. package/entries/ventriloc/entry.md +22 -6
  32. package/entries/vivid-and-co/entry.md +30 -5
  33. package/package.json +4 -1
  34. package/src/artifacts.mjs +31 -0
  35. package/src/cli/add.mjs +55 -24
  36. package/src/cli/index.mjs +1 -1
  37. package/src/cli/migrate-artifacts.mjs +92 -0
  38. package/src/cli/motion.mjs +19 -39
  39. package/src/cli/refresh.mjs +40 -10
  40. package/src/cli/save.mjs +1 -1
  41. package/src/cli/serve.mjs +27 -7
  42. package/src/cli/ui.mjs +1 -1
  43. package/src/entry.mjs +15 -11
  44. package/src/index/build.mjs +13 -3
  45. package/src/ingest/agreement.mjs +14 -1
  46. package/src/ingest/attach.mjs +8 -15
  47. package/src/ingest/save.mjs +2 -2
  48. package/src/mcp/tools.mjs +29 -17
  49. package/src/r2.mjs +95 -0
  50. package/src/ui/build.mjs +30 -12
  51. package/src/ui/templates/index.html +2 -0
  52. package/entries/ada/strip.webp +0 -0
  53. package/entries/air/captures/2/measure.json +0 -325
  54. package/entries/air/captures/2/strip.webp +0 -0
  55. package/entries/air/strip.webp +0 -0
  56. package/entries/ais-community-dark-depth/strip.webp +0 -0
  57. package/entries/apple-home/captures/2/measure.json +0 -91
  58. package/entries/apple-home/captures/2/strip.webp +0 -0
  59. package/entries/apple-home/strip.webp +0 -0
  60. package/entries/apple-macbook-neo/captures/2/measure.json +0 -570
  61. package/entries/apple-macbook-neo/captures/2/strip.webp +0 -0
  62. package/entries/apple-macbook-neo/strip.webp +0 -0
  63. package/entries/apple-watch-ultra-4/measure.json +0 -481
  64. package/entries/apple-watch-ultra-4/strip.webp +0 -0
  65. package/entries/bpco/captures/2/strip.webp +0 -0
  66. package/entries/bpco/captures/3/strip.webp +0 -0
  67. package/entries/bpco/strip.webp +0 -0
  68. package/entries/column/captures/2/measure.json +0 -996
  69. package/entries/column/captures/2/strip.webp +0 -0
  70. package/entries/column/strip.webp +0 -0
  71. package/entries/cthdrl/captures/2/measure.json +0 -251
  72. package/entries/cthdrl/captures/2/strip.webp +0 -0
  73. package/entries/cthdrl/strip.webp +0 -0
  74. package/entries/dala-craftedbygc/strip.webp +0 -0
  75. package/entries/dock/captures/2/measure.json +0 -206
  76. package/entries/dock/captures/2/strip.webp +0 -0
  77. package/entries/dock/strip.webp +0 -0
  78. package/entries/dub/captures/2/measure.json +0 -37
  79. package/entries/dub/captures/2/strip.webp +0 -0
  80. package/entries/dub/strip.webp +0 -0
  81. package/entries/duolingo/captures/2/measure.json +0 -138
  82. package/entries/duolingo/captures/2/strip.webp +0 -0
  83. package/entries/duolingo/strip.webp +0 -0
  84. package/entries/elevenlabs/captures/2/measure.json +0 -160
  85. package/entries/elevenlabs/captures/2/strip.webp +0 -0
  86. package/entries/elevenlabs/strip.webp +0 -0
  87. package/entries/flying-papers/captures/2/measure.json +0 -291
  88. package/entries/flying-papers/captures/2/strip.webp +0 -0
  89. package/entries/flying-papers/strip.webp +0 -0
  90. package/entries/gsap/captures/2/measure.json +0 -120
  91. package/entries/gsap/captures/2/strip.webp +0 -0
  92. package/entries/gsap/strip.webp +0 -0
  93. package/entries/letters/captures/2/measure.json +0 -20
  94. package/entries/letters/captures/2/strip.webp +0 -0
  95. package/entries/letters/strip.webp +0 -0
  96. package/entries/micro/captures/2/measure.json +0 -852
  97. package/entries/micro/captures/2/strip.webp +0 -0
  98. package/entries/micro/strip.webp +0 -0
  99. package/entries/monopo-saigon/captures/2/measure.json +0 -145
  100. package/entries/monopo-saigon/captures/2/strip.webp +0 -0
  101. package/entries/monopo-saigon/strip.webp +0 -0
  102. package/entries/notion/captures/2/measure.json +0 -338
  103. package/entries/notion/captures/2/strip.webp +0 -0
  104. package/entries/notion/strip.webp +0 -0
  105. package/entries/origin-financial/captures/2/measure.json +0 -169
  106. package/entries/origin-financial/captures/2/strip.webp +0 -0
  107. package/entries/origin-financial/strip.webp +0 -0
  108. package/entries/oryzo-ai/captures/2/measure.json +0 -39
  109. package/entries/oryzo-ai/captures/2/strip.webp +0 -0
  110. package/entries/oryzo-ai/strip.webp +0 -0
  111. package/entries/silencio/captures/2/strip.webp +0 -0
  112. package/entries/silencio/strip.webp +0 -0
  113. package/entries/steep/captures/2/measure.json +0 -20
  114. package/entries/steep/captures/2/strip.webp +0 -0
  115. package/entries/steep/strip.webp +0 -0
  116. package/entries/stripe/captures/2/measure.json +0 -892
  117. package/entries/stripe/captures/2/strip.webp +0 -0
  118. package/entries/stripe/strip.webp +0 -0
  119. package/entries/superpower/captures/2/measure.json +0 -179
  120. package/entries/superpower/captures/2/strip.webp +0 -0
  121. package/entries/superpower/strip.webp +0 -0
  122. package/entries/superr/strip.webp +0 -0
  123. package/entries/svz-weare/captures/2/measure.json +0 -129
  124. package/entries/svz-weare/captures/2/strip.webp +0 -0
  125. package/entries/svz-weare/strip.webp +0 -0
  126. package/entries/thoughtlab/captures/2/measure.json +0 -93
  127. package/entries/thoughtlab/captures/2/strip.webp +0 -0
  128. package/entries/thoughtlab/strip.webp +0 -0
  129. package/entries/ventriloc/strip.webp +0 -0
  130. package/entries/vivid-and-co/strip.webp +0 -0
package/bin/library.mjs CHANGED
@@ -8,6 +8,7 @@ const cmds = {
8
8
  serve: () => import('../src/cli/serve.mjs'),
9
9
  add: () => import('../src/cli/add.mjs'),
10
10
  refresh: () => import('../src/cli/refresh.mjs'),
11
+ 'migrate-artifacts': () => import('../src/cli/migrate-artifacts.mjs'),
11
12
  save: () => import('../src/cli/save.mjs'),
12
13
  export: () => import('../src/cli/export.mjs'),
13
14
  ui: () => import('../src/cli/ui.mjs'),
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://www.ada.cx/
8
- license: Captured from a Refero-hosted recording and the live site; description only, no redistribution of the source.
8
+ license: >-
9
+ Captured from a Refero-hosted recording and the live site; description only, no redistribution of the
10
+ source.
9
11
  captured:
10
12
  method: frames
11
13
  at: '2026-09-16'
@@ -14,14 +16,24 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/ada-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/ada/1/strip.webp
20
+ bytes: 329820
21
+ sha256: c530a388208a48f88291e4b4e0f3faa8896d21b9f92b23dd760f923b0ff9e599
18
22
  frames: 36
19
23
  duration_ms: 22133
20
24
  media:
21
25
  frames: 36
22
26
  duration_ms: 22133
23
- roles: [hero, proof, feature, explainer]
24
- feel: [light, premium, saas, depth]
27
+ roles:
28
+ - hero
29
+ - proof
30
+ - feature
31
+ - explainer
32
+ feel:
33
+ - light
34
+ - premium
35
+ - saas
36
+ - depth
25
37
  palette:
26
38
  canvas: '#8a7d3f'
27
39
  ink: '#000000'
@@ -30,8 +42,14 @@ type:
30
42
  display: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, "Helvetica Neue", Arial, sans-serif'
31
43
  body: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, "Helvetica Neue", Arial, sans-serif'
32
44
  motion:
33
- devices: [reveal, pan, count]
34
- notes: Eyeballed from 36 sampled frames, not measured. The blurred landscape hero holds behind a live agent conversation, then reveals a logo row and proof statistics before an operating-model explainer. The metric values appear to count in, but their trigger is not visible.
45
+ devices:
46
+ - reveal
47
+ - pan
48
+ - count
49
+ notes: >-
50
+ Eyeballed from 36 sampled frames, not measured. The blurred landscape hero holds behind a live agent
51
+ conversation, then reveals a logo row and proof statistics before an operating-model explainer. The metric
52
+ values appear to count in, but their trigger is not visible.
35
53
  ported_from: null
36
54
  ---
37
55
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://air.inc/
8
- license: Captured from a Refero-hosted recording and the live site; description only, no redistribution of the source.
8
+ license: >-
9
+ Captured from a Refero-hosted recording and the live site; description only, no redistribution of the
10
+ source.
9
11
  captured:
10
12
  method: both
11
13
  at: '2026-09-17'
@@ -14,21 +16,41 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/air-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/air/1/strip.webp
20
+ bytes: 158228
21
+ sha256: 64028e146021d0c29882f7f21abbc5a57bd32664e308273595448b7563861386
18
22
  frames: 36
19
23
  duration_ms: 29583
20
24
  - method: both
21
25
  input: https://air.inc/
22
26
  artifacts:
23
- - captures/2/strip.webp
24
- - captures/2/measure.json
25
- - captures/2/screen-1440.png
26
- - captures/2/screen-390.png
27
+ - key: entries/air/2/strip.webp
28
+ bytes: 97796
29
+ sha256: d36196a901f1f7a4541b981c0255e8ba2e46f3297fe1519e1f2a6966c414e5c8
30
+ - key: entries/air/2/measure.json
31
+ bytes: 8043
32
+ sha256: 04e3c63a8287af5ecddae4695ce49e72aa821ac1095bf8119d331f9a60545618
33
+ - key: entries/air/2/screen-1440.png
34
+ bytes: 281218
35
+ sha256: 1168f818c84c7db01460790f17293a6f4414191699ce6ddc37896b4bad50c391
36
+ - key: entries/air/2/screen-390.png
37
+ bytes: 262880
38
+ sha256: 159505fe168dd04fb20f23257de7962f2290f57c44dc7fc764d740af24b8412d
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 29583
30
- roles: [hero, explainer, capability, feature, proof]
31
- feel: [light, premium, playful, saas, depth]
42
+ roles:
43
+ - hero
44
+ - explainer
45
+ - capability
46
+ - feature
47
+ - proof
48
+ feel:
49
+ - light
50
+ - premium
51
+ - playful
52
+ - saas
53
+ - depth
32
54
  palette:
33
55
  canvas: '#13396a'
34
56
  ink: '#000000'
@@ -37,8 +59,15 @@ type:
37
59
  display: '"Control Compressed", Arial, Helvetica, sans-serif'
38
60
  body: Control, Arial, Helvetica, sans-serif
39
61
  motion:
40
- devices: [reveal, pan, parallax, drift]
41
- notes: Eyeballed from 36 sampled frames, not measured. The blue-sky hero gives way to floating asset cards, workspace views, and large statement transitions as the recording moves downward. Cards drift independently over the background; individual triggers are not visible.
62
+ devices:
63
+ - reveal
64
+ - pan
65
+ - parallax
66
+ - drift
67
+ notes: >-
68
+ Eyeballed from 36 sampled frames, not measured. The blue-sky hero gives way to floating asset cards,
69
+ workspace views, and large statement transitions as the recording moves downward. Cards drift
70
+ independently over the background; individual triggers are not visible.
42
71
  ported_from: null
43
72
  ---
44
73
 
@@ -10,11 +10,34 @@ captured:
10
10
  method: frames
11
11
  at: '2026-09-14'
12
12
  tool: wp-design-library@0.1.0
13
+ captures:
14
+ - method: frames
15
+ artifacts:
16
+ - key: entries/ais-community-dark-depth/1/strip.webp
17
+ bytes: 159534
18
+ sha256: 83c72a9d4a95a8e3f5d8fac2a27ca2adf1996b5ea123d5caaf8af0e0611d588d
19
+ frames: 228
20
+ duration_ms: 22800
13
21
  media:
14
22
  frames: 228
15
23
  duration_ms: 22800
16
- roles: [hero, explainer, capability, feature, proof, offer, faq, closing, footer]
17
- feel: [dark, premium, saas, depth, minimal, cold]
24
+ roles:
25
+ - hero
26
+ - explainer
27
+ - capability
28
+ - feature
29
+ - proof
30
+ - offer
31
+ - faq
32
+ - closing
33
+ - footer
34
+ feel:
35
+ - dark
36
+ - premium
37
+ - saas
38
+ - depth
39
+ - minimal
40
+ - cold
18
41
  palette:
19
42
  canvas: '#0b1218'
20
43
  ink: '#f2f5f8'
@@ -23,24 +46,26 @@ type:
23
46
  display: geometric sans (Montserrat-like), medium weight, tight tracking, two-line headlines with a soft break
24
47
  body: same family, regular, small and muted at roughly 60% ink
25
48
  motion:
26
- devices: [parallax, drift, reveal, stagger, pin, stack, tabs]
49
+ devices:
50
+ - parallax
51
+ - drift
52
+ - reveal
53
+ - stagger
54
+ - pin
55
+ - stack
56
+ - tabs
27
57
  notes: >-
28
- Eyeballed from 12 sampled frames, not measured. The hero is a layered scene: a
29
- dark-blue sky gradient, two mountain silhouettes and a treeline, with the
30
- app frame in front. On scroll the frame rises faster than the bed and the
31
- bed than the sky (parallax, three depths), and the frame keeps drifting up
32
- into the next section before the about copy takes over. The about copy is
33
- painted dim and brightens as it enters (reveal on the text block, not on a
34
- wrapper). Then the stacked cards, the page's second set piece: four
35
- feature cards (Courses, Weekly calls, Rooms, Certification) each pin at
36
- the same screen position while the next slides up over it, so the reader
37
- scrolls through a deck rather than down a list; the hand-off is a slide
38
- from below, not a fade, and the covered card stays put underneath. Before
39
- them, the "One place to learn" panel is a tabbed card (Classroom, Live
40
- calls, Events, Leaderboards) whose active tab changes on its own. The
41
- three pricing cards and the video cards arrive as staggered reveals. The
42
- closing section repeats the hero scene and frame at a smaller scale, so
43
- the page ends where it began.
58
+ Eyeballed from 12 sampled frames, not measured. The hero is a layered scene: a dark-blue sky gradient, two
59
+ mountain silhouettes and a treeline, with the app frame in front. On scroll the frame rises faster than
60
+ the bed and the bed than the sky (parallax, three depths), and the frame keeps drifting up into the next
61
+ section before the about copy takes over. The about copy is painted dim and brightens as it enters (reveal
62
+ on the text block, not on a wrapper). Then the stacked cards, the page's second set piece: four feature
63
+ cards (Courses, Weekly calls, Rooms, Certification) each pin at the same screen position while the next
64
+ slides up over it, so the reader scrolls through a deck rather than down a list; the hand-off is a slide
65
+ from below, not a fade, and the covered card stays put underneath. Before them, the "One place to learn"
66
+ panel is a tabbed card (Classroom, Live calls, Events, Leaderboards) whose active tab changes on its own.
67
+ The three pricing cards and the video cards arrive as staggered reveals. The closing section repeats the
68
+ hero scene and frame at a smaller scale, so the page ends where it began.
44
69
  ported_from: null
45
70
  ---
46
71
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://www.apple.com/
8
- license: Captured from a Refero-hosted recording and the live site; description only, no redistribution of the source.
8
+ license: >-
9
+ Captured from a Refero-hosted recording and the live site; description only, no redistribution of the
10
+ source.
9
11
  captured:
10
12
  method: both
11
13
  at: '2026-09-16'
@@ -14,21 +16,43 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/apple-home-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/apple-home/1/strip.webp
20
+ bytes: 260976
21
+ sha256: 39f96e40aaef306d12292310b04ccddcca2c9775be5056945bcddaf2983d35ed
18
22
  frames: 31
19
23
  duration_ms: 15317
20
24
  - method: both
21
25
  input: https://www.apple.com/
22
26
  artifacts:
23
- - captures/2/strip.webp
24
- - captures/2/measure.json
25
- - captures/2/screen-1440.png
26
- - captures/2/screen-390.png
27
+ - key: entries/apple-home/2/strip.webp
28
+ bytes: 309410
29
+ sha256: b5fb7c976fd0c2977550cdd0b3974756f12ddc4b3d868fcbc890988463daef2b
30
+ - key: entries/apple-home/2/measure.json
31
+ bytes: 1880
32
+ sha256: 0983d7f69b72edbbd7fb4e3fa126baea156623180226543b3e3e8e591b4a484a
33
+ - key: entries/apple-home/2/screen-1440.png
34
+ bytes: 95313
35
+ sha256: 6edc43b60e651fa6fa9279946fe5af7ffe8b76d8865d931b68037c6f4af3e1db
36
+ - key: entries/apple-home/2/screen-390.png
37
+ bytes: 35767
38
+ sha256: 5fc1c1f45b699aef90b812ef51376853b7fea6909ed8f8bc458f36add80e7dc5
27
39
  media:
28
40
  frames: 31
29
41
  duration_ms: 15317
30
- roles: [hero, feature, capability, offer, proof, closing, footer]
31
- feel: [light, premium, editorial, minimal, cold]
42
+ roles:
43
+ - hero
44
+ - feature
45
+ - capability
46
+ - offer
47
+ - proof
48
+ - closing
49
+ - footer
50
+ feel:
51
+ - light
52
+ - premium
53
+ - editorial
54
+ - minimal
55
+ - cold
32
56
  palette:
33
57
  canvas: '#ffffff'
34
58
  ink: '#1d1d1f'
@@ -37,8 +61,17 @@ type:
37
61
  display: '"SF Pro Text", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif'
38
62
  body: '"SF Pro Display", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif'
39
63
  motion:
40
- devices: [reveal, pan, drift, tabs]
41
- notes: 'The Refero recording opens on a glossy, dark WWDC26 Apple mark that changes shape and lighting before cutting into large iPhone launch panels. Product imagery eases into view behind fixed headline and action rows. The live page uses the same product-launch rhythm in a different campaign state, then switches to smaller offer tiles and an entertainment gallery with a documented 4.16-second dot-navigation cycle. No interaction trigger beyond the gallery navigation is asserted.'
64
+ devices:
65
+ - reveal
66
+ - pan
67
+ - drift
68
+ - tabs
69
+ notes: >-
70
+ The Refero recording opens on a glossy, dark WWDC26 Apple mark that changes shape and lighting before
71
+ cutting into large iPhone launch panels. Product imagery eases into view behind fixed headline and action
72
+ rows. The live page uses the same product-launch rhythm in a different campaign state, then switches to
73
+ smaller offer tiles and an entertainment gallery with a documented 4.16-second dot-navigation cycle. No
74
+ interaction trigger beyond the gallery navigation is asserted.
42
75
  ported_from: null
43
76
  ---
44
77
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://www.apple.com/macbook-neo
8
- license: Captured from a Refero-hosted recording and the live site; description only, no redistribution of the source.
8
+ license: >-
9
+ Captured from a Refero-hosted recording and the live site; description only, no redistribution of the
10
+ source.
9
11
  captured:
10
12
  method: both
11
13
  at: '2026-09-17'
@@ -14,21 +16,41 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/apple-macbook-neo-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/apple-macbook-neo/1/strip.webp
20
+ bytes: 160052
21
+ sha256: a8b2206815b870b4bb06ed0bc9a4ce2692668ebabb000e4bc57ab260c24d6a7b
18
22
  frames: 36
19
23
  duration_ms: 17433
20
24
  - method: both
21
25
  input: https://www.apple.com/macbook-neo
22
26
  artifacts:
23
- - captures/2/strip.webp
24
- - captures/2/measure.json
25
- - captures/2/screen-1440.png
26
- - captures/2/screen-390.png
27
+ - key: entries/apple-macbook-neo/2/strip.webp
28
+ bytes: 126746
29
+ sha256: 46ee00809cb52c881234726000af731a1946f2fe4ed880a53c0657aeba935642
30
+ - key: entries/apple-macbook-neo/2/measure.json
31
+ bytes: 14487
32
+ sha256: 4c1ebeaf3622dc30740d8bb7a230eb0c035803b83cdd52d09f6a8d22b5876283
33
+ - key: entries/apple-macbook-neo/2/screen-1440.png
34
+ bytes: 172915
35
+ sha256: b843c6064ce42222dd3ab3439243925c65dfce4fc162583dbd03363a51fee615
36
+ - key: entries/apple-macbook-neo/2/screen-390.png
37
+ bytes: 69390
38
+ sha256: 0158d5425a826f64af6098d30e2a38bb9408dac56e575c6608ab898817b953de
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 17433
30
- roles: [hero, feature, explainer, proof, offer]
31
- feel: [light, premium, minimal, editorial, depth]
42
+ roles:
43
+ - hero
44
+ - feature
45
+ - explainer
46
+ - proof
47
+ - offer
48
+ feel:
49
+ - light
50
+ - premium
51
+ - minimal
52
+ - editorial
53
+ - depth
32
54
  palette:
33
55
  canvas: '#ffffff'
34
56
  ink: '#1d1d1f'
@@ -37,8 +59,15 @@ type:
37
59
  display: '"SF Pro Display", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif'
38
60
  body: '"SF Pro Text", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif'
39
61
  motion:
40
- devices: [reveal, pan, drift, stagger]
41
- notes: Eyeballed from 36 sampled frames, not measured. Hands and product cards enter around the MacBook Neo hero, then the recording stages exploded views, screens, and accessories in sequential compositions. Individual triggers are not visible.
62
+ devices:
63
+ - reveal
64
+ - pan
65
+ - drift
66
+ - stagger
67
+ notes: >-
68
+ Eyeballed from 36 sampled frames, not measured. Hands and product cards enter around the MacBook Neo hero,
69
+ then the recording stages exploded views, screens, and accessories in sequential compositions. Individual
70
+ triggers are not visible.
42
71
  ported_from: null
43
72
  ---
44
73
 
@@ -10,9 +10,35 @@ captured:
10
10
  method: both
11
11
  at: '2026-09-16'
12
12
  tool: wp-design-library@0.3.0
13
+ captures:
14
+ - method: both
15
+ artifacts:
16
+ - key: entries/apple-watch-ultra-4/1/strip.webp
17
+ bytes: 129230
18
+ sha256: 19f9581ec5a22a9bc9aaad022289777d90796ad28b231062258f0d7a3d0195ab
19
+ - key: entries/apple-watch-ultra-4/1/measure.json
20
+ bytes: 12123
21
+ sha256: 1bf4bb697dcbc4f28324b26ef50160097867a3cae6afe44bae6b376ed08dbff4
22
+ - key: entries/apple-watch-ultra-4/1/screen-1440.png
23
+ bytes: 223306
24
+ sha256: c7cd6c1d9d38c0ecf442b013a3dd653cc31d4881d1e9485a448c80806acf193d
25
+ - key: entries/apple-watch-ultra-4/1/screen-390.png
26
+ bytes: 61999
27
+ sha256: 6efd8644043d4a252ee54632ce13d312b8ab2f7dcdb7b04a0b38866aadd22f2c
13
28
  media: {}
14
- roles: [hero, feature, capability, explainer, offer, footer]
15
- feel: [dark, premium, minimal, depth, cold]
29
+ roles:
30
+ - hero
31
+ - feature
32
+ - capability
33
+ - explainer
34
+ - offer
35
+ - footer
36
+ feel:
37
+ - dark
38
+ - premium
39
+ - minimal
40
+ - depth
41
+ - cold
16
42
  palette:
17
43
  canvas: '#000000'
18
44
  ink: '#1d1d1f'
@@ -21,16 +47,15 @@ type:
21
47
  display: '"SF Pro Display", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif'
22
48
  body: '"SF Pro Display", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif'
23
49
  motion:
24
- devices: [tabs]
50
+ devices:
51
+ - tabs
25
52
  notes: >-
26
- Eyeballed from 12 sampled frames, not measured. The page hands off between
27
- large, isolated product stories on a nearly uninterrupted black canvas:
28
- the hero places the watch beneath a large headline, later frames move from
29
- health metrics to a running display, battery claim and feature cards. The
30
- health/product-viewer areas show paired circular arrow controls, indicating
31
- an inspectable carousel or tab-like sequence. The static scroll samples do
32
- not establish a timed reveal, parallax, pinning, or the exact transition
33
- between slides, so those devices are intentionally not claimed.
53
+ Eyeballed from 12 sampled frames, not measured. The page hands off between large, isolated product stories
54
+ on a nearly uninterrupted black canvas: the hero places the watch beneath a large headline, later frames
55
+ move from health metrics to a running display, battery claim and feature cards. The health/product-viewer
56
+ areas show paired circular arrow controls, indicating an inspectable carousel or tab-like sequence. The
57
+ static scroll samples do not establish a timed reveal, parallax, pinning, or the exact transition between
58
+ slides, so those devices are intentionally not claimed.
34
59
  ported_from: null
35
60
  ---
36
61
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://www.bpco.kr/
8
- license: Captured from a Refero-hosted recording and the live site; description only, no redistribution of the source.
8
+ license: >-
9
+ Captured from a Refero-hosted recording and the live site; description only, no redistribution of the
10
+ source.
9
11
  captured:
10
12
  method: frames
11
13
  at: '2026-09-16'
@@ -14,17 +16,23 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/bpco-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/bpco/1/strip.webp
20
+ bytes: 108896
21
+ sha256: 792a2cd8dfcb7e93109834204ce7fbb8db9ff8ce93da7c05c83df1e8f99b7e09
18
22
  frames: 13
19
23
  duration_ms: 6500
20
24
  - method: frames
21
25
  input: https://www.bpco.kr/
22
26
  artifacts:
23
- - captures/2/strip.webp
27
+ - key: entries/bpco/2/strip.webp
28
+ bytes: 203722
29
+ sha256: a9a77c0c1fbf0b2f5304edec546e85a97b1c06726222d5e3af888e6a53552e37
24
30
  - method: frames
25
31
  input: /tmp/bpco-screencast-1280.webm
26
32
  artifacts:
27
- - captures/3/strip.webp
33
+ - key: entries/bpco/3/strip.webp
34
+ bytes: 190316
35
+ sha256: fef05b439eab8731144c67f8573336455609f3d0b30ba93024f698388f87313a
28
36
  frames: 36
29
37
  duration_ms: 27617
30
38
  media:
@@ -56,9 +64,9 @@ motion:
56
64
  - reveal
57
65
  - wipe
58
66
  notes: >-
59
- Eyeballed from 13 sampled frames, not measured. The recording pans across a tilted, oversized typographic surface:
60
- condensed headlines, Korean labels, stamps, stars, and printed micro-copy move together as one poster-like
61
- composition. Input triggers are not visible.
67
+ Eyeballed from 13 sampled frames, not measured. The recording pans across a tilted, oversized typographic
68
+ surface: condensed headlines, Korean labels, stamps, stars, and printed micro-copy move together as one
69
+ poster-like composition. Input triggers are not visible.
62
70
  ported_from: null
63
71
  ---
64
72
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://column.com/
8
- license: Captured from a Refero-hosted recording and the live site; description only, no redistribution of the source.
8
+ license: >-
9
+ Captured from a Refero-hosted recording and the live site; description only, no redistribution of the
10
+ source.
9
11
  captured:
10
12
  method: both
11
13
  at: '2026-09-16'
@@ -14,16 +16,26 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/column-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/column/1/strip.webp
20
+ bytes: 154448
21
+ sha256: 365ad51a4e79a1b13efe4b4f9ebefd63c9abcd05fef9842252e73f5b68cbfade
18
22
  frames: 36
19
23
  duration_ms: 32417
20
24
  - method: both
21
25
  input: https://column.com/
22
26
  artifacts:
23
- - captures/2/strip.webp
24
- - captures/2/measure.json
25
- - captures/2/screen-1440.png
26
- - captures/2/screen-390.png
27
+ - key: entries/column/2/strip.webp
28
+ bytes: 276266
29
+ sha256: d05931f4d2032b84c50ca2d8f68c8f80ad5026c6c432d360204a0f084fd0e25f
30
+ - key: entries/column/2/measure.json
31
+ bytes: 28177
32
+ sha256: 59678c5d1659ee3bf8ad36a74d812b2eeffafd0298e86d4418b8097f588ba03a
33
+ - key: entries/column/2/screen-1440.png
34
+ bytes: 369814
35
+ sha256: 7f2426eff3fa18e9cb850a729a03a6062b3e7a457efc2bc4ce84810550f3dffc
36
+ - key: entries/column/2/screen-390.png
37
+ bytes: 307184
38
+ sha256: cb08ba73f89e5ac46ae5f658f4518b1b7922053c0ba05cf75d5f93c3eddf5cc8
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 32417
@@ -55,9 +67,10 @@ motion:
55
67
  - drift
56
68
  - stagger
57
69
  notes: >-
58
- Eyeballed from the 36 sampled video frames, not measured. The recording moves from a dotted world map and floating
59
- account card into layered orange chart panels, code/interface blocks, and a dark system diagram. Each chapter
60
- reveals cards in small groups; the contact-sheet capture cannot establish interaction triggers.
70
+ Eyeballed from the 36 sampled video frames, not measured. The recording moves from a dotted world map and
71
+ floating account card into layered orange chart panels, code/interface blocks, and a dark system diagram.
72
+ Each chapter reveals cards in small groups; the contact-sheet capture cannot establish interaction
73
+ triggers.
61
74
  ported_from: null
62
75
  ---
63
76
 
@@ -14,21 +14,41 @@ captured:
14
14
  - method: frames
15
15
  input: /home/yojahny/Videos/Screencasts/Screencast_20260916_145447.webm
16
16
  artifacts:
17
- - strip.webp
17
+ - key: entries/cthdrl/1/strip.webp
18
+ bytes: 224074
19
+ sha256: f734a161f634d3c81dbfe16ddee1921fd773927d72e6c14619da660c9bd8e93b
18
20
  frames: 30
19
21
  duration_ms: 14968
20
22
  - method: both
21
23
  input: https://cthdrl.co/
22
24
  artifacts:
23
- - captures/2/strip.webp
24
- - captures/2/measure.json
25
- - captures/2/screen-1440.png
26
- - captures/2/screen-390.png
25
+ - key: entries/cthdrl/2/strip.webp
26
+ bytes: 326636
27
+ sha256: 4d3939eebef95f79d708f6b4c914d343e3be1a20387dca70c360650fb356dba3
28
+ - key: entries/cthdrl/2/measure.json
29
+ bytes: 6418
30
+ sha256: 7f10757181fbb9a6e49314234f75114816a341a372c071c62ac64f877c8d2150
31
+ - key: entries/cthdrl/2/screen-1440.png
32
+ bytes: 295011
33
+ sha256: effcd18cca3246887dd75e52f400262499751241eb7642e879fde27f76ee2cd8
34
+ - key: entries/cthdrl/2/screen-390.png
35
+ bytes: 181021
36
+ sha256: ddb58a6d47cdfd8b94b8d2488b6f27fbcd6d442437887a321a080d6923e18064
27
37
  media:
28
38
  frames: 30
29
39
  duration_ms: 14968
30
- roles: [hero, feature, proof, footer]
31
- feel: [dark, premium, editorial, minimal, depth, cold]
40
+ roles:
41
+ - hero
42
+ - feature
43
+ - proof
44
+ - footer
45
+ feel:
46
+ - dark
47
+ - premium
48
+ - editorial
49
+ - minimal
50
+ - depth
51
+ - cold
32
52
  palette:
33
53
  canvas: '#000000'
34
54
  ink: '#e7ded1'
@@ -37,19 +57,21 @@ type:
37
57
  display: '"NB Akademie", sans-serif'
38
58
  body: '"NB Akademie Mono", sans-serif'
39
59
  motion:
40
- devices: [marquee, wipe, pan, reveal, tabs]
60
+ devices:
61
+ - marquee
62
+ - wipe
63
+ - pan
64
+ - reveal
65
+ - tabs
41
66
  notes: >-
42
- Eyeballed from 30 sampled recording frames plus a live measurement, not
43
- measured frame by frame. A small all-caps line in the header moves
44
- continuously as a marquee. The full-screen work sequence is organised by a
45
- 0/14-style project counter: thin concentric circles sweep and enlarge across
46
- the screen as the Terminal project gives way to its interior image, then to
47
- Jeen-Yuhs and its film frames. The circle is a mask/wipe rather than a
48
- background decoration, revealing a new image and title beneath it. Project
49
- labels and "VIEW" cues slide or cut into place, while the media itself pans
50
- within its crop; the numbered work states behave as a tabbed/slideshow
51
- sequence. The samples do not establish whether wheel input, clicks, or an
52
- autoplay timer advances every state.
67
+ Eyeballed from 30 sampled recording frames plus a live measurement, not measured frame by frame. A small
68
+ all-caps line in the header moves continuously as a marquee. The full-screen work sequence is organised by
69
+ a 0/14-style project counter: thin concentric circles sweep and enlarge across the screen as the Terminal
70
+ project gives way to its interior image, then to Jeen-Yuhs and its film frames. The circle is a mask/wipe
71
+ rather than a background decoration, revealing a new image and title beneath it. Project labels and "VIEW"
72
+ cues slide or cut into place, while the media itself pans within its crop; the numbered work states behave
73
+ as a tabbed/slideshow sequence. The samples do not establish whether wheel input, clicks, or an autoplay
74
+ timer advances every state.
53
75
  ported_from: null
54
76
  ---
55
77