@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
@@ -10,34 +10,59 @@ captured:
10
10
  method: frames
11
11
  at: '2026-09-16'
12
12
  tool: wp-design-library@0.3.0
13
+ captures:
14
+ - method: frames
15
+ artifacts:
16
+ - key: entries/dala-craftedbygc/1/strip.webp
17
+ bytes: 502318
18
+ sha256: d305f5fdf2360d40736275cf965a2ba61d6b51f513f1c613b85f635331af2674
19
+ frames: 36
20
+ duration_ms: 42533
13
21
  media:
14
22
  frames: 36
15
23
  duration_ms: 42533
16
- roles: [hero, explainer, feature, capability, proof, closing, footer]
17
- feel: [dark, premium, playful, depth, saas, cold]
24
+ roles:
25
+ - hero
26
+ - explainer
27
+ - feature
28
+ - capability
29
+ - proof
30
+ - closing
31
+ - footer
32
+ feel:
33
+ - dark
34
+ - premium
35
+ - playful
36
+ - depth
37
+ - saas
38
+ - cold
18
39
  palette:
19
40
  canvas: '#000000'
20
41
  ink: '#ffffff'
21
42
  accent: '#9a9a9a'
22
43
  type:
23
44
  display: >-
24
- PPNeueMontreal, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif
45
+ PPNeueMontreal, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,
46
+ "Noto Sans", sans-serif
25
47
  body: >-
26
- PPNeueMontreal, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif
48
+ PPNeueMontreal, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,
49
+ "Noto Sans", sans-serif
27
50
  motion:
28
- devices: [reveal, pin, parallax, drift, tabs]
51
+ devices:
52
+ - reveal
53
+ - pin
54
+ - parallax
55
+ - drift
56
+ - tabs
29
57
  notes: >-
30
- Eyeballed from 36 sampled frames, not measured. The hero's dense, colourful
31
- particle form remains on the dark stage while the opening copy changes, then
32
- enlarges and resolves into a field of scattered outlined symbols; this reads
33
- as a pinned hero hand-off with the form and its loose particles moving at
34
- different apparent depths. The information field continues behind the
35
- problem copy as small triangles and diamonds drift, while the next large
36
- form gradually resolves at the right of the "Spark lightbulb moments" story.
37
- Copy and the objects enter as separate reveals rather than one full-page
38
- fade. The team panel's paired purple pagination dots and previous/next
39
- controls indicate tabbed or carousel content. The samples do not establish
40
- the exact easing or whether the particle system is mouse-reactive.
58
+ Eyeballed from 36 sampled frames, not measured. The hero's dense, colourful particle form remains on the
59
+ dark stage while the opening copy changes, then enlarges and resolves into a field of scattered outlined
60
+ symbols; this reads as a pinned hero hand-off with the form and its loose particles moving at different
61
+ apparent depths. The information field continues behind the problem copy as small triangles and diamonds
62
+ drift, while the next large form gradually resolves at the right of the "Spark lightbulb moments" story.
63
+ Copy and the objects enter as separate reveals rather than one full-page fade. The team panel's paired
64
+ purple pagination dots and previous/next controls indicate tabbed or carousel content. The samples do not
65
+ establish the exact easing or whether the particle system is mouse-reactive.
41
66
  ported_from: null
42
67
  ---
43
68
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://dock.us/
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,40 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/dock-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/dock/1/strip.webp
20
+ bytes: 241576
21
+ sha256: 46d661edb1a718c87950d86e1ba4c5476f979337a8a689dd98b8e8c166daeaed
18
22
  frames: 36
19
23
  duration_ms: 21750
20
24
  - method: both
21
25
  input: https://dock.us/
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/dock/2/strip.webp
28
+ bytes: 286230
29
+ sha256: 5fe492f89d3fe971ac8a42b48dcc1980a45e63ed4d2537975db7a26cd63306e7
30
+ - key: entries/dock/2/measure.json
31
+ bytes: 4444
32
+ sha256: 70b7eab6170ecdca8796a82df2a7ab60557e6ba17a37b06fe4a1c74423a9fa17
33
+ - key: entries/dock/2/screen-1440.png
34
+ bytes: 506611
35
+ sha256: d15d2cbc0632e3d9d1287e8e2317858db9b143fdfc8804b0760a11424b07f0f5
36
+ - key: entries/dock/2/screen-390.png
37
+ bytes: 206081
38
+ sha256: 77e06585f78513fb55362e3d462162b43a902c778af5bbe10468a410bc5d1ae6
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 21750
30
- roles: [hero, capability, proof, feature]
31
- feel: [light, saas, premium, depth, cold]
42
+ roles:
43
+ - hero
44
+ - capability
45
+ - proof
46
+ - feature
47
+ feel:
48
+ - light
49
+ - saas
50
+ - premium
51
+ - depth
52
+ - cold
32
53
  palette:
33
54
  canvas: '#ffffff'
34
55
  ink: '#121722'
@@ -37,8 +58,13 @@ type:
37
58
  display: Roobert, sans-serif
38
59
  body: Roobert, sans-serif
39
60
  motion:
40
- devices: [reveal, pan]
41
- notes: Eyeballed from 36 sampled frames, not measured. The hero introduces a deal-room interface, then the recording pans through success criteria, next steps, and collaborative message states. Individual interactions are not visible.
61
+ devices:
62
+ - reveal
63
+ - pan
64
+ notes: >-
65
+ Eyeballed from 36 sampled frames, not measured. The hero introduces a deal-room interface, then the
66
+ recording pans through success criteria, next steps, and collaborative message states. Individual
67
+ interactions are not visible.
42
68
  ported_from: null
43
69
  ---
44
70
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://dub.co/
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,39 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/dub-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/dub/1/strip.webp
20
+ bytes: 149712
21
+ sha256: b97d97dfda1ad68af2d776003b1720ec2a89ca94de60011d426ff9bf79f223c5
18
22
  frames: 36
19
23
  duration_ms: 40983
20
24
  - method: both
21
25
  input: https://dub.co/
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/dub/2/strip.webp
28
+ bytes: 185988
29
+ sha256: 42fb7f3377cfcbe04e82864dc119e11c1543a5bfa2220fe8e6c99d94a2a67efc
30
+ - key: entries/dub/2/measure.json
31
+ bytes: 843
32
+ sha256: a41d47192b7b0116efe5ceb85c3a9a3e8b3ef7b05bea03800530cb0a494c4e3a
33
+ - key: entries/dub/2/screen-1440.png
34
+ bytes: 64612
35
+ sha256: 4e5afedb67f9b726e9f047aaf07170ffc3f559063fbdc828d335500a40fafbd7
36
+ - key: entries/dub/2/screen-390.png
37
+ bytes: 55593
38
+ sha256: 34fef8e2a579662cdf0941c6a5eba50888ece98d96d9e1084f1f4283672b18d8
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 40983
30
- roles: [hero, feature, proof]
31
- feel: [light, saas, minimal, cold, depth]
42
+ roles:
43
+ - hero
44
+ - feature
45
+ - proof
46
+ feel:
47
+ - light
48
+ - saas
49
+ - minimal
50
+ - cold
51
+ - depth
32
52
  palette:
33
53
  canvas: '#fafafa'
34
54
  ink: '#0a0a0a'
@@ -37,8 +57,13 @@ type:
37
57
  display: satoshi, "satoshi Fallback", system-ui, sans-serif
38
58
  body: Inter, "Inter Fallback", system-ui, sans-serif
39
59
  motion:
40
- devices: [reveal, pan]
41
- notes: Eyeballed from 36 sampled frames, not measured. The partner-program dashboard enters as a central product scene, then the recording changes through overview and payout states while the surrounding hero stays sparse; individual interface triggers are not visible.
60
+ devices:
61
+ - reveal
62
+ - pan
63
+ notes: >-
64
+ Eyeballed from 36 sampled frames, not measured. The partner-program dashboard enters as a central product
65
+ scene, then the recording changes through overview and payout states while the surrounding hero stays
66
+ sparse; individual interface triggers are not visible.
42
67
  ported_from: null
43
68
  ---
44
69
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://duolingo.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,42 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/duolingo-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/duolingo/1/strip.webp
20
+ bytes: 206170
21
+ sha256: 46ba16a5f128d8ef90f23d1d75c577fa28e10eb04846bc97fe18266c67c15c12
18
22
  frames: 36
19
23
  duration_ms: 37617
20
24
  - method: both
21
25
  input: https://duolingo.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/duolingo/2/strip.webp
28
+ bytes: 169096
29
+ sha256: 916284dfda61685a1eada975032c9ad9bf37cf67bce086b6022e4e6ca3cdf5f1
30
+ - key: entries/duolingo/2/measure.json
31
+ bytes: 2454
32
+ sha256: 30c2cc54916a07c8456926931f695f73247a39e49849c0006684579e1af865f0
33
+ - key: entries/duolingo/2/screen-1440.png
34
+ bytes: 59917
35
+ sha256: 6f65e1607dd3338d0e4774728d85cd1aa3850ff5cd1f129823becf24acf7b203
36
+ - key: entries/duolingo/2/screen-390.png
37
+ bytes: 38030
38
+ sha256: c826165d39622da9dddcead35dc717102fbe95add9d6946562ca3478458d5a8a
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 37617
30
- roles: [hero, explainer, capability, feature, offer, closing, footer]
31
- feel: [light, playful, minimal, warm]
42
+ roles:
43
+ - hero
44
+ - explainer
45
+ - capability
46
+ - feature
47
+ - offer
48
+ - closing
49
+ - footer
50
+ feel:
51
+ - light
52
+ - playful
53
+ - minimal
54
+ - warm
32
55
  palette:
33
56
  canvas: '#ffffff'
34
57
  ink: '#3c3c3c'
@@ -37,8 +60,17 @@ type:
37
60
  display: duolingo-sans, sans-serif
38
61
  body: duolingo-sans, sans-serif
39
62
  motion:
40
- devices: [reveal, pan, drift, stagger]
41
- notes: 'The Refero recording moves in distinct illustrated chapters: character groups and phones enter as a composition, the light-blue app chapter expands around floating icons and devices, and the deep-indigo Super Duolingo panel resets the pace before the closing offer. Objects appear to drift at different speeds while copy and illustration arrive as staged groups. The live capture confirms the same chapter sequence and composition, but no CSS animation inventory or interaction trigger was exposed.'
63
+ devices:
64
+ - reveal
65
+ - pan
66
+ - drift
67
+ - stagger
68
+ notes: >-
69
+ The Refero recording moves in distinct illustrated chapters: character groups and phones enter as a
70
+ composition, the light-blue app chapter expands around floating icons and devices, and the deep-indigo
71
+ Super Duolingo panel resets the pace before the closing offer. Objects appear to drift at different speeds
72
+ while copy and illustration arrive as staged groups. The live capture confirms the same chapter sequence
73
+ and composition, but no CSS animation inventory or interaction trigger was exposed.
42
74
  ported_from: null
43
75
  ---
44
76
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://elevenlabs.io/
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,44 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/elevenlabs-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/elevenlabs/1/strip.webp
20
+ bytes: 206874
21
+ sha256: 37aa1e61a97f041755726ed60efde8bdb00975f5d04f58fb66138bef96d63674
18
22
  frames: 36
19
23
  duration_ms: 33900
20
24
  - method: both
21
25
  input: https://elevenlabs.io/
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/elevenlabs/2/strip.webp
28
+ bytes: 238972
29
+ sha256: 7e50987c060cfa35025f27cfb7fd26230d6228035651dec9d62f33cfb09af283
30
+ - key: entries/elevenlabs/2/measure.json
31
+ bytes: 3936
32
+ sha256: a506f12969ff10d03f262a9855e2bde19f685870287d2ab0619093094b6b8887
33
+ - key: entries/elevenlabs/2/screen-1440.png
34
+ bytes: 342094
35
+ sha256: 33b65af1afda6097d921f35a80206ab2baecee6c4b0b6db0ef53930e7f481344
36
+ - key: entries/elevenlabs/2/screen-390.png
37
+ bytes: 119411
38
+ sha256: a6365bb6fa3c5743fce8b7cbb9eefca21ad9e7cacf9644c960a4d76c71f05d53
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 33900
30
- roles: [hero, explainer, capability, feature, proof, offer, closing, footer]
31
- feel: [light, premium, editorial, minimal, cold]
42
+ roles:
43
+ - hero
44
+ - explainer
45
+ - capability
46
+ - feature
47
+ - proof
48
+ - offer
49
+ - closing
50
+ - footer
51
+ feel:
52
+ - light
53
+ - premium
54
+ - editorial
55
+ - minimal
56
+ - cold
32
57
  palette:
33
58
  canvas: '#fdfcfc'
34
59
  ink: '#000000'
@@ -37,8 +62,15 @@ type:
37
62
  display: Waldenburg, "Waldenburg Fallback"
38
63
  body: Inter, "Inter Fallback"
39
64
  motion:
40
- devices: [reveal, pan, stagger, wipe]
41
- notes: 'The Refero recording presents voice-AI capabilities in staged editorial panels, with interface demos and copy changing one group at a time. The live capture records short 250–300ms navigation and SVG transitions across the current page. It does not establish individual input triggers.'
65
+ devices:
66
+ - reveal
67
+ - pan
68
+ - stagger
69
+ - wipe
70
+ notes: >-
71
+ The Refero recording presents voice-AI capabilities in staged editorial panels, with interface demos and
72
+ copy changing one group at a time. The live capture records short 250–300ms navigation and SVG transitions
73
+ across the current page. It does not establish individual input triggers.
42
74
  ported_from: null
43
75
  ---
44
76
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://www.flyingpapers.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,36 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/flying-papers-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/flying-papers/1/strip.webp
20
+ bytes: 217850
21
+ sha256: e6811f92b94745ad29d9262ac68df0229617904d6354a80f56f4ba3b53192cd4
18
22
  frames: 36
19
23
  duration_ms: 21283
20
24
  - method: both
21
25
  input: https://www.flyingpapers.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/flying-papers/2/strip.webp
28
+ bytes: 158366
29
+ sha256: 601e14a037c1aa54cf69e03279347cd232007218da5a0dadd936353499bd1046
30
+ - key: entries/flying-papers/2/measure.json
31
+ bytes: 6580
32
+ sha256: 96c8db592b057478ceb98f7315f80562aaacd74d85627af1970b83ee9b0f20e1
33
+ - key: entries/flying-papers/2/screen-1440.png
34
+ bytes: 76737
35
+ sha256: 2c671a8439eb59c0056b2e89d06b1537f5327f26783d47f93bec559c7f098c11
36
+ - key: entries/flying-papers/2/screen-390.png
37
+ bytes: 31970
38
+ sha256: d336103029e50f092bd71314620b81262e267b4334c1982f842719713d026a7c
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 21283
30
- roles: [hero, explainer]
31
- feel: [playful, brutalist, warm]
42
+ roles:
43
+ - hero
44
+ - explainer
45
+ feel:
46
+ - playful
47
+ - brutalist
48
+ - warm
32
49
  palette:
33
50
  canvas: '#606799'
34
51
  ink: '#000000'
@@ -37,8 +54,13 @@ type:
37
54
  display: Heavy rounded condensed display sans
38
55
  body: bergen_monoregular
39
56
  motion:
40
- devices: [reveal, pan]
41
- notes: Eyeballed from 36 sampled frames, not measured. The oversized question remains fixed while the illustrated character first peeks through the letterforms and then shifts across the headline; no scroll behavior is shown.
57
+ devices:
58
+ - reveal
59
+ - pan
60
+ notes: >-
61
+ Eyeballed from 36 sampled frames, not measured. The oversized question remains fixed while the illustrated
62
+ character first peeks through the letterforms and then shifts across the headline; no scroll behavior is
63
+ shown.
42
64
  ported_from: null
43
65
  ---
44
66
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://gsap.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-17'
@@ -14,21 +16,41 @@ captured:
14
16
  - method: frames
15
17
  input: /tmp/gsap-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/gsap/1/strip.webp
20
+ bytes: 213026
21
+ sha256: 14e358e511adf5d6c6247efadc17b6048fa7329f964f7282568cd1440d533445
18
22
  frames: 36
19
23
  duration_ms: 33017
20
24
  - method: both
21
25
  input: https://gsap.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/gsap/2/strip.webp
28
+ bytes: 154522
29
+ sha256: 89f04bccf54a36e0117cb1e9d0692bb8f1d259d325e79bcffdecb06877cf115b
30
+ - key: entries/gsap/2/measure.json
31
+ bytes: 2176
32
+ sha256: 543cbb326b69d45963a46ba738ac07317ab12bf74a87f2bb8ad62396c5502160
33
+ - key: entries/gsap/2/screen-1440.png
34
+ bytes: 91838
35
+ sha256: 39658f45d11b69437ddb33f1cc0021c91f5ba166c2314a63457006d246324ba0
36
+ - key: entries/gsap/2/screen-390.png
37
+ bytes: 52348
38
+ sha256: 81e76cfebb83cfa767dee96b735d0969eaa2800ffc8ab89171cb6173c61282c1
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 33017
30
- roles: [hero, capability, feature, explainer, proof]
31
- feel: [dark, premium, brutalist, editorial, depth]
42
+ roles:
43
+ - hero
44
+ - capability
45
+ - feature
46
+ - explainer
47
+ - proof
48
+ feel:
49
+ - dark
50
+ - premium
51
+ - brutalist
52
+ - editorial
53
+ - depth
32
54
  palette:
33
55
  canvas: '#0e100f'
34
56
  ink: '#fffce1'
@@ -37,8 +59,16 @@ type:
37
59
  display: Mori, sans-serif
38
60
  body: Mori, sans-serif
39
61
  motion:
40
- devices: [reveal, pan, stagger, tabs, wipe]
41
- notes: Eyeballed from 36 sampled frames, not measured. The dark hero cycles through oversized type specimens, color demos, and component examples; sections hand off through quick staged changes and grouped reveals. The recording does not establish whether each transition is scroll- or interaction-triggered.
62
+ devices:
63
+ - reveal
64
+ - pan
65
+ - stagger
66
+ - tabs
67
+ - wipe
68
+ notes: >-
69
+ Eyeballed from 36 sampled frames, not measured. The dark hero cycles through oversized type specimens,
70
+ color demos, and component examples; sections hand off through quick staged changes and grouped reveals.
71
+ The recording does not establish whether each transition is scroll- or interaction-triggered.
42
72
  ported_from: null
43
73
  ---
44
74
 
@@ -5,7 +5,9 @@ tier: inspiration
5
5
  source:
6
6
  kind: public-site
7
7
  url: https://letters.app/
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/letters-refero.mp4
16
18
  artifacts:
17
- - strip.webp
19
+ - key: entries/letters/1/strip.webp
20
+ bytes: 166812
21
+ sha256: 372c930ba6ddaec7bf8d8824c049002e99cb96ef86de029e8f82d557bd9db75f
18
22
  frames: 36
19
23
  duration_ms: 22833
20
24
  - method: both
21
25
  input: https://letters.app/
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/letters/2/strip.webp
28
+ bytes: 163562
29
+ sha256: 23cd812d459a9c32a28678fb837ad5063703110eac7d581f591cd34fa587edd6
30
+ - key: entries/letters/2/measure.json
31
+ bytes: 438
32
+ sha256: 8b6d24bccf6844901fcb1cedbf7fcfe54969ddbdf04c2434f724181f7e1f4ebb
33
+ - key: entries/letters/2/screen-1440.png
34
+ bytes: 155462
35
+ sha256: f87920d4af09863faeee2670f1577bc1bfdba86e8995d4cc755a7ebc53c40ede
36
+ - key: entries/letters/2/screen-390.png
37
+ bytes: 79149
38
+ sha256: 52eebd28e303ffccfcf355f38b949cc2176943d0d42a16a06c5788acc453c334
27
39
  media:
28
40
  frames: 36
29
41
  duration_ms: 22833
30
- roles: [hero, explainer, capability, feature, proof, closing, footer]
31
- feel: [light, premium, minimal, saas, cold]
42
+ roles:
43
+ - hero
44
+ - explainer
45
+ - capability
46
+ - feature
47
+ - proof
48
+ - closing
49
+ - footer
50
+ feel:
51
+ - light
52
+ - premium
53
+ - minimal
54
+ - saas
55
+ - cold
32
56
  palette:
33
57
  canvas: '#ffffff'
34
58
  ink: '#000000'
@@ -37,8 +61,14 @@ type:
37
61
  display: '"Open Runde", "Open Runde Placeholder", sans-serif'
38
62
  body: '"Open Runde", "Open Runde Placeholder", sans-serif'
39
63
  motion:
40
- devices: [reveal, pan, stagger]
41
- notes: 'The Refero recording changes between product cards, app interfaces, transcription examples, patient-practice workflow, proof, and privacy modules in staged groups. Interface panels remain calm while supporting details arrive progressively; input triggers are not established.'
64
+ devices:
65
+ - reveal
66
+ - pan
67
+ - stagger
68
+ notes: >-
69
+ The Refero recording changes between product cards, app interfaces, transcription examples,
70
+ patient-practice workflow, proof, and privacy modules in staged groups. Interface panels remain calm while
71
+ supporting details arrive progressively; input triggers are not established.
42
72
  ported_from: null
43
73
  ---
44
74