@yojahny/wp-design-library 0.3.0 → 0.5.1

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 (186) hide show
  1. package/.env.example +7 -0
  2. package/README.md +52 -9
  3. package/bin/library.mjs +11 -0
  4. package/entries/ada/entry.md +55 -0
  5. package/entries/ada/strip.webp +0 -0
  6. package/entries/air/captures/2/measure.json +325 -0
  7. package/entries/air/captures/2/strip.webp +0 -0
  8. package/entries/air/entry.md +62 -0
  9. package/entries/air/strip.webp +0 -0
  10. package/entries/ais-community-dark-depth/strip.webp +0 -0
  11. package/entries/apple-home/captures/2/measure.json +91 -0
  12. package/entries/apple-home/captures/2/strip.webp +0 -0
  13. package/entries/apple-home/entry.md +64 -0
  14. package/entries/apple-home/strip.webp +0 -0
  15. package/entries/apple-macbook-neo/captures/2/measure.json +570 -0
  16. package/entries/apple-macbook-neo/captures/2/strip.webp +0 -0
  17. package/entries/apple-macbook-neo/entry.md +62 -0
  18. package/entries/apple-macbook-neo/strip.webp +0 -0
  19. package/entries/apple-watch-ultra-4/entry.md +63 -0
  20. package/entries/apple-watch-ultra-4/measure.json +481 -0
  21. package/entries/apple-watch-ultra-4/strip.webp +0 -0
  22. package/entries/bpco/captures/2/strip.webp +0 -0
  23. package/entries/bpco/captures/3/strip.webp +0 -0
  24. package/entries/bpco/entry.md +81 -0
  25. package/entries/bpco/strip.webp +0 -0
  26. package/entries/column/captures/2/measure.json +996 -0
  27. package/entries/column/captures/2/strip.webp +0 -0
  28. package/entries/column/entry.md +82 -0
  29. package/entries/column/strip.webp +0 -0
  30. package/entries/cthdrl/captures/2/measure.json +251 -0
  31. package/entries/cthdrl/captures/2/strip.webp +0 -0
  32. package/entries/cthdrl/entry.md +86 -0
  33. package/entries/cthdrl/strip.webp +0 -0
  34. package/entries/dala-craftedbygc/entry.md +69 -0
  35. package/entries/dala-craftedbygc/strip.webp +0 -0
  36. package/entries/dock/captures/2/measure.json +206 -0
  37. package/entries/dock/captures/2/strip.webp +0 -0
  38. package/entries/dock/entry.md +62 -0
  39. package/entries/dock/strip.webp +0 -0
  40. package/entries/dub/captures/2/measure.json +37 -0
  41. package/entries/dub/captures/2/strip.webp +0 -0
  42. package/entries/dub/entry.md +61 -0
  43. package/entries/dub/strip.webp +0 -0
  44. package/entries/duolingo/captures/2/measure.json +138 -0
  45. package/entries/duolingo/captures/2/strip.webp +0 -0
  46. package/entries/duolingo/entry.md +65 -0
  47. package/entries/duolingo/strip.webp +0 -0
  48. package/entries/elevenlabs/captures/2/measure.json +160 -0
  49. package/entries/elevenlabs/captures/2/strip.webp +0 -0
  50. package/entries/elevenlabs/entry.md +62 -0
  51. package/entries/elevenlabs/strip.webp +0 -0
  52. package/entries/flying-papers/captures/2/measure.json +291 -0
  53. package/entries/flying-papers/captures/2/strip.webp +0 -0
  54. package/entries/flying-papers/entry.md +61 -0
  55. package/entries/flying-papers/strip.webp +0 -0
  56. package/entries/gsap/captures/2/measure.json +120 -0
  57. package/entries/gsap/captures/2/strip.webp +0 -0
  58. package/entries/gsap/entry.md +62 -0
  59. package/entries/gsap/strip.webp +0 -0
  60. package/entries/letters/captures/2/measure.json +20 -0
  61. package/entries/letters/captures/2/strip.webp +0 -0
  62. package/entries/letters/entry.md +62 -0
  63. package/entries/letters/strip.webp +0 -0
  64. package/entries/micro/captures/2/measure.json +852 -0
  65. package/entries/micro/captures/2/strip.webp +0 -0
  66. package/entries/micro/entry.md +61 -0
  67. package/entries/micro/strip.webp +0 -0
  68. package/entries/monopo-saigon/captures/2/measure.json +145 -0
  69. package/entries/monopo-saigon/captures/2/strip.webp +0 -0
  70. package/entries/monopo-saigon/entry.md +64 -0
  71. package/entries/monopo-saigon/strip.webp +0 -0
  72. package/entries/notion/captures/2/measure.json +338 -0
  73. package/entries/notion/captures/2/strip.webp +0 -0
  74. package/entries/notion/entry.md +66 -0
  75. package/entries/notion/strip.webp +0 -0
  76. package/entries/origin-financial/captures/2/measure.json +169 -0
  77. package/entries/origin-financial/captures/2/strip.webp +0 -0
  78. package/entries/origin-financial/entry.md +65 -0
  79. package/entries/origin-financial/strip.webp +0 -0
  80. package/entries/oryzo-ai/captures/2/measure.json +39 -0
  81. package/entries/oryzo-ai/captures/2/strip.webp +0 -0
  82. package/entries/oryzo-ai/entry.md +76 -0
  83. package/entries/oryzo-ai/strip.webp +0 -0
  84. package/entries/silencio/captures/2/strip.webp +0 -0
  85. package/entries/silencio/entry.md +114 -0
  86. package/entries/silencio/motion/product-story/frame-0.webp +0 -0
  87. package/entries/silencio/motion/product-story/frame-1.webp +0 -0
  88. package/entries/silencio/motion/product-story/frame-2.webp +0 -0
  89. package/entries/silencio/motion/product-story/frame-3.webp +0 -0
  90. package/entries/silencio/motion/product-story/frame-4.webp +0 -0
  91. package/entries/silencio/motion/product-story/frame-5.webp +0 -0
  92. package/entries/silencio/motion/product-story/frame-6.webp +0 -0
  93. package/entries/silencio/motion/product-story/frame-7.webp +0 -0
  94. package/entries/silencio/strip.webp +0 -0
  95. package/entries/steep/captures/2/measure.json +20 -0
  96. package/entries/steep/captures/2/strip.webp +0 -0
  97. package/entries/steep/entry.md +63 -0
  98. package/entries/steep/strip.webp +0 -0
  99. package/entries/stripe/captures/2/measure.json +892 -0
  100. package/entries/stripe/captures/2/strip.webp +0 -0
  101. package/entries/stripe/entry.md +61 -0
  102. package/entries/stripe/strip.webp +0 -0
  103. package/entries/superpower/captures/2/measure.json +179 -0
  104. package/entries/superpower/captures/2/strip.webp +0 -0
  105. package/entries/superpower/entry.md +64 -0
  106. package/entries/superpower/strip.webp +0 -0
  107. package/entries/superr/entry.md +54 -0
  108. package/entries/superr/strip.webp +0 -0
  109. package/entries/svz-weare/captures/2/measure.json +129 -0
  110. package/entries/svz-weare/captures/2/strip.webp +0 -0
  111. package/entries/svz-weare/entry.md +147 -0
  112. package/entries/svz-weare/motion/hero-transition/frame-0.webp +0 -0
  113. package/entries/svz-weare/motion/hero-transition/frame-1.webp +0 -0
  114. package/entries/svz-weare/motion/hero-transition/frame-2.webp +0 -0
  115. package/entries/svz-weare/motion/hero-transition/frame-3.webp +0 -0
  116. package/entries/svz-weare/motion/hero-transition/frame-4.webp +0 -0
  117. package/entries/svz-weare/motion/hero-transition/frame-5.webp +0 -0
  118. package/entries/svz-weare/motion/hero-transition/frame-6.webp +0 -0
  119. package/entries/svz-weare/motion/hero-transition/frame-7.webp +0 -0
  120. package/entries/svz-weare/strip.webp +0 -0
  121. package/entries/thoughtlab/captures/2/measure.json +93 -0
  122. package/entries/thoughtlab/captures/2/strip.webp +0 -0
  123. package/entries/thoughtlab/entry.md +62 -0
  124. package/entries/thoughtlab/strip.webp +0 -0
  125. package/entries/ventriloc/entry.md +54 -0
  126. package/entries/ventriloc/strip.webp +0 -0
  127. package/entries/vivid-and-co/entry.md +58 -0
  128. package/entries/vivid-and-co/strip.webp +0 -0
  129. package/package.json +24 -5
  130. package/src/cli/add.mjs +100 -24
  131. package/src/cli/motion.mjs +168 -0
  132. package/src/cli/refresh.mjs +6 -0
  133. package/src/cli/ui.mjs +2 -1
  134. package/src/entry.mjs +14 -1
  135. package/src/index/build.mjs +9 -3
  136. package/src/index/embed.mjs +1 -1
  137. package/src/ingest/agreement.mjs +33 -0
  138. package/src/ingest/attach.mjs +67 -0
  139. package/src/ingest/draft.mjs +5 -2
  140. package/src/ingest/frames.mjs +20 -6
  141. package/src/ingest/measure.mjs +34 -1
  142. package/src/ingest/observed.mjs +29 -0
  143. package/src/mcp/http.mjs +1 -1
  144. package/src/mcp/instructions.mjs +2 -1
  145. package/src/mcp/prompts.mjs +12 -1
  146. package/src/mcp/resources.mjs +14 -0
  147. package/src/mcp/tools.mjs +48 -5
  148. package/src/motion.mjs +94 -0
  149. package/src/ui/build.mjs +83 -7
  150. package/src/ui/serve.mjs +29 -4
  151. package/src/ui/templates/entry.html +9 -1
  152. package/entries/ais-community-dark-depth/strip.png +0 -0
  153. package/tests/README.md +0 -33
  154. package/tests/checks/cli-check.sh +0 -13
  155. package/tests/checks/docker.sh +0 -10
  156. package/tests/checks/entry-detail.sh +0 -52
  157. package/tests/checks/entry.sh +0 -55
  158. package/tests/checks/export.sh +0 -16
  159. package/tests/checks/fetch-on-start.sh +0 -26
  160. package/tests/checks/frames-dense.sh +0 -27
  161. package/tests/checks/http.sh +0 -22
  162. package/tests/checks/hygiene.sh +0 -29
  163. package/tests/checks/inbox.sh +0 -27
  164. package/tests/checks/index-degrade.sh +0 -32
  165. package/tests/checks/index.sh +0 -36
  166. package/tests/checks/ingest-mp4.sh +0 -47
  167. package/tests/checks/ingest.sh +0 -39
  168. package/tests/checks/instructions.sh +0 -31
  169. package/tests/checks/licence-gate.sh +0 -24
  170. package/tests/checks/mcp-stdout.sh +0 -31
  171. package/tests/checks/measure.sh +0 -79
  172. package/tests/checks/minors.sh +0 -84
  173. package/tests/checks/optional-deps.sh +0 -55
  174. package/tests/checks/prompt-add-entry.sh +0 -28
  175. package/tests/checks/recommend.sh +0 -107
  176. package/tests/checks/resources.sh +0 -47
  177. package/tests/checks/rrf.sh +0 -120
  178. package/tests/checks/seed-sync.sh +0 -22
  179. package/tests/checks/similar.sh +0 -62
  180. package/tests/checks/ui-build.sh +0 -59
  181. package/tests/checks/vocab.sh +0 -30
  182. package/tests/fixtures/entry-ok/entry.md +0 -41
  183. package/tests/fixtures/entry-ok/strip.png +0 -0
  184. package/tests/fixtures/page/index.html +0 -47
  185. package/tests/fixtures/three-frame.webp +0 -0
  186. package/tests/run.sh +0 -16
@@ -0,0 +1,61 @@
1
+ ---
2
+ slug: stripe
3
+ title: 'Stripe: payments infrastructure landing'
4
+ tier: inspiration
5
+ source:
6
+ kind: public-site
7
+ url: https://stripe.com/
8
+ license: Captured from a Refero-hosted recording and the live site; description only, no redistribution of the source.
9
+ captured:
10
+ method: both
11
+ at: '2026-09-16'
12
+ tool: wp-design-library@0.4.0
13
+ captures:
14
+ - method: frames
15
+ input: /tmp/stripe-refero.mp4
16
+ artifacts:
17
+ - strip.webp
18
+ frames: 36
19
+ duration_ms: 42950
20
+ - method: both
21
+ input: https://stripe.com/
22
+ artifacts:
23
+ - captures/2/strip.webp
24
+ - captures/2/measure.json
25
+ - captures/2/screen-1440.png
26
+ - captures/2/screen-390.png
27
+ media:
28
+ frames: 36
29
+ duration_ms: 42950
30
+ roles: [hero, proof, feature]
31
+ feel: [light, premium, saas, depth]
32
+ palette:
33
+ canvas: '#ffffff'
34
+ ink: '#000000'
35
+ accent: '#50617a'
36
+ type:
37
+ display: sohne-var, "SF Pro Display", sans-serif
38
+ body: sohne-var, "SF Pro Display", sans-serif
39
+ motion:
40
+ devices: [reveal, pan]
41
+ notes: Eyeballed from 36 sampled frames, not measured. A multicolor ribbon frames the Spanish-language hero while the page progresses into flexible-solution copy and product cards; no individual interaction triggers are visible.
42
+ ported_from: null
43
+ ---
44
+
45
+ ## What it does
46
+
47
+ Stripe presents payments and financial infrastructure for businesses in a Spanish-language regional view.
48
+
49
+ ## Section roster
50
+
51
+ 1. Hero with infrastructure statement, actions, and brand proof.
52
+ 2. Flexible-solutions introduction.
53
+ 3. Payments and billing product cards.
54
+
55
+ ## Why it works
56
+
57
+ The ribbon creates a bright focal edge without covering the business proposition, while the white field keeps a large amount of information readable. The expressive color is concentrated so heavily in the hero that lower sections feel more utilitarian.
58
+
59
+ ## Sources
60
+
61
+ The Refero MP4 supplies the sampled motion sequence. The live capture at https://stripe.com/ supplies the current site URL and layout reference.
Binary file
@@ -0,0 +1,179 @@
1
+ {
2
+ "url": "https://superpower.com/",
3
+ "at": "2026-09-16",
4
+ "viewport": [
5
+ 1440,
6
+ 390
7
+ ],
8
+ "tokens": {
9
+ "canvas": "#ffffff",
10
+ "ink": "#18181b",
11
+ "accent": "#000000",
12
+ "fontDisplay": "\"Nb international pro webfont\", Arial, sans-serif",
13
+ "fontBody": "\"Nb international pro webfont\", Arial, sans-serif"
14
+ },
15
+ "sections": [
16
+ {
17
+ "index": 0,
18
+ "tag": "section",
19
+ "id": "",
20
+ "class": "section-sp2_intro is-home",
21
+ "top": 930,
22
+ "height": 163,
23
+ "animations": []
24
+ },
25
+ {
26
+ "index": 1,
27
+ "tag": "section",
28
+ "id": "",
29
+ "class": "section_sp2-check",
30
+ "top": 1093,
31
+ "height": 769,
32
+ "animations": []
33
+ },
34
+ {
35
+ "index": 2,
36
+ "tag": "section",
37
+ "id": "",
38
+ "class": "howitworks",
39
+ "top": 1862,
40
+ "height": 7200,
41
+ "animations": [
42
+ {
43
+ "target": "div.howitworks__bg is-prev",
44
+ "timeline": "document",
45
+ "range": null,
46
+ "duration": 800
47
+ },
48
+ {
49
+ "target": "div.howitworks__bg is-active",
50
+ "timeline": "document",
51
+ "range": null,
52
+ "duration": 800
53
+ },
54
+ {
55
+ "target": "div.howitworks__content",
56
+ "timeline": "document",
57
+ "range": null,
58
+ "duration": 200
59
+ },
60
+ {
61
+ "target": "div.howitworks__content",
62
+ "timeline": "document",
63
+ "range": null,
64
+ "duration": 200
65
+ },
66
+ {
67
+ "target": "div.howitworks__content",
68
+ "timeline": "document",
69
+ "range": null,
70
+ "duration": 200
71
+ },
72
+ {
73
+ "target": "div.howitworks__content is-active",
74
+ "timeline": "document",
75
+ "range": null,
76
+ "duration": 900
77
+ },
78
+ {
79
+ "target": "div.howitworks__faq",
80
+ "timeline": "document",
81
+ "range": null,
82
+ "duration": 200
83
+ },
84
+ {
85
+ "target": "div.howitworks__faq",
86
+ "timeline": "document",
87
+ "range": null,
88
+ "duration": 200
89
+ },
90
+ {
91
+ "target": "div.howitworks__faq",
92
+ "timeline": "document",
93
+ "range": null,
94
+ "duration": 200
95
+ },
96
+ {
97
+ "target": "div.howitworks__faq is-active",
98
+ "timeline": "document",
99
+ "range": null,
100
+ "duration": 900
101
+ }
102
+ ]
103
+ },
104
+ {
105
+ "index": 3,
106
+ "tag": "section",
107
+ "id": "",
108
+ "class": "sp2-membership is-armed",
109
+ "top": 9062,
110
+ "height": 869,
111
+ "animations": []
112
+ },
113
+ {
114
+ "index": 4,
115
+ "tag": "section",
116
+ "id": "",
117
+ "class": "section_clinicians-1",
118
+ "top": 9930,
119
+ "height": 626,
120
+ "animations": []
121
+ },
122
+ {
123
+ "index": 5,
124
+ "tag": "section",
125
+ "id": "",
126
+ "class": "sp2-testimonials2",
127
+ "top": 10556,
128
+ "height": 1006,
129
+ "animations": [
130
+ {
131
+ "target": "div.sp2-testimonials2_bullet-fill",
132
+ "timeline": "document",
133
+ "range": null,
134
+ "duration": 8000
135
+ }
136
+ ]
137
+ },
138
+ {
139
+ "index": 6,
140
+ "tag": "section",
141
+ "id": "",
142
+ "class": "section_social-proof-1",
143
+ "top": 11562,
144
+ "height": 771,
145
+ "animations": []
146
+ },
147
+ {
148
+ "index": 7,
149
+ "tag": "section",
150
+ "id": "",
151
+ "class": "section_sp3-membership",
152
+ "top": 12333,
153
+ "height": 1353,
154
+ "animations": []
155
+ },
156
+ {
157
+ "index": 8,
158
+ "tag": "section",
159
+ "id": "",
160
+ "class": "section_sp2-cta",
161
+ "top": 13686,
162
+ "height": 750,
163
+ "animations": []
164
+ },
165
+ {
166
+ "index": 9,
167
+ "tag": "footer",
168
+ "id": "",
169
+ "class": "section_footer3",
170
+ "top": 14436,
171
+ "height": 794,
172
+ "animations": []
173
+ }
174
+ ],
175
+ "screenshots": {
176
+ "390": "screen-390.png",
177
+ "1440": "screen-1440.png"
178
+ }
179
+ }
@@ -0,0 +1,64 @@
1
+ ---
2
+ slug: superpower
3
+ title: 'Superpower: clinical health-membership landing'
4
+ tier: inspiration
5
+ source:
6
+ kind: public-site
7
+ url: https://superpower.com/
8
+ license: Captured from the supplied recording and live site; description only, no redistribution of the source.
9
+ captured:
10
+ method: both
11
+ at: '2026-09-16'
12
+ tool: wp-design-library@0.4.0
13
+ captures:
14
+ - method: frames
15
+ input: /home/yojahny/Desktop/inspiration/superpower.mp4
16
+ artifacts:
17
+ - strip.webp
18
+ frames: 36
19
+ duration_ms: 20880
20
+ - method: both
21
+ input: https://superpower.com/
22
+ artifacts:
23
+ - captures/2/strip.webp
24
+ - captures/2/measure.json
25
+ - captures/2/screen-1440.png
26
+ - captures/2/screen-390.png
27
+ media:
28
+ frames: 36
29
+ duration_ms: 20880
30
+ roles: [hero, explainer, capability, feature, proof, offer, faq, closing, footer]
31
+ feel: [light, premium, editorial, minimal, warm]
32
+ palette:
33
+ canvas: '#ffffff'
34
+ ink: '#18181b'
35
+ accent: '#df6714'
36
+ type:
37
+ display: '"Nb international pro webfont", Arial, sans-serif'
38
+ body: '"Nb international pro webfont", Arial, sans-serif'
39
+ motion:
40
+ devices: [reveal, wipe, pan, stagger]
41
+ notes: 'The supplied recording uses a strong edit between a warm portrait-led hero and a clean clinical explainer, then moves through tablet, phone, and lifestyle imagery with progressive overlays. The live capture records a long how-it-works sequence with brief content transitions and roughly 800–900ms background/active-state changes, plus an eight-second testimonial progress fill. The supplied video also shows a protocol-form overlay later in the journey; interaction triggers are not asserted from the captures.'
42
+ ported_from: null
43
+ ---
44
+
45
+ ## What it does
46
+
47
+ Superpower sells a preventive-health membership through an editorial opening image and a practical explanation of testing, results, protocols, and clinician support. It balances aspirational lifestyle photography with screenshots of a health dashboard and short, structured benefit statements.
48
+
49
+ ## Section roster
50
+
51
+ 1. Membership hero with a silhouetted portrait in an orange halo, concise eligibility note, and two actions.
52
+ 2. Credibility logos and a four-part “How it works” overview.
53
+ 3. Extended testing and biomarker explanation with device/dashboard imagery.
54
+ 4. Personalized-results and protocol chapters using phone, tablet, and lifestyle images.
55
+ 5. Membership, clinicians, testimonial, and social-proof sections.
56
+ 6. Offer, question/answer, and membership call-to-action sections above the footer.
57
+
58
+ ## Why it works
59
+
60
+ The page introduces a medical subject through a human silhouette and warm light before it shifts into proof. White space, plain sans-serif type, and orderly interface cards make the technical details feel accessible. The orange hero creates a memorable visual signature, while black and white controls keep conversion choices legible.
61
+
62
+ ## Sources
63
+
64
+ The supplied 20.88-second recording captures an alternate campaign hero (“Get better at being healthy, every year”), the testing explainer, dashboard/device views, and the later protocol-form overlay. The live capture at https://superpower.com/ provides the current “Your new health membership” hero, measured typography/tokens, current desktop and mobile layouts, a free-retest selector, and documented how-it-works/testimonial animation timing. The hero copy and conversion overlay differ between sources; the entry records both observed states.
Binary file
@@ -0,0 +1,54 @@
1
+ ---
2
+ slug: superr
3
+ title: 'Superr: AI learning notebook'
4
+ tier: inspiration
5
+ source:
6
+ kind: public-site
7
+ url: https://www.superr.ai/
8
+ license: Captured from a Refero-hosted recording and the live site; description only, no redistribution of the source.
9
+ captured:
10
+ method: frames
11
+ at: '2026-09-16'
12
+ tool: wp-design-library@0.4.0
13
+ captures:
14
+ - method: frames
15
+ input: /tmp/superr-refero.mp4
16
+ artifacts:
17
+ - strip.webp
18
+ frames: 36
19
+ duration_ms: 20217
20
+ media:
21
+ frames: 36
22
+ duration_ms: 20217
23
+ roles: [hero, explainer, feature]
24
+ feel: [light, playful, warm, premium]
25
+ palette:
26
+ canvas: '#fdfbf9'
27
+ ink: '#171717'
28
+ accent: '#ffffff'
29
+ type:
30
+ display: gelica, "gelica Fallback", Georgia, serif
31
+ body: gelica, "gelica Fallback", Georgia, serif
32
+ motion:
33
+ devices: [reveal, pan]
34
+ notes: Eyeballed from 36 sampled frames, not measured. A large notebook dominates the hero, then reveals handwritten labels, stickers, and an opened-book application scene. No scroll behavior or individual triggers are visible.
35
+ ported_from: null
36
+ ---
37
+
38
+ ## What it does
39
+
40
+ Superr introduces an AI notebook designed to make learning feel tactile and playful.
41
+
42
+ ## Section roster
43
+
44
+ 1. Hero with oversized physical notebook and pre-order action.
45
+ 2. Brief notebook explainer.
46
+ 3. Open-book product feature scene.
47
+
48
+ ## Why it works
49
+
50
+ The modeled notebook makes an abstract AI product instantly legible as an object for learning, and the warm paper palette supports that metaphor. The product is deliberately narrow, so the playful framing carries more weight than detailed feature explanation.
51
+
52
+ ## Sources
53
+
54
+ The Refero MP4 supplies the sampled motion sequence. https://www.superr.ai/ remains the source URL; its incomplete live render was not retained as a capture.
Binary file
@@ -0,0 +1,129 @@
1
+ {
2
+ "url": "https://www.svz.io/",
3
+ "at": "2026-09-16",
4
+ "viewport": [
5
+ 1440,
6
+ 390
7
+ ],
8
+ "tokens": {
9
+ "canvas": "#080808",
10
+ "ink": "#fcfcfc",
11
+ "accent": "#ffffff",
12
+ "fontDisplay": "\"Kmr Waldenburg\", Arial, sans-serif",
13
+ "fontBody": "\"Kmr Waldenburg\", Arial, sans-serif"
14
+ },
15
+ "sections": [
16
+ {
17
+ "index": 0,
18
+ "tag": "section",
19
+ "id": "",
20
+ "class": "banner1_component",
21
+ "top": 0,
22
+ "height": 0,
23
+ "animations": []
24
+ },
25
+ {
26
+ "index": 1,
27
+ "tag": "section",
28
+ "id": "",
29
+ "class": "section_introduction_hero",
30
+ "top": 0,
31
+ "height": 900,
32
+ "animations": []
33
+ },
34
+ {
35
+ "index": 2,
36
+ "tag": "section",
37
+ "id": "",
38
+ "class": "section_introduction is-mobile",
39
+ "top": 0,
40
+ "height": 0,
41
+ "animations": []
42
+ },
43
+ {
44
+ "index": 3,
45
+ "tag": "section",
46
+ "id": "",
47
+ "class": "section_agency-hub",
48
+ "top": 6376,
49
+ "height": 1934,
50
+ "animations": []
51
+ },
52
+ {
53
+ "index": 4,
54
+ "tag": "section",
55
+ "id": "",
56
+ "class": "agency-hub_logo-banner",
57
+ "top": 6515,
58
+ "height": 123,
59
+ "animations": []
60
+ },
61
+ {
62
+ "index": 5,
63
+ "tag": "section",
64
+ "id": "vc-section",
65
+ "class": "mwg_effect018",
66
+ "top": 8310,
67
+ "height": 5001,
68
+ "animations": []
69
+ },
70
+ {
71
+ "index": 6,
72
+ "tag": "header",
73
+ "id": "",
74
+ "class": "section_header109",
75
+ "top": 13311,
76
+ "height": 2700,
77
+ "animations": []
78
+ },
79
+ {
80
+ "index": 7,
81
+ "tag": "section",
82
+ "id": "",
83
+ "class": "section_call-out radius-large",
84
+ "top": 15979,
85
+ "height": 1203,
86
+ "animations": []
87
+ },
88
+ {
89
+ "index": 8,
90
+ "tag": "section",
91
+ "id": "faq-about",
92
+ "class": "section_faq-content is-home",
93
+ "top": 17166,
94
+ "height": 836,
95
+ "animations": []
96
+ },
97
+ {
98
+ "index": 9,
99
+ "tag": "section",
100
+ "id": "",
101
+ "class": "wall-of-fame-mobile",
102
+ "top": 0,
103
+ "height": 0,
104
+ "animations": []
105
+ },
106
+ {
107
+ "index": 10,
108
+ "tag": "footer",
109
+ "id": "",
110
+ "class": "footer_component",
111
+ "top": 18878,
112
+ "height": 1080,
113
+ "animations": []
114
+ },
115
+ {
116
+ "index": 11,
117
+ "tag": "section",
118
+ "id": "",
119
+ "class": "mwg_effect002",
120
+ "top": 18878,
121
+ "height": 1080,
122
+ "animations": []
123
+ }
124
+ ],
125
+ "screenshots": {
126
+ "390": "screen-390.png",
127
+ "1440": "screen-1440.png"
128
+ }
129
+ }
@@ -0,0 +1,147 @@
1
+ ---
2
+ slug: svz-weare
3
+ title: 'SVZ: dark, motion-led digital-studio landing'
4
+ tier: inspiration
5
+ source:
6
+ kind: public-site
7
+ url: https://www.svz.io/
8
+ license: Captured from the live site; description only, no redistribution of the source.
9
+ captured:
10
+ method: both
11
+ at: '2026-09-16'
12
+ tool: wp-design-library@0.4.0
13
+ captures:
14
+ - method: frames
15
+ input: /home/yojahny/Desktop/inspiration/weare.mp4
16
+ artifacts:
17
+ - strip.webp
18
+ frames: 36
19
+ duration_ms: 21900
20
+ - method: both
21
+ input: https://www.svz.io/
22
+ artifacts:
23
+ - captures/2/strip.webp
24
+ - captures/2/measure.json
25
+ - captures/2/screen-1440.png
26
+ - captures/2/screen-390.png
27
+ media:
28
+ frames: 36
29
+ duration_ms: 21900
30
+ roles:
31
+ - hero
32
+ - explainer
33
+ - capability
34
+ - feature
35
+ - proof
36
+ - faq
37
+ - closing
38
+ - footer
39
+ feel:
40
+ - dark
41
+ - premium
42
+ - editorial
43
+ - brutalist
44
+ - depth
45
+ - cold
46
+ palette:
47
+ canvas: '#080808'
48
+ ink: '#fcfcfc'
49
+ accent: '#ff4f68'
50
+ type:
51
+ display: '"Kmr Waldenburg", Arial, sans-serif'
52
+ body: '"Kmr Waldenburg", Arial, sans-serif'
53
+ motion:
54
+ devices:
55
+ - reveal
56
+ - pin
57
+ - pan
58
+ - wipe
59
+ - drift
60
+ - stagger
61
+ notes: >-
62
+ Eyeballed from 36 sampled recording frames plus a live pointer pass, not measured. The hero holds a large
63
+ field of charcoal geometric letterforms while the headline and a coral custom cursor move over it; the
64
+ cursor is a lagging circular follower, visibly trailing the actual pointer and blooming into a soft blur
65
+ during the hand-off into the grey "WE ARE" scene. It does not snap to the Discovery Call button in the
66
+ observed header pass, so this is not recorded as magnet behaviour. The hero's oversized shapes pan under
67
+ the copy, then a wipe/blur transition reveals the wordmark scene. Long manifesto copy stays in a fixed
68
+ reading position while individual red terms enter in sequence; later the service words and portfolio/card
69
+ areas repeat staggered reveals against the black ground. Exact easing and click outcomes were not
70
+ established.
71
+ clips:
72
+ - id: hero-transition
73
+ title: Hero and WE ARE transition
74
+ notes: >-
75
+ The coral pointer moves across the dark hero and becomes a soft glow during the grey WE ARE
76
+ transition. Scrolling then reveals manifesto copy with coral words and service labels. These are
77
+ observed recording changes; exact easing and trigger thresholds are not measured.
78
+ duration_ms: 15000
79
+ width: 1152
80
+ height: 720
81
+ fps: 30
82
+ bytes: 918019
83
+ sha256: 9e1fa5ba1c0e6a310070432afb13ad734bcad7801c38a0d13d456a06c5502a13
84
+ key: motion/svz-weare/hero-transition-9e1fa5ba1c0e6a31.mp4
85
+ poster: motion/hero-transition/frame-0.webp
86
+ frames:
87
+ - at_ms: 0
88
+ image: motion/hero-transition/frame-0.webp
89
+ - at_ms: 2128
90
+ image: motion/hero-transition/frame-1.webp
91
+ - at_ms: 4257
92
+ image: motion/hero-transition/frame-2.webp
93
+ - at_ms: 6385
94
+ image: motion/hero-transition/frame-3.webp
95
+ - at_ms: 8514
96
+ image: motion/hero-transition/frame-4.webp
97
+ - at_ms: 10642
98
+ image: motion/hero-transition/frame-5.webp
99
+ - at_ms: 12771
100
+ image: motion/hero-transition/frame-6.webp
101
+ - at_ms: 14900
102
+ image: motion/hero-transition/frame-7.webp
103
+ source:
104
+ capture: 1
105
+ filename: weare.mp4
106
+ start_ms: 0
107
+ url: https://media.yojahny.dev/motion/svz-weare/hero-transition-9e1fa5ba1c0e6a31.mp4
108
+ ported_from: null
109
+ ---
110
+
111
+ ## What it does
112
+
113
+ SVZ presents a digital studio as a sequence of editorial set pieces rather than
114
+ a conventional agency overview. A nearly black canvas, white type, charcoal
115
+ geometric forms and sparse coral-red emphasis establish the world; oversized
116
+ type, service words, project previews, client proof and a large closing statement
117
+ arrive as scenes within that system.
118
+
119
+ ## Section roster
120
+
121
+ hero ("Digital worlds for the brands of tomorrow" and geometric letterforms),
122
+ explainer (the blurred "WE ARE" wordmark and studio manifesto), capability
123
+ (strategy, brand, design, development, production and growth), feature (portfolio
124
+ and project-preview grid), proof (venture-backed client and investor stories),
125
+ faq (three red-accented question cards), closing ("Bridging the gap between
126
+ technology and artistry"), footer (studio navigation and links).
127
+
128
+ ## Why it works
129
+
130
+ The page makes the studio's motion craft its clearest proof: every shift preserves
131
+ the same limited visual language, so the bold transitions feel composed instead
132
+ of decorative. The slow, trailing coral cursor makes ordinary pointer movement
133
+ part of the art direction, while held text stages give dense copy time to land.
134
+ The editorial type and hard-edged grids prevent the atmospheric blur from becoming
135
+ soft or generic. Cost to weigh: the experience needs a full motion system and
136
+ careful cursor accessibility work; without both, its identity collapses into
137
+ static black-and-red styling.
138
+
139
+ ## Sources
140
+
141
+ - Recording capture (`weare.mp4`, 21.9 seconds, 36 sampled frames): the source
142
+ for the scroll hand-offs, pinned reading stages, and the coral trailing cursor
143
+ with its blurred bloom.
144
+ - Live capture (https://www.svz.io/): confirms the page roster and measured
145
+ canvas/ink/font tokens. Its computed accent token is white, while the recording
146
+ makes coral the useful declared visual accent because it carries the pointer
147
+ and emphasis words.
Binary file