@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.
- package/.env.example +7 -0
- package/README.md +52 -9
- package/bin/library.mjs +11 -0
- package/entries/ada/entry.md +55 -0
- package/entries/ada/strip.webp +0 -0
- package/entries/air/captures/2/measure.json +325 -0
- package/entries/air/captures/2/strip.webp +0 -0
- package/entries/air/entry.md +62 -0
- package/entries/air/strip.webp +0 -0
- package/entries/ais-community-dark-depth/strip.webp +0 -0
- package/entries/apple-home/captures/2/measure.json +91 -0
- package/entries/apple-home/captures/2/strip.webp +0 -0
- package/entries/apple-home/entry.md +64 -0
- package/entries/apple-home/strip.webp +0 -0
- package/entries/apple-macbook-neo/captures/2/measure.json +570 -0
- package/entries/apple-macbook-neo/captures/2/strip.webp +0 -0
- package/entries/apple-macbook-neo/entry.md +62 -0
- package/entries/apple-macbook-neo/strip.webp +0 -0
- package/entries/apple-watch-ultra-4/entry.md +63 -0
- package/entries/apple-watch-ultra-4/measure.json +481 -0
- package/entries/apple-watch-ultra-4/strip.webp +0 -0
- package/entries/bpco/captures/2/strip.webp +0 -0
- package/entries/bpco/captures/3/strip.webp +0 -0
- package/entries/bpco/entry.md +81 -0
- package/entries/bpco/strip.webp +0 -0
- package/entries/column/captures/2/measure.json +996 -0
- package/entries/column/captures/2/strip.webp +0 -0
- package/entries/column/entry.md +82 -0
- package/entries/column/strip.webp +0 -0
- package/entries/cthdrl/captures/2/measure.json +251 -0
- package/entries/cthdrl/captures/2/strip.webp +0 -0
- package/entries/cthdrl/entry.md +86 -0
- package/entries/cthdrl/strip.webp +0 -0
- package/entries/dala-craftedbygc/entry.md +69 -0
- package/entries/dala-craftedbygc/strip.webp +0 -0
- package/entries/dock/captures/2/measure.json +206 -0
- package/entries/dock/captures/2/strip.webp +0 -0
- package/entries/dock/entry.md +62 -0
- package/entries/dock/strip.webp +0 -0
- package/entries/dub/captures/2/measure.json +37 -0
- package/entries/dub/captures/2/strip.webp +0 -0
- package/entries/dub/entry.md +61 -0
- package/entries/dub/strip.webp +0 -0
- package/entries/duolingo/captures/2/measure.json +138 -0
- package/entries/duolingo/captures/2/strip.webp +0 -0
- package/entries/duolingo/entry.md +65 -0
- package/entries/duolingo/strip.webp +0 -0
- package/entries/elevenlabs/captures/2/measure.json +160 -0
- package/entries/elevenlabs/captures/2/strip.webp +0 -0
- package/entries/elevenlabs/entry.md +62 -0
- package/entries/elevenlabs/strip.webp +0 -0
- package/entries/flying-papers/captures/2/measure.json +291 -0
- package/entries/flying-papers/captures/2/strip.webp +0 -0
- package/entries/flying-papers/entry.md +61 -0
- package/entries/flying-papers/strip.webp +0 -0
- package/entries/gsap/captures/2/measure.json +120 -0
- package/entries/gsap/captures/2/strip.webp +0 -0
- package/entries/gsap/entry.md +62 -0
- package/entries/gsap/strip.webp +0 -0
- package/entries/letters/captures/2/measure.json +20 -0
- package/entries/letters/captures/2/strip.webp +0 -0
- package/entries/letters/entry.md +62 -0
- package/entries/letters/strip.webp +0 -0
- package/entries/micro/captures/2/measure.json +852 -0
- package/entries/micro/captures/2/strip.webp +0 -0
- package/entries/micro/entry.md +61 -0
- package/entries/micro/strip.webp +0 -0
- package/entries/monopo-saigon/captures/2/measure.json +145 -0
- package/entries/monopo-saigon/captures/2/strip.webp +0 -0
- package/entries/monopo-saigon/entry.md +64 -0
- package/entries/monopo-saigon/strip.webp +0 -0
- package/entries/notion/captures/2/measure.json +338 -0
- package/entries/notion/captures/2/strip.webp +0 -0
- package/entries/notion/entry.md +66 -0
- package/entries/notion/strip.webp +0 -0
- package/entries/origin-financial/captures/2/measure.json +169 -0
- package/entries/origin-financial/captures/2/strip.webp +0 -0
- package/entries/origin-financial/entry.md +65 -0
- package/entries/origin-financial/strip.webp +0 -0
- package/entries/oryzo-ai/captures/2/measure.json +39 -0
- package/entries/oryzo-ai/captures/2/strip.webp +0 -0
- package/entries/oryzo-ai/entry.md +76 -0
- package/entries/oryzo-ai/strip.webp +0 -0
- package/entries/silencio/captures/2/strip.webp +0 -0
- package/entries/silencio/entry.md +114 -0
- package/entries/silencio/motion/product-story/frame-0.webp +0 -0
- package/entries/silencio/motion/product-story/frame-1.webp +0 -0
- package/entries/silencio/motion/product-story/frame-2.webp +0 -0
- package/entries/silencio/motion/product-story/frame-3.webp +0 -0
- package/entries/silencio/motion/product-story/frame-4.webp +0 -0
- package/entries/silencio/motion/product-story/frame-5.webp +0 -0
- package/entries/silencio/motion/product-story/frame-6.webp +0 -0
- package/entries/silencio/motion/product-story/frame-7.webp +0 -0
- package/entries/silencio/strip.webp +0 -0
- package/entries/steep/captures/2/measure.json +20 -0
- package/entries/steep/captures/2/strip.webp +0 -0
- package/entries/steep/entry.md +63 -0
- package/entries/steep/strip.webp +0 -0
- package/entries/stripe/captures/2/measure.json +892 -0
- package/entries/stripe/captures/2/strip.webp +0 -0
- package/entries/stripe/entry.md +61 -0
- package/entries/stripe/strip.webp +0 -0
- package/entries/superpower/captures/2/measure.json +179 -0
- package/entries/superpower/captures/2/strip.webp +0 -0
- package/entries/superpower/entry.md +64 -0
- package/entries/superpower/strip.webp +0 -0
- package/entries/superr/entry.md +54 -0
- package/entries/superr/strip.webp +0 -0
- package/entries/svz-weare/captures/2/measure.json +129 -0
- package/entries/svz-weare/captures/2/strip.webp +0 -0
- package/entries/svz-weare/entry.md +147 -0
- package/entries/svz-weare/motion/hero-transition/frame-0.webp +0 -0
- package/entries/svz-weare/motion/hero-transition/frame-1.webp +0 -0
- package/entries/svz-weare/motion/hero-transition/frame-2.webp +0 -0
- package/entries/svz-weare/motion/hero-transition/frame-3.webp +0 -0
- package/entries/svz-weare/motion/hero-transition/frame-4.webp +0 -0
- package/entries/svz-weare/motion/hero-transition/frame-5.webp +0 -0
- package/entries/svz-weare/motion/hero-transition/frame-6.webp +0 -0
- package/entries/svz-weare/motion/hero-transition/frame-7.webp +0 -0
- package/entries/svz-weare/strip.webp +0 -0
- package/entries/thoughtlab/captures/2/measure.json +93 -0
- package/entries/thoughtlab/captures/2/strip.webp +0 -0
- package/entries/thoughtlab/entry.md +62 -0
- package/entries/thoughtlab/strip.webp +0 -0
- package/entries/ventriloc/entry.md +54 -0
- package/entries/ventriloc/strip.webp +0 -0
- package/entries/vivid-and-co/entry.md +58 -0
- package/entries/vivid-and-co/strip.webp +0 -0
- package/package.json +24 -5
- package/src/cli/add.mjs +100 -24
- package/src/cli/motion.mjs +168 -0
- package/src/cli/refresh.mjs +6 -0
- package/src/cli/ui.mjs +2 -1
- package/src/entry.mjs +14 -1
- package/src/index/build.mjs +9 -3
- package/src/index/embed.mjs +1 -1
- package/src/ingest/agreement.mjs +33 -0
- package/src/ingest/attach.mjs +67 -0
- package/src/ingest/draft.mjs +5 -2
- package/src/ingest/frames.mjs +20 -6
- package/src/ingest/measure.mjs +34 -1
- package/src/ingest/observed.mjs +29 -0
- package/src/mcp/http.mjs +1 -1
- package/src/mcp/instructions.mjs +2 -1
- package/src/mcp/prompts.mjs +12 -1
- package/src/mcp/resources.mjs +14 -0
- package/src/mcp/tools.mjs +48 -5
- package/src/motion.mjs +94 -0
- package/src/ui/build.mjs +83 -7
- package/src/ui/serve.mjs +29 -4
- package/src/ui/templates/entry.html +9 -1
- package/entries/ais-community-dark-depth/strip.png +0 -0
- package/tests/README.md +0 -33
- package/tests/checks/cli-check.sh +0 -13
- package/tests/checks/docker.sh +0 -10
- package/tests/checks/entry-detail.sh +0 -52
- package/tests/checks/entry.sh +0 -55
- package/tests/checks/export.sh +0 -16
- package/tests/checks/fetch-on-start.sh +0 -26
- package/tests/checks/frames-dense.sh +0 -27
- package/tests/checks/http.sh +0 -22
- package/tests/checks/hygiene.sh +0 -29
- package/tests/checks/inbox.sh +0 -27
- package/tests/checks/index-degrade.sh +0 -32
- package/tests/checks/index.sh +0 -36
- package/tests/checks/ingest-mp4.sh +0 -47
- package/tests/checks/ingest.sh +0 -39
- package/tests/checks/instructions.sh +0 -31
- package/tests/checks/licence-gate.sh +0 -24
- package/tests/checks/mcp-stdout.sh +0 -31
- package/tests/checks/measure.sh +0 -79
- package/tests/checks/minors.sh +0 -84
- package/tests/checks/optional-deps.sh +0 -55
- package/tests/checks/prompt-add-entry.sh +0 -28
- package/tests/checks/recommend.sh +0 -107
- package/tests/checks/resources.sh +0 -47
- package/tests/checks/rrf.sh +0 -120
- package/tests/checks/seed-sync.sh +0 -22
- package/tests/checks/similar.sh +0 -62
- package/tests/checks/ui-build.sh +0 -59
- package/tests/checks/vocab.sh +0 -30
- package/tests/fixtures/entry-ok/entry.md +0 -41
- package/tests/fixtures/entry-ok/strip.png +0 -0
- package/tests/fixtures/page/index.html +0 -47
- package/tests/fixtures/three-frame.webp +0 -0
- package/tests/run.sh +0 -16
|
Binary file
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: column
|
|
3
|
+
title: 'Column: modern financial-infrastructure landing'
|
|
4
|
+
tier: inspiration
|
|
5
|
+
source:
|
|
6
|
+
kind: public-site
|
|
7
|
+
url: https://column.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/column-refero.mp4
|
|
16
|
+
artifacts:
|
|
17
|
+
- strip.webp
|
|
18
|
+
frames: 36
|
|
19
|
+
duration_ms: 32417
|
|
20
|
+
- method: both
|
|
21
|
+
input: https://column.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: 32417
|
|
30
|
+
roles:
|
|
31
|
+
- hero
|
|
32
|
+
- proof
|
|
33
|
+
- capability
|
|
34
|
+
- feature
|
|
35
|
+
- offer
|
|
36
|
+
- closing
|
|
37
|
+
- footer
|
|
38
|
+
feel:
|
|
39
|
+
- light
|
|
40
|
+
- premium
|
|
41
|
+
- editorial
|
|
42
|
+
- minimal
|
|
43
|
+
- cold
|
|
44
|
+
palette:
|
|
45
|
+
canvas: '#f7f7f8'
|
|
46
|
+
ink: '#172357'
|
|
47
|
+
accent: '#ff6a21'
|
|
48
|
+
type:
|
|
49
|
+
display: clean geometric sans-serif
|
|
50
|
+
body: clean geometric sans-serif
|
|
51
|
+
motion:
|
|
52
|
+
devices:
|
|
53
|
+
- reveal
|
|
54
|
+
- pan
|
|
55
|
+
- drift
|
|
56
|
+
- stagger
|
|
57
|
+
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.
|
|
61
|
+
ported_from: null
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## What it does
|
|
65
|
+
|
|
66
|
+
Column presents banking infrastructure as a modular building-block system: global reach, customer proof, developer primitives, and configurable financial products.
|
|
67
|
+
|
|
68
|
+
## Section roster
|
|
69
|
+
|
|
70
|
+
1. World-map hero and product promise.
|
|
71
|
+
2. Customer proof and orange metric cards.
|
|
72
|
+
3. Developer/API capability sequence.
|
|
73
|
+
4. Dark modular-system diagram and product blocks.
|
|
74
|
+
5. Industry proof, financial-product matrix, documentation links, and closing/footer.
|
|
75
|
+
|
|
76
|
+
## Why it works
|
|
77
|
+
|
|
78
|
+
The soft near-white canvas makes the dark-blue type and rare orange data panels easy to read. It shifts between editorial story sections and structured product surfaces without losing the same precise grid.
|
|
79
|
+
|
|
80
|
+
## Sources
|
|
81
|
+
|
|
82
|
+
The Refero MP4 at https://images.refero.design/styles/refero.design/video/3d47cb0a-492f-4fa3-82e6-d59ebb5cf128.mp4 provides the full 32.42-second page sequence. A live Chrome capture of https://column.com/ returned no artifacts, so its URL is retained as the public source but the visual and motion notes rely on the supplied recording.
|
|
Binary file
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
{
|
|
2
|
+
"url": "https://cthdrl.co/",
|
|
3
|
+
"at": "2026-09-16",
|
|
4
|
+
"viewport": [
|
|
5
|
+
1440,
|
|
6
|
+
390
|
|
7
|
+
],
|
|
8
|
+
"tokens": {
|
|
9
|
+
"canvas": "#000000",
|
|
10
|
+
"ink": "#e7ded1",
|
|
11
|
+
"accent": "",
|
|
12
|
+
"fontDisplay": "\"NB Akademie\", sans-serif",
|
|
13
|
+
"fontBody": "\"NB Akademie Mono\", sans-serif"
|
|
14
|
+
},
|
|
15
|
+
"sections": [
|
|
16
|
+
{
|
|
17
|
+
"index": 0,
|
|
18
|
+
"tag": "header",
|
|
19
|
+
"id": "",
|
|
20
|
+
"class": "site-header",
|
|
21
|
+
"top": 0,
|
|
22
|
+
"height": 47,
|
|
23
|
+
"animations": [
|
|
24
|
+
{
|
|
25
|
+
"target": "div.marquee-text-text",
|
|
26
|
+
"timeline": "document",
|
|
27
|
+
"range": null,
|
|
28
|
+
"duration": 15000
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"target": "div.marquee-text-text",
|
|
32
|
+
"timeline": "document",
|
|
33
|
+
"range": null,
|
|
34
|
+
"duration": 15000
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"index": 1,
|
|
40
|
+
"tag": "section",
|
|
41
|
+
"id": "",
|
|
42
|
+
"class": "work-slideshow current-0",
|
|
43
|
+
"top": 0,
|
|
44
|
+
"height": 901,
|
|
45
|
+
"animations": [
|
|
46
|
+
{
|
|
47
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
48
|
+
"timeline": "document",
|
|
49
|
+
"range": null,
|
|
50
|
+
"duration": 2500
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
54
|
+
"timeline": "document",
|
|
55
|
+
"range": null,
|
|
56
|
+
"duration": 2500
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"target": "span.text-slideup-slider",
|
|
60
|
+
"timeline": "document",
|
|
61
|
+
"range": null,
|
|
62
|
+
"duration": 1000
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"target": "span.text-slideup-slider",
|
|
66
|
+
"timeline": "document",
|
|
67
|
+
"range": null,
|
|
68
|
+
"duration": 1000
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"target": "span.text-slideup-slider",
|
|
72
|
+
"timeline": "document",
|
|
73
|
+
"range": null,
|
|
74
|
+
"duration": 1000
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
78
|
+
"timeline": "document",
|
|
79
|
+
"range": null,
|
|
80
|
+
"duration": 2500
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
84
|
+
"timeline": "document",
|
|
85
|
+
"range": null,
|
|
86
|
+
"duration": 2500
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
90
|
+
"timeline": "document",
|
|
91
|
+
"range": null,
|
|
92
|
+
"duration": 2500
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
96
|
+
"timeline": "document",
|
|
97
|
+
"range": null,
|
|
98
|
+
"duration": 2500
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
102
|
+
"timeline": "document",
|
|
103
|
+
"range": null,
|
|
104
|
+
"duration": 2500
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
108
|
+
"timeline": "document",
|
|
109
|
+
"range": null,
|
|
110
|
+
"duration": 2500
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
114
|
+
"timeline": "document",
|
|
115
|
+
"range": null,
|
|
116
|
+
"duration": 2500
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
120
|
+
"timeline": "document",
|
|
121
|
+
"range": null,
|
|
122
|
+
"duration": 2500
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
126
|
+
"timeline": "document",
|
|
127
|
+
"range": null,
|
|
128
|
+
"duration": 2500
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
132
|
+
"timeline": "document",
|
|
133
|
+
"range": null,
|
|
134
|
+
"duration": 2500
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
138
|
+
"timeline": "document",
|
|
139
|
+
"range": null,
|
|
140
|
+
"duration": 2500
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
144
|
+
"timeline": "document",
|
|
145
|
+
"range": null,
|
|
146
|
+
"duration": 2500
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
150
|
+
"timeline": "document",
|
|
151
|
+
"range": null,
|
|
152
|
+
"duration": 2500
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
156
|
+
"timeline": "document",
|
|
157
|
+
"range": null,
|
|
158
|
+
"duration": 2500
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
162
|
+
"timeline": "document",
|
|
163
|
+
"range": null,
|
|
164
|
+
"duration": 2500
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
168
|
+
"timeline": "document",
|
|
169
|
+
"range": null,
|
|
170
|
+
"duration": 2500
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
174
|
+
"timeline": "document",
|
|
175
|
+
"range": null,
|
|
176
|
+
"duration": 2500
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
180
|
+
"timeline": "document",
|
|
181
|
+
"range": null,
|
|
182
|
+
"duration": 2500
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
186
|
+
"timeline": "document",
|
|
187
|
+
"range": null,
|
|
188
|
+
"duration": 2500
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
192
|
+
"timeline": "document",
|
|
193
|
+
"range": null,
|
|
194
|
+
"duration": 2500
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
198
|
+
"timeline": "document",
|
|
199
|
+
"range": null,
|
|
200
|
+
"duration": 2500
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
204
|
+
"timeline": "document",
|
|
205
|
+
"range": null,
|
|
206
|
+
"duration": 2500
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
210
|
+
"timeline": "document",
|
|
211
|
+
"range": null,
|
|
212
|
+
"duration": 2500
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
216
|
+
"timeline": "document",
|
|
217
|
+
"range": null,
|
|
218
|
+
"duration": 2500
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
222
|
+
"timeline": "document",
|
|
223
|
+
"range": null,
|
|
224
|
+
"duration": 2500
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
228
|
+
"timeline": "document",
|
|
229
|
+
"range": null,
|
|
230
|
+
"duration": 2500
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
234
|
+
"timeline": "document",
|
|
235
|
+
"range": null,
|
|
236
|
+
"duration": 2500
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"target": "circle.[object SVGAnimatedString]",
|
|
240
|
+
"timeline": "document",
|
|
241
|
+
"range": null,
|
|
242
|
+
"duration": 2500
|
|
243
|
+
}
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
],
|
|
247
|
+
"screenshots": {
|
|
248
|
+
"390": "screen-390.png",
|
|
249
|
+
"1440": "screen-1440.png"
|
|
250
|
+
}
|
|
251
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: cthdrl
|
|
3
|
+
title: 'CTHDRL: dark circular-mask creative-studio landing'
|
|
4
|
+
tier: inspiration
|
|
5
|
+
source:
|
|
6
|
+
kind: public-site
|
|
7
|
+
url: https://cthdrl.co/
|
|
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/Videos/Screencasts/Screencast_20260916_145447.webm
|
|
16
|
+
artifacts:
|
|
17
|
+
- strip.webp
|
|
18
|
+
frames: 30
|
|
19
|
+
duration_ms: 14968
|
|
20
|
+
- method: both
|
|
21
|
+
input: https://cthdrl.co/
|
|
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: 30
|
|
29
|
+
duration_ms: 14968
|
|
30
|
+
roles: [hero, feature, proof, footer]
|
|
31
|
+
feel: [dark, premium, editorial, minimal, depth, cold]
|
|
32
|
+
palette:
|
|
33
|
+
canvas: '#000000'
|
|
34
|
+
ink: '#e7ded1'
|
|
35
|
+
accent: '#9d3d2e'
|
|
36
|
+
type:
|
|
37
|
+
display: '"NB Akademie", sans-serif'
|
|
38
|
+
body: '"NB Akademie Mono", sans-serif'
|
|
39
|
+
motion:
|
|
40
|
+
devices: [marquee, wipe, pan, reveal, tabs]
|
|
41
|
+
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.
|
|
53
|
+
ported_from: null
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## What it does
|
|
57
|
+
|
|
58
|
+
CTHDRL frames its work as a compact, full-screen cultural index. An almost-black,
|
|
59
|
+
grainy surface, warm off-white grotesk type and fine circular construction lines
|
|
60
|
+
hold the page together while large project names, film stills and retail imagery
|
|
61
|
+
replace one another inside the same stage. A small 0/14 counter treats the work
|
|
62
|
+
portfolio as a sequence to navigate instead of a feed to browse.
|
|
63
|
+
|
|
64
|
+
## Section roster
|
|
65
|
+
|
|
66
|
+
hero ("Navigating cultural currents in a digital world" with header marquee and
|
|
67
|
+
project counter), feature (the full-screen work slideshow: Terminal, Jeen-Yuhs
|
|
68
|
+
and further indexed projects), proof (named work and its image/film evidence),
|
|
69
|
+
footer (CTHDRL/Studio mark, Work and Contact routes, and the closing credits).
|
|
70
|
+
|
|
71
|
+
## Why it works
|
|
72
|
+
|
|
73
|
+
The circular mask turns the project switch into the page's signature device:
|
|
74
|
+
each new case study feels uncovered rather than merely replaced. Restrained type
|
|
75
|
+
and a nearly monochrome palette keep the archival imagery legible, and the small
|
|
76
|
+
counter gives the oversized stage a clear navigation model. Cost to weigh: the
|
|
77
|
+
approach puts every project inside one prescribed rhythm, so weaker imagery or
|
|
78
|
+
too many similar transitions can make the sequence feel uniform.
|
|
79
|
+
|
|
80
|
+
## Sources
|
|
81
|
+
|
|
82
|
+
- Recording capture (`Screencast_20260916_145447.webm`, 15.0 seconds, 30
|
|
83
|
+
sampled frames): establishes the circular-mask project hand-offs, media pan
|
|
84
|
+
and title/counter changes.
|
|
85
|
+
- Live capture (https://cthdrl.co/): confirms the full-screen 14-work structure,
|
|
86
|
+
the header marquee, and measured canvas, ink and font tokens.
|
|
Binary file
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: dala-craftedbygc
|
|
3
|
+
title: 'Dala: dark particle-field AI-search landing'
|
|
4
|
+
tier: inspiration
|
|
5
|
+
source:
|
|
6
|
+
kind: public-site
|
|
7
|
+
url: https://dala.craftedbygc.com/
|
|
8
|
+
license: Captured from 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.3.0
|
|
13
|
+
media:
|
|
14
|
+
frames: 36
|
|
15
|
+
duration_ms: 42533
|
|
16
|
+
roles: [hero, explainer, feature, capability, proof, closing, footer]
|
|
17
|
+
feel: [dark, premium, playful, depth, saas, cold]
|
|
18
|
+
palette:
|
|
19
|
+
canvas: '#000000'
|
|
20
|
+
ink: '#ffffff'
|
|
21
|
+
accent: '#9a9a9a'
|
|
22
|
+
type:
|
|
23
|
+
display: >-
|
|
24
|
+
PPNeueMontreal, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif
|
|
25
|
+
body: >-
|
|
26
|
+
PPNeueMontreal, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif
|
|
27
|
+
motion:
|
|
28
|
+
devices: [reveal, pin, parallax, drift, tabs]
|
|
29
|
+
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.
|
|
41
|
+
ported_from: null
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## What it does
|
|
45
|
+
|
|
46
|
+
Dala presents a workplace-knowledge product as a field of collective signals.
|
|
47
|
+
Instead of product UI, the page uses one black stage filled with floating,
|
|
48
|
+
outlined geometric marks and a changing point-cloud object in yellow, violet,
|
|
49
|
+
teal and white. Large, spare headlines and a compact purple request-access
|
|
50
|
+
button give the dense particle art room to carry the story.
|
|
51
|
+
|
|
52
|
+
## Section roster
|
|
53
|
+
|
|
54
|
+
hero ("Unlock collective wisdom" and the large particle form), explainer
|
|
55
|
+
(decision-making promise and the workplace-information problem), feature
|
|
56
|
+
(scattered knowledge field and the "Spark lightbulb moments" form), capability
|
|
57
|
+
("Build a better world of work" narrative), proof (team profile carousel and
|
|
58
|
+
investor logos), closing (answer-led request-access prompt with the small final
|
|
59
|
+
form), footer (Seedcamp mark, legal links and social navigation).
|
|
60
|
+
|
|
61
|
+
## Why it works
|
|
62
|
+
|
|
63
|
+
One visual language turns an abstract idea—knowledge spread across people and
|
|
64
|
+
systems—into something physical: fragments disperse, gather and become useful
|
|
65
|
+
shape. The narrow palette keeps the animated field from reading as decoration,
|
|
66
|
+
and repeated black space makes each text hand-off feel deliberate. Proof appears
|
|
67
|
+
late, after the product story has created the premise for it. Cost to weigh: the
|
|
68
|
+
particle treatment needs strong art direction and careful performance work; a
|
|
69
|
+
cheap or noisy version would overwhelm the concise copy.
|
|
Binary file
|