@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: micro
3
+ title: 'Micro: all-in-one work platform'
4
+ tier: inspiration
5
+ source:
6
+ kind: public-site
7
+ url: https://www.micro.so/
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/micro-refero.mp4
16
+ artifacts:
17
+ - strip.webp
18
+ frames: 36
19
+ duration_ms: 19233
20
+ - method: both
21
+ input: https://www.micro.so/
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: 19233
30
+ roles: [hero, feature, capability]
31
+ feel: [light, premium, saas, depth]
32
+ palette:
33
+ canvas: '#f5f5f5'
34
+ ink: '#221f1c'
35
+ accent: '#797267'
36
+ type:
37
+ display: haffer, "haffer Fallback"
38
+ body: haffer, "haffer Fallback"
39
+ motion:
40
+ devices: [reveal, pan]
41
+ notes: Eyeballed from 36 sampled frames, not measured. The blue-sky hero holds while the work app is introduced along the lower edge, then the recording moves into a denser workspace view; individual input triggers are not visible.
42
+ ported_from: null
43
+ ---
44
+
45
+ ## What it does
46
+
47
+ Micro positions one workspace for email, social messages, CRM, projects, and AI.
48
+
49
+ ## Section roster
50
+
51
+ 1. Hero with navigation, product statement, and two calls to action.
52
+ 2. Large application preview over a horizon image.
53
+ 3. Expanded workspace capability view.
54
+
55
+ ## Why it works
56
+
57
+ The wide blue field and pastoral horizon give a conventional work product an optimistic, open feeling before the dense interface arrives. The visual atmosphere competes slightly with the small supporting copy.
58
+
59
+ ## Sources
60
+
61
+ The Refero MP4 supplies the sampled motion sequence. The live capture at https://www.micro.so/ supplies the current site URL and layout reference.
Binary file
@@ -0,0 +1,145 @@
1
+ {
2
+ "url": "https://monopo.vn/",
3
+ "at": "2026-09-17",
4
+ "viewport": [
5
+ 1440,
6
+ 390
7
+ ],
8
+ "tokens": {
9
+ "canvas": "",
10
+ "ink": "#ffffff",
11
+ "accent": "#000000",
12
+ "fontDisplay": "",
13
+ "fontBody": "system-ui, -apple-system, \"Segoe UI\", Roboto, Ubuntu, Cantarell, \"Noto Sans\", sans-serif, \"Segoe UI\", Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\""
14
+ },
15
+ "sections": [
16
+ {
17
+ "index": 0,
18
+ "tag": "header",
19
+ "id": "header",
20
+ "class": "",
21
+ "top": 0,
22
+ "height": 66,
23
+ "animations": []
24
+ },
25
+ {
26
+ "index": 1,
27
+ "tag": "div",
28
+ "id": "home",
29
+ "class": "",
30
+ "top": 0,
31
+ "height": 16267,
32
+ "animations": [
33
+ {
34
+ "target": "div.scroll-logo rotating",
35
+ "timeline": "document",
36
+ "range": null,
37
+ "duration": 10000
38
+ }
39
+ ]
40
+ },
41
+ {
42
+ "index": 2,
43
+ "tag": "section",
44
+ "id": "works",
45
+ "class": "",
46
+ "top": 946,
47
+ "height": 3052,
48
+ "animations": []
49
+ },
50
+ {
51
+ "index": 3,
52
+ "tag": "section",
53
+ "id": "manifesto",
54
+ "class": "",
55
+ "top": 4610,
56
+ "height": 1403,
57
+ "animations": []
58
+ },
59
+ {
60
+ "index": 4,
61
+ "tag": "section",
62
+ "id": "strengths",
63
+ "class": "",
64
+ "top": 6114,
65
+ "height": 1398,
66
+ "animations": []
67
+ },
68
+ {
69
+ "index": 5,
70
+ "tag": "section",
71
+ "id": "",
72
+ "class": "",
73
+ "top": 6150,
74
+ "height": 351,
75
+ "animations": []
76
+ },
77
+ {
78
+ "index": 6,
79
+ "tag": "section",
80
+ "id": "",
81
+ "class": "",
82
+ "top": 6653,
83
+ "height": 356,
84
+ "animations": []
85
+ },
86
+ {
87
+ "index": 7,
88
+ "tag": "section",
89
+ "id": "",
90
+ "class": "",
91
+ "top": 7161,
92
+ "height": 351,
93
+ "animations": []
94
+ },
95
+ {
96
+ "index": 8,
97
+ "tag": "section",
98
+ "id": "",
99
+ "class": "text-cta",
100
+ "top": 8905,
101
+ "height": 553,
102
+ "animations": []
103
+ },
104
+ {
105
+ "index": 9,
106
+ "tag": "section",
107
+ "id": "tilesGrid",
108
+ "class": "tiles tiles--rotated",
109
+ "top": 9493,
110
+ "height": 790,
111
+ "animations": []
112
+ },
113
+ {
114
+ "index": 10,
115
+ "tag": "section",
116
+ "id": "team",
117
+ "class": "",
118
+ "top": 10380,
119
+ "height": 4859,
120
+ "animations": []
121
+ },
122
+ {
123
+ "index": 11,
124
+ "tag": "footer",
125
+ "id": "contact",
126
+ "class": "",
127
+ "top": 15389,
128
+ "height": 878,
129
+ "animations": []
130
+ },
131
+ {
132
+ "index": 12,
133
+ "tag": "section",
134
+ "id": "",
135
+ "class": "container no-margin lg",
136
+ "top": 15464,
137
+ "height": 677,
138
+ "animations": []
139
+ }
140
+ ],
141
+ "screenshots": {
142
+ "390": "screen-390.png",
143
+ "1440": "screen-1440.png"
144
+ }
145
+ }
@@ -0,0 +1,64 @@
1
+ ---
2
+ slug: monopo-saigon
3
+ title: 'monopo saigon: creative agency landing'
4
+ tier: inspiration
5
+ source:
6
+ kind: public-site
7
+ url: https://monopo.vn/
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-17'
12
+ tool: wp-design-library@0.4.0
13
+ captures:
14
+ - method: frames
15
+ input: /tmp/monopo-saigon-refero.mp4
16
+ artifacts:
17
+ - strip.webp
18
+ frames: 36
19
+ duration_ms: 17100
20
+ - method: both
21
+ input: https://monopo.vn/
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: 17100
30
+ roles: [hero, process, capability, feature, closing]
31
+ feel: [dark, premium, editorial, depth, cold]
32
+ palette:
33
+ canvas: '#11130f'
34
+ ink: '#ffffff'
35
+ accent: '#000000'
36
+ type:
37
+ display: Editorial geometric sans with generous tracking
38
+ body: >-
39
+ system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Segoe UI", Helvetica,
40
+ Arial, "Apple Color Emoji", "Segoe UI Emoji"
41
+ motion:
42
+ devices: [reveal, pan, drift, parallax]
43
+ notes: Eyeballed from 36 sampled frames, not measured. A soft organic field moves behind the centered “United, Unbound” statement, then the recording hands off to dark project and studio views with slow layered drift. Individual triggers are not visible.
44
+ ported_from: null
45
+ ---
46
+
47
+ ## What it does
48
+
49
+ monopo saigon presents a creative agency through an atmospheric studio statement and a sequence of visual project worlds.
50
+
51
+ ## Section roster
52
+
53
+ 1. Atmospheric hero with the agency statement.
54
+ 2. Studio and project navigation.
55
+ 3. Selected work and capability scenes.
56
+ 4. Contact-led close.
57
+
58
+ ## Why it works
59
+
60
+ The blurred organic field gives the agency a distinct visual signature before the work appears, and the restrained type keeps the mood legible. The slow pacing favors atmosphere over rapid portfolio scanning.
61
+
62
+ ## Sources
63
+
64
+ The Refero MP4 supplies the sampled motion sequence. The live capture at https://monopo.vn/ supplies the current site URL and layout reference.
Binary file
@@ -0,0 +1,338 @@
1
+ {
2
+ "url": "https://notion.so/",
3
+ "at": "2026-09-16",
4
+ "viewport": [
5
+ 1440,
6
+ 390
7
+ ],
8
+ "tokens": {
9
+ "canvas": "#ffffff",
10
+ "ink": "#000000",
11
+ "accent": "#0075de",
12
+ "fontDisplay": "NotionInter, Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, \"Apple Color Emoji\", Arial, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\"",
13
+ "fontBody": "NotionInter, Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, \"Apple Color Emoji\", Arial, sans-serif, \"Segoe UI Emoji\", \"Segoe UI Symbol\""
14
+ },
15
+ "sections": [
16
+ {
17
+ "index": 0,
18
+ "tag": "div",
19
+ "id": "",
20
+ "class": "homepageHeroTeamsAndAgents-module-scss-module__KlQGRG__heroContainer",
21
+ "top": 64,
22
+ "height": 1433,
23
+ "animations": [
24
+ {
25
+ "target": "div.Agent-module-scss-module__7kINlq__agentMarkEnterWrapper Agent-module-scss-module__7kINlq__agentMarkMobile",
26
+ "timeline": "document",
27
+ "range": null,
28
+ "duration": 600
29
+ },
30
+ {
31
+ "target": "svg.[object SVGAnimatedString]",
32
+ "timeline": "view",
33
+ "range": "exit 0% exit 100%",
34
+ "duration": 1000
35
+ },
36
+ {
37
+ "target": "div.Agent-module-scss-module__7kINlq__agentTaskEnterWrapper",
38
+ "timeline": "document",
39
+ "range": null,
40
+ "duration": 600
41
+ },
42
+ {
43
+ "target": "div.Agent-module-scss-module__7kINlq__agentTask",
44
+ "timeline": "view",
45
+ "range": "exit 0% exit 100%",
46
+ "duration": 1000
47
+ },
48
+ {
49
+ "target": "div.Agent-module-scss-module__7kINlq__agentGraphicEnterWrapper",
50
+ "timeline": "document",
51
+ "range": null,
52
+ "duration": 600
53
+ },
54
+ {
55
+ "target": "span.graphic-module-scss-module__pohIQa__graphic Agent-module-scss-module__7kINlq__agentGraphic graphic-module-scss-module__pohIQa__isFilled",
56
+ "timeline": "view",
57
+ "range": "exit 0% exit 100%",
58
+ "duration": 1000
59
+ },
60
+ {
61
+ "target": "div.Agent-module-scss-module__7kINlq__agentTaskEnterWrapper",
62
+ "timeline": "document",
63
+ "range": null,
64
+ "duration": 600
65
+ },
66
+ {
67
+ "target": "div.Agent-module-scss-module__7kINlq__agentTask",
68
+ "timeline": "view",
69
+ "range": "exit 0% exit 100%",
70
+ "duration": 1000
71
+ },
72
+ {
73
+ "target": "div.Agent-module-scss-module__7kINlq__agentTask",
74
+ "timeline": "view",
75
+ "range": "exit 0% exit 100%",
76
+ "duration": 1000
77
+ },
78
+ {
79
+ "target": "div.Agent-module-scss-module__7kINlq__agentGraphicEnterWrapper",
80
+ "timeline": "document",
81
+ "range": null,
82
+ "duration": 600
83
+ },
84
+ {
85
+ "target": "span.graphic-module-scss-module__pohIQa__graphic Agent-module-scss-module__7kINlq__agentGraphic graphic-module-scss-module__pohIQa__isFilled",
86
+ "timeline": "view",
87
+ "range": "exit 0% exit 100%",
88
+ "duration": 1000
89
+ },
90
+ {
91
+ "target": "div.Agent-module-scss-module__7kINlq__agentMarkEnterWrapper Agent-module-scss-module__7kINlq__agentMarkMobile",
92
+ "timeline": "document",
93
+ "range": null,
94
+ "duration": 600
95
+ },
96
+ {
97
+ "target": "svg.[object SVGAnimatedString]",
98
+ "timeline": "view",
99
+ "range": "exit 0% exit 100%",
100
+ "duration": 1000
101
+ },
102
+ {
103
+ "target": "div.Agent-module-scss-module__7kINlq__agentTaskEnterWrapper",
104
+ "timeline": "document",
105
+ "range": null,
106
+ "duration": 600
107
+ },
108
+ {
109
+ "target": "div.Agent-module-scss-module__7kINlq__agentTask",
110
+ "timeline": "view",
111
+ "range": "exit 0% exit 100%",
112
+ "duration": 1000
113
+ },
114
+ {
115
+ "target": "div.Agent-module-scss-module__7kINlq__agentGraphicEnterWrapper",
116
+ "timeline": "document",
117
+ "range": null,
118
+ "duration": 600
119
+ },
120
+ {
121
+ "target": "span.graphic-module-scss-module__pohIQa__graphic Agent-module-scss-module__7kINlq__agentGraphic graphic-module-scss-module__pohIQa__isFilled",
122
+ "timeline": "view",
123
+ "range": "exit 0% exit 100%",
124
+ "duration": 1000
125
+ },
126
+ {
127
+ "target": "div.Agent-module-scss-module__7kINlq__agentMarkEnterWrapper Agent-module-scss-module__7kINlq__agentMarkMobile",
128
+ "timeline": "document",
129
+ "range": null,
130
+ "duration": 600
131
+ },
132
+ {
133
+ "target": "svg.[object SVGAnimatedString]",
134
+ "timeline": "view",
135
+ "range": "exit 0% exit 100%",
136
+ "duration": 1000
137
+ },
138
+ {
139
+ "target": "div.Agent-module-scss-module__7kINlq__agentTaskEnterWrapper",
140
+ "timeline": "document",
141
+ "range": null,
142
+ "duration": 600
143
+ },
144
+ {
145
+ "target": "div.Agent-module-scss-module__7kINlq__agentTask",
146
+ "timeline": "view",
147
+ "range": "exit 0% exit 100%",
148
+ "duration": 1000
149
+ },
150
+ {
151
+ "target": "div.Agent-module-scss-module__7kINlq__agentGraphicEnterWrapper",
152
+ "timeline": "document",
153
+ "range": null,
154
+ "duration": 600
155
+ },
156
+ {
157
+ "target": "span.graphic-module-scss-module__pohIQa__graphic Agent-module-scss-module__7kINlq__agentGraphic graphic-module-scss-module__pohIQa__isFilled",
158
+ "timeline": "view",
159
+ "range": "exit 0% exit 100%",
160
+ "duration": 1000
161
+ },
162
+ {
163
+ "target": "div.Agent-module-scss-module__7kINlq__agentMarkEnterWrapper Agent-module-scss-module__7kINlq__agentMarkDesktop",
164
+ "timeline": "document",
165
+ "range": null,
166
+ "duration": 600
167
+ },
168
+ {
169
+ "target": "svg.[object SVGAnimatedString]",
170
+ "timeline": "view",
171
+ "range": "exit 0% exit 100%",
172
+ "duration": 1000
173
+ },
174
+ {
175
+ "target": "div.Agent-module-scss-module__7kINlq__agentTaskEnterWrapper",
176
+ "timeline": "document",
177
+ "range": null,
178
+ "duration": 600
179
+ },
180
+ {
181
+ "target": "div.Agent-module-scss-module__7kINlq__agentTask",
182
+ "timeline": "view",
183
+ "range": "exit 0% exit 100%",
184
+ "duration": 1000
185
+ },
186
+ {
187
+ "target": "div.Agent-module-scss-module__7kINlq__agentTask",
188
+ "timeline": "view",
189
+ "range": "exit 0% exit 100%",
190
+ "duration": 1000
191
+ },
192
+ {
193
+ "target": "div.Agent-module-scss-module__7kINlq__agentGraphicEnterWrapper",
194
+ "timeline": "document",
195
+ "range": null,
196
+ "duration": 600
197
+ },
198
+ {
199
+ "target": "span.graphic-module-scss-module__pohIQa__graphic Agent-module-scss-module__7kINlq__agentGraphic graphic-module-scss-module__pohIQa__isFilled",
200
+ "timeline": "view",
201
+ "range": "exit 0% exit 100%",
202
+ "duration": 1000
203
+ },
204
+ {
205
+ "target": "div.Agent-module-scss-module__7kINlq__agentTaskEnterWrapper",
206
+ "timeline": "document",
207
+ "range": null,
208
+ "duration": 600
209
+ },
210
+ {
211
+ "target": "div.Agent-module-scss-module__7kINlq__agentTask",
212
+ "timeline": "view",
213
+ "range": "exit 0% exit 100%",
214
+ "duration": 1000
215
+ },
216
+ {
217
+ "target": "div.Agent-module-scss-module__7kINlq__agentGraphicEnterWrapper",
218
+ "timeline": "document",
219
+ "range": null,
220
+ "duration": 600
221
+ },
222
+ {
223
+ "target": "span.graphic-module-scss-module__pohIQa__graphic Agent-module-scss-module__7kINlq__agentGraphic graphic-module-scss-module__pohIQa__isFilled",
224
+ "timeline": "view",
225
+ "range": "exit 0% exit 100%",
226
+ "duration": 1000
227
+ },
228
+ {
229
+ "target": "div.homepageLogoWall-module-scss-module__PDRQGa__logoWallMarqueeWrapper",
230
+ "timeline": "view",
231
+ "range": "entry 0px entry 44px",
232
+ "duration": null
233
+ }
234
+ ]
235
+ },
236
+ {
237
+ "index": 1,
238
+ "tag": "header",
239
+ "id": "",
240
+ "class": "homepageHeroTeamsAndAgents-module-scss-module__KlQGRG__contentHeader",
241
+ "top": 248,
242
+ "height": 308,
243
+ "animations": []
244
+ },
245
+ {
246
+ "index": 2,
247
+ "tag": "div",
248
+ "id": "",
249
+ "class": "homepage-module-scss-module__-Qs3Ha__main homepage-module-scss-module__-Qs3Ha__mainLoose",
250
+ "top": 1497,
251
+ "height": 1448,
252
+ "animations": []
253
+ },
254
+ {
255
+ "index": 3,
256
+ "tag": "header",
257
+ "id": "",
258
+ "class": "bento-module-scss-module__xvimDq__bentoHeader bentos-module-scss-module__KqyldW__bentoHeader",
259
+ "top": 1681,
260
+ "height": 108,
261
+ "animations": []
262
+ },
263
+ {
264
+ "index": 4,
265
+ "tag": "header",
266
+ "id": "",
267
+ "class": "bento-module-scss-module__xvimDq__bentoHeader bentos-module-scss-module__KqyldW__bentoHeader",
268
+ "top": 1681,
269
+ "height": 108,
270
+ "animations": []
271
+ },
272
+ {
273
+ "index": 5,
274
+ "tag": "header",
275
+ "id": "",
276
+ "class": "bento-module-scss-module__xvimDq__bentoHeader bentos-module-scss-module__KqyldW__bentoHeader",
277
+ "top": 2265,
278
+ "height": 364,
279
+ "animations": []
280
+ },
281
+ {
282
+ "index": 6,
283
+ "tag": "section",
284
+ "id": "_R_1n5abm_",
285
+ "class": "",
286
+ "top": 2661,
287
+ "height": 188,
288
+ "animations": []
289
+ },
290
+ {
291
+ "index": 7,
292
+ "tag": "div",
293
+ "id": "",
294
+ "class": "homepage-module-scss-module__-Qs3Ha__main homepage-module-scss-module__-Qs3Ha__mainLoose",
295
+ "top": 2945,
296
+ "height": 772,
297
+ "animations": []
298
+ },
299
+ {
300
+ "index": 8,
301
+ "tag": "section",
302
+ "id": "",
303
+ "class": "",
304
+ "top": 3041,
305
+ "height": 580,
306
+ "animations": []
307
+ },
308
+ {
309
+ "index": 9,
310
+ "tag": "section",
311
+ "id": "_R_bm_",
312
+ "class": "",
313
+ "top": 3729,
314
+ "height": 486,
315
+ "animations": [
316
+ {
317
+ "target": "div.Marquee-module-scss-module__X75v-G__marquee",
318
+ "timeline": "document",
319
+ "range": null,
320
+ "duration": 60000
321
+ }
322
+ ]
323
+ },
324
+ {
325
+ "index": 10,
326
+ "tag": "footer",
327
+ "id": "site-footer",
328
+ "class": "surface surfaceBase surface-module-scss-module__CFFfpW__surfaceBase footer-module-scss-module__U-iC1W__footer footer-module-scss-module__cwVo7a__footer footer-module-scss-module__cwVo7a__hideSeparator",
329
+ "top": 4215,
330
+ "height": 407,
331
+ "animations": []
332
+ }
333
+ ],
334
+ "screenshots": {
335
+ "390": "screen-390.png",
336
+ "1440": "screen-1440.png"
337
+ }
338
+ }
@@ -0,0 +1,66 @@
1
+ ---
2
+ slug: notion
3
+ title: 'Notion: connected-workspace landing'
4
+ tier: inspiration
5
+ source:
6
+ kind: public-site
7
+ url: https://notion.so/
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/notion-refero.mp4
16
+ artifacts:
17
+ - strip.webp
18
+ frames: 36
19
+ duration_ms: 23500
20
+ - method: both
21
+ input: https://notion.so/
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: 23500
30
+ roles: [hero, explainer, capability, feature, proof, offer, closing, footer]
31
+ feel: [light, premium, minimal, saas, cold]
32
+ palette:
33
+ canvas: '#ffffff'
34
+ ink: '#000000'
35
+ accent: '#0075de'
36
+ type:
37
+ display: >-
38
+ NotionInter, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial,
39
+ sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"
40
+ body: >-
41
+ NotionInter, Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, "Apple Color Emoji", Arial,
42
+ sans-serif, "Segoe UI Emoji", "Segoe UI Symbol"
43
+ motion:
44
+ devices: [reveal, pan, stagger, tabs]
45
+ notes: 'The Refero recording moves through workspace, agent, assistant, connected-work, and testimonial chapters as staged interface compositions. Product cards and conversation panels change as grouped scenes; the live capture confirms the same broad sequence. Individual input triggers are not asserted.'
46
+ ported_from: null
47
+ ---
48
+
49
+ ## What it does
50
+
51
+ Notion presents a connected workspace for teams and AI agents through a broad product narrative: workspaces, automation, assistants, connected knowledge, proof, and a final action.
52
+
53
+ ## Section roster
54
+
55
+ 1. Hero: teams and agents create together.
56
+ 2. Workspace/agent automation and Office Q&A examples.
57
+ 3. On-demand assistant and connected-work chapters.
58
+ 4. Product templates, customer proof, closing action, and footer.
59
+
60
+ ## Why it works
61
+
62
+ The page makes a large product surface scannable by alternating strong black headlines with familiar workspace snapshots. Small saturated topic colors identify sections without disrupting the calm near-white system.
63
+
64
+ ## Sources
65
+
66
+ The Refero MP4 at https://images.refero.design/styles/refero.design/video/02d47c42-272f-4414-98ef-f1be10e20efb.mp4 provides the 33.9-second motion sequence. The live capture at https://notion.so/ supplies current desktop/mobile layout and measured tokens. Both show the same connected-workspace direction.
Binary file