@anvpx/motion-templates 0.0.0-stage → 0.1.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.
- package/LICENSE +21 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +9 -0
- package/dist/roots.d.ts +41 -0
- package/dist/roots.js +81 -0
- package/package.json +34 -3
- package/shared/themes/README.md +5 -0
- package/shared/themes/bold-dark.json +362 -0
- package/shared/themes/bold-light.json +362 -0
- package/shared/themes/calm-dark.json +362 -0
- package/shared/themes/calm-light.json +362 -0
- package/shared/themes/data-dark.json +360 -0
- package/shared/themes/data-light.json +360 -0
- package/shared/themes/editorial-dark.json +353 -0
- package/shared/themes/editorial-light.json +353 -0
- package/shared/themes/fjord-dark.json +124 -0
- package/shared/themes/fjord-light.json +124 -0
- package/shared/themes/playful-dark.json +362 -0
- package/shared/themes/playful-light.json +362 -0
- package/shared/themes/pop-dark.json +352 -0
- package/shared/themes/pop-light.json +352 -0
- package/shared/themes/tech-dark.json +360 -0
- package/shared/themes/tech-light.json +360 -0
- package/shared/themes/warm-dark.json +368 -0
- package/shared/themes/warm-light.json +368 -0
- package/stopwords.json +65 -0
- package/templates/compare/blueprints/versus.json +79 -0
- package/templates/compare/copy.md +18 -0
- package/templates/compare/pacing.json +15 -0
- package/templates/compare/previews/versus.png +0 -0
- package/templates/compare/styles/editorial.json +6 -0
- package/templates/compare/styles/punchy.json +6 -0
- package/templates/compare/styles/tidy.json +6 -0
- package/templates/compare/template.json +52 -0
- package/templates/datastory/blueprints/data-story.json +95 -0
- package/templates/datastory/blueprints/infographic.json +106 -0
- package/templates/datastory/blueprints/trend.json +93 -0
- package/templates/datastory/copy.md +16 -0
- package/templates/datastory/pacing.json +17 -0
- package/templates/datastory/previews/data-story.png +0 -0
- package/templates/datastory/previews/infographic.png +0 -0
- package/templates/datastory/previews/trend.png +0 -0
- package/templates/datastory/styles/clear.json +6 -0
- package/templates/datastory/styles/editorial.json +6 -0
- package/templates/datastory/styles/pop.json +7 -0
- package/templates/datastory/template.json +57 -0
- package/templates/event/blueprints/promo.json +71 -0
- package/templates/event/blueprints/save-the-date.json +61 -0
- package/templates/event/copy.md +16 -0
- package/templates/event/pacing.json +15 -0
- package/templates/event/previews/promo.png +0 -0
- package/templates/event/previews/save-the-date.png +0 -0
- package/templates/event/styles/bright.json +6 -0
- package/templates/event/styles/pop.json +6 -0
- package/templates/event/template.json +37 -0
- package/templates/explain/blueprints/architecture.json +76 -0
- package/templates/explain/blueprints/concept.json +89 -0
- package/templates/explain/blueprints/howto.json +56 -0
- package/templates/explain/blueprints/overview.json +126 -0
- package/templates/explain/copy.md +19 -0
- package/templates/explain/pacing.json +19 -0
- package/templates/explain/previews/architecture.png +0 -0
- package/templates/explain/previews/concept.png +0 -0
- package/templates/explain/previews/howto.png +0 -0
- package/templates/explain/previews/overview.png +0 -0
- package/templates/explain/styles/calm.json +6 -0
- package/templates/explain/styles/crisp.json +6 -0
- package/templates/explain/template.json +64 -0
- package/templates/guide/blueprints/lesson.json +173 -0
- package/templates/guide/blueprints/onboarding.json +80 -0
- package/templates/guide/blueprints/tutorial.json +102 -0
- package/templates/guide/copy.md +17 -0
- package/templates/guide/pacing.json +59 -0
- package/templates/guide/previews/lesson.png +0 -0
- package/templates/guide/previews/onboarding.png +0 -0
- package/templates/guide/previews/tutorial.png +0 -0
- package/templates/guide/styles/calm.json +15 -0
- package/templates/guide/styles/friendly.json +15 -0
- package/templates/guide/styles/techdark.json +15 -0
- package/templates/guide/template.json +95 -0
- package/templates/pitch/blueprints/feature.json +134 -0
- package/templates/pitch/blueprints/launch.json +173 -0
- package/templates/pitch/blueprints/pricing.json +141 -0
- package/templates/pitch/copy.md +18 -0
- package/templates/pitch/pacing.json +59 -0
- package/templates/pitch/previews/feature.png +0 -0
- package/templates/pitch/previews/launch.png +0 -0
- package/templates/pitch/previews/pricing.png +0 -0
- package/templates/pitch/styles/polished.json +6 -0
- package/templates/pitch/styles/punchy.json +6 -0
- package/templates/pitch/styles/teaser.json +12 -0
- package/templates/pitch/template.json +45 -0
- package/templates/recap/blueprints/news-recap.json +62 -0
- package/templates/recap/blueprints/timeline-story.json +94 -0
- package/templates/recap/copy.md +16 -0
- package/templates/recap/pacing.json +16 -0
- package/templates/recap/previews/news-recap.png +0 -0
- package/templates/recap/previews/timeline-story.png +0 -0
- package/templates/recap/styles/editorial.json +6 -0
- package/templates/recap/styles/editorialdark.json +6 -0
- package/templates/recap/template.json +50 -0
- package/templates/report/blueprints/kpi-review.json +116 -0
- package/templates/report/blueprints/status.json +78 -0
- package/templates/report/copy.md +17 -0
- package/templates/report/pacing.json +16 -0
- package/templates/report/previews/kpi-review.png +0 -0
- package/templates/report/previews/status.png +0 -0
- package/templates/report/styles/exec.json +6 -0
- package/templates/report/styles/memo.json +6 -0
- package/templates/report/styles/walkthrough.json +6 -0
- package/templates/report/template.json +56 -0
- package/templates/social/blueprints/announce.json +109 -0
- package/templates/social/blueprints/listicle.json +117 -0
- package/templates/social/blueprints/tip.json +114 -0
- package/templates/social/copy.md +18 -0
- package/templates/social/pacing.json +49 -0
- package/templates/social/previews/announce.png +0 -0
- package/templates/social/previews/listicle.png +0 -0
- package/templates/social/previews/tip.png +0 -0
- package/templates/social/styles/captioned.json +18 -0
- package/templates/social/styles/hook-first.json +15 -0
- package/templates/social/styles/techcut.json +15 -0
- package/templates/social/template.json +94 -0
- package/templates/update/blueprints/announcement.json +57 -0
- package/templates/update/blueprints/changelog.json +157 -0
- package/templates/update/blueprints/release-notes.json +151 -0
- package/templates/update/blueprints/weekly-update.json +88 -0
- package/templates/update/copy.md +17 -0
- package/templates/update/pacing.json +64 -0
- package/templates/update/previews/announcement.png +0 -0
- package/templates/update/previews/changelog.png +0 -0
- package/templates/update/previews/release-notes.png +0 -0
- package/templates/update/previews/weekly-update.png +0 -0
- package/templates/update/styles/punchy.json +15 -0
- package/templates/update/styles/techdark.json +6 -0
- package/templates/update/styles/tidy.json +6 -0
- package/templates/update/template.json +67 -0
- package/templates/vista/blueprints/spotlight.json +68 -0
- package/templates/vista/blueprints/tour.json +84 -0
- package/templates/vista/copy.md +18 -0
- package/templates/vista/pacing.json +14 -0
- package/templates/vista/previews/spotlight.png +0 -0
- package/templates/vista/previews/tour.png +0 -0
- package/templates/vista/styles/bright.json +6 -0
- package/templates/vista/styles/cinematic.json +6 -0
- package/templates/vista/template.json +42 -0
- package/templates/walkthrough/blueprints/product-tour.json +107 -0
- package/templates/walkthrough/copy.md +16 -0
- package/templates/walkthrough/pacing.json +16 -0
- package/templates/walkthrough/previews/product-tour.png +0 -0
- package/templates/walkthrough/styles/calm.json +6 -0
- package/templates/walkthrough/styles/deep.json +6 -0
- package/templates/walkthrough/template.json +37 -0
- package/README.md +0 -3
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "launch",
|
|
3
|
+
"purpose": "Announce something new in 20-50s: title, hook beats, tagline, three benefit cards, one proof number, call to action.",
|
|
4
|
+
"discover": {
|
|
5
|
+
"useCases": [
|
|
6
|
+
"Announce a new product or service and name its three main benefits.",
|
|
7
|
+
"Open a campaign with a short hook, a promise and one proof point.",
|
|
8
|
+
"Introduce an idea to prospects or sponsors with a clear call to action."
|
|
9
|
+
],
|
|
10
|
+
"audience": ["prospects", "customers", "investors"],
|
|
11
|
+
"goodFor": "A launch with three benefits, an optional proof number and one call to action.",
|
|
12
|
+
"notFor": "Explaining how something works (explain), a single feature story (feature).",
|
|
13
|
+
"tags": ["pitch", "launch", "product", "marketing", "promo", "sales"],
|
|
14
|
+
"tone": ["bold", "energetic"],
|
|
15
|
+
"aspects": ["16:9", "9:16"],
|
|
16
|
+
"lengths": {
|
|
17
|
+
"min": 20,
|
|
18
|
+
"max": 50
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"slots": {
|
|
22
|
+
"product": {
|
|
23
|
+
"type": "text",
|
|
24
|
+
"max": 40,
|
|
25
|
+
"required": true
|
|
26
|
+
},
|
|
27
|
+
"tagline": {
|
|
28
|
+
"type": "text",
|
|
29
|
+
"max": 70,
|
|
30
|
+
"required": true
|
|
31
|
+
},
|
|
32
|
+
"hook": {
|
|
33
|
+
"type": "text[]",
|
|
34
|
+
"min": 1,
|
|
35
|
+
"max": 4,
|
|
36
|
+
"itemMax": 14,
|
|
37
|
+
"optional": true
|
|
38
|
+
},
|
|
39
|
+
"benefits": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"fields": {
|
|
42
|
+
"icon": "text",
|
|
43
|
+
"label": "text",
|
|
44
|
+
"detail": "text"
|
|
45
|
+
},
|
|
46
|
+
"list": true,
|
|
47
|
+
"min": 3,
|
|
48
|
+
"max": 3,
|
|
49
|
+
"required": true
|
|
50
|
+
},
|
|
51
|
+
"proof": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"fields": {
|
|
54
|
+
"value": "number",
|
|
55
|
+
"unit": "text",
|
|
56
|
+
"label": "text"
|
|
57
|
+
},
|
|
58
|
+
"optional": true
|
|
59
|
+
},
|
|
60
|
+
"cta": {
|
|
61
|
+
"type": "text",
|
|
62
|
+
"max": 40,
|
|
63
|
+
"required": true
|
|
64
|
+
},
|
|
65
|
+
"brand": {
|
|
66
|
+
"type": "text",
|
|
67
|
+
"max": 30,
|
|
68
|
+
"optional": true
|
|
69
|
+
},
|
|
70
|
+
"length": {
|
|
71
|
+
"type": "enum",
|
|
72
|
+
"values": ["short", "standard", "long"],
|
|
73
|
+
"default": "standard"
|
|
74
|
+
},
|
|
75
|
+
"style": {
|
|
76
|
+
"type": "enum",
|
|
77
|
+
"values": ["punchy", "polished", "teaser"],
|
|
78
|
+
"default": "punchy"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"example": {
|
|
82
|
+
"product": "Briar Notes",
|
|
83
|
+
"tagline": "Do the work in half the time",
|
|
84
|
+
"hook": ["Faster", "Simpler", "Yours"],
|
|
85
|
+
"benefits": [
|
|
86
|
+
{
|
|
87
|
+
"icon": "zap",
|
|
88
|
+
"label": "Fast setup",
|
|
89
|
+
"detail": "Live today"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"icon": "shield-check",
|
|
93
|
+
"label": "Safe",
|
|
94
|
+
"detail": "Always on"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"icon": "globe",
|
|
98
|
+
"label": "Anywhere",
|
|
99
|
+
"detail": "Any device"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"proof": {
|
|
103
|
+
"value": 50,
|
|
104
|
+
"unit": "%",
|
|
105
|
+
"label": "less time on routine work"
|
|
106
|
+
},
|
|
107
|
+
"cta": "Start today",
|
|
108
|
+
"brand": "Briar Labs"
|
|
109
|
+
},
|
|
110
|
+
"meta": {
|
|
111
|
+
"title": {
|
|
112
|
+
"$slot": "product"
|
|
113
|
+
},
|
|
114
|
+
"lang": "en"
|
|
115
|
+
},
|
|
116
|
+
"scenes": [
|
|
117
|
+
{
|
|
118
|
+
"id": "intro",
|
|
119
|
+
"type": "title",
|
|
120
|
+
"props": {
|
|
121
|
+
"kicker": "Introducing",
|
|
122
|
+
"title": {
|
|
123
|
+
"$slot": "product"
|
|
124
|
+
},
|
|
125
|
+
"subtitle": {
|
|
126
|
+
"$slot": "tagline"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"when": "hook",
|
|
132
|
+
"id": "hook",
|
|
133
|
+
"type": "kinetic",
|
|
134
|
+
"props": {
|
|
135
|
+
"words": {
|
|
136
|
+
"$slot": "hook"
|
|
137
|
+
},
|
|
138
|
+
"mode": "slam"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "benefits",
|
|
143
|
+
"type": "icon-grid",
|
|
144
|
+
"props": {
|
|
145
|
+
"items": {
|
|
146
|
+
"$slot": "benefits"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"when": "proof",
|
|
152
|
+
"id": "proof",
|
|
153
|
+
"type": "stat",
|
|
154
|
+
"props": {
|
|
155
|
+
"$spread": "proof"
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"id": "end",
|
|
160
|
+
"type": "outro",
|
|
161
|
+
"props": {
|
|
162
|
+
"title": {
|
|
163
|
+
"$slot": "cta"
|
|
164
|
+
},
|
|
165
|
+
"lines": [
|
|
166
|
+
{
|
|
167
|
+
"$slot": "brand"
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "pricing",
|
|
3
|
+
"purpose": "Show 2-5 plans as an ascending price ladder in 20-45s with values visible, one recommended tier, optional note, call to action.",
|
|
4
|
+
"discover": {
|
|
5
|
+
"useCases": [
|
|
6
|
+
"Show plans or tiers and what changes between them.",
|
|
7
|
+
"Present a price ladder with one recommended option for a buying decision.",
|
|
8
|
+
"Summarise levels of service or membership with a value on each step."
|
|
9
|
+
],
|
|
10
|
+
"audience": ["prospects", "customers", "sponsors"],
|
|
11
|
+
"goodFor": "Two to five ordered tiers, each with a name, a price or value, and a short note.",
|
|
12
|
+
"notFor": "Open-ended feature comparison (compare), cost analysis with charts (datastory).",
|
|
13
|
+
"tags": ["pitch", "pricing", "sales", "product", "marketing", "steps"],
|
|
14
|
+
"tone": ["bold", "clear"],
|
|
15
|
+
"aspects": ["16:9", "9:16"],
|
|
16
|
+
"lengths": {
|
|
17
|
+
"min": 20,
|
|
18
|
+
"max": 45
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"slots": {
|
|
22
|
+
"title": {
|
|
23
|
+
"type": "text",
|
|
24
|
+
"max": 50,
|
|
25
|
+
"required": true
|
|
26
|
+
},
|
|
27
|
+
"tiers": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"fields": {
|
|
30
|
+
"label": "text",
|
|
31
|
+
"value": "text",
|
|
32
|
+
"detail": "text"
|
|
33
|
+
},
|
|
34
|
+
"list": true,
|
|
35
|
+
"min": 2,
|
|
36
|
+
"max": 5,
|
|
37
|
+
"required": true
|
|
38
|
+
},
|
|
39
|
+
"recommended": {
|
|
40
|
+
"type": "number",
|
|
41
|
+
"int": true,
|
|
42
|
+
"min": 1,
|
|
43
|
+
"max": 5,
|
|
44
|
+
"optional": true
|
|
45
|
+
},
|
|
46
|
+
"note": {
|
|
47
|
+
"type": "text",
|
|
48
|
+
"max": 100,
|
|
49
|
+
"optional": true
|
|
50
|
+
},
|
|
51
|
+
"cta": {
|
|
52
|
+
"type": "text",
|
|
53
|
+
"max": 40,
|
|
54
|
+
"required": true
|
|
55
|
+
},
|
|
56
|
+
"length": {
|
|
57
|
+
"type": "enum",
|
|
58
|
+
"values": ["short", "standard", "long"],
|
|
59
|
+
"default": "standard"
|
|
60
|
+
},
|
|
61
|
+
"style": {
|
|
62
|
+
"type": "enum",
|
|
63
|
+
"values": ["punchy", "polished", "teaser"],
|
|
64
|
+
"default": "punchy"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"example": {
|
|
68
|
+
"title": "Pick your plan",
|
|
69
|
+
"tiers": [
|
|
70
|
+
{
|
|
71
|
+
"label": "Starter",
|
|
72
|
+
"value": "$0",
|
|
73
|
+
"detail": "Just trying"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"label": "Team",
|
|
77
|
+
"value": "$29",
|
|
78
|
+
"detail": "Shared space"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"label": "Scale",
|
|
82
|
+
"value": "$99",
|
|
83
|
+
"detail": "Priority help"
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"recommended": 2,
|
|
87
|
+
"note": "[Annual] billing saves two months",
|
|
88
|
+
"cta": "Choose a plan"
|
|
89
|
+
},
|
|
90
|
+
"meta": {
|
|
91
|
+
"title": {
|
|
92
|
+
"$slot": "title"
|
|
93
|
+
},
|
|
94
|
+
"lang": "en"
|
|
95
|
+
},
|
|
96
|
+
"scenes": [
|
|
97
|
+
{
|
|
98
|
+
"id": "intro",
|
|
99
|
+
"type": "title",
|
|
100
|
+
"props": {
|
|
101
|
+
"kicker": "Plans",
|
|
102
|
+
"title": {
|
|
103
|
+
"$slot": "title"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "ladder",
|
|
109
|
+
"type": "steps",
|
|
110
|
+
"props": {
|
|
111
|
+
"layout": "ladder",
|
|
112
|
+
"steps": {
|
|
113
|
+
"$slot": "tiers"
|
|
114
|
+
},
|
|
115
|
+
"active": {
|
|
116
|
+
"$slot": "recommended"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"when": "note",
|
|
122
|
+
"id": "note",
|
|
123
|
+
"type": "callout",
|
|
124
|
+
"props": {
|
|
125
|
+
"kind": "tip",
|
|
126
|
+
"text": {
|
|
127
|
+
"$slot": "note"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "end",
|
|
133
|
+
"type": "outro",
|
|
134
|
+
"props": {
|
|
135
|
+
"title": {
|
|
136
|
+
"$slot": "cta"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Pitch copy guide
|
|
2
|
+
|
|
3
|
+
Tone: confident, concrete, energetic. Sell the outcome, not the feature list.
|
|
4
|
+
|
|
5
|
+
Do
|
|
6
|
+
- Hook first: a 1-3 word beat, then the promise.
|
|
7
|
+
- Tagline: one benefit in at most 8 words.
|
|
8
|
+
- Benefits: label of 1-3 words, detail of 3-7 words, one icon each.
|
|
9
|
+
- Prices: show a value on every tier, mark one as recommended.
|
|
10
|
+
- End with a single call to action, an imperative of 2-5 words.
|
|
11
|
+
|
|
12
|
+
Don't
|
|
13
|
+
- No more than 3 benefits, 5 tiers, 40 words per scene.
|
|
14
|
+
- No superlatives you cannot prove (best, revolutionary, seamless).
|
|
15
|
+
- No invented numbers: one sourced proof point or none.
|
|
16
|
+
- No exclamation marks in more than one scene.
|
|
17
|
+
|
|
18
|
+
Vocabulary: "plan" not "SKU", "start" not "leverage", "you" not "users".
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wordsPerSecond": 2.8,
|
|
3
|
+
"sceneSeconds": {
|
|
4
|
+
"title": {
|
|
5
|
+
"short": 3,
|
|
6
|
+
"standard": 4,
|
|
7
|
+
"long": 5
|
|
8
|
+
},
|
|
9
|
+
"kinetic": {
|
|
10
|
+
"short": 3,
|
|
11
|
+
"standard": 4,
|
|
12
|
+
"long": 5
|
|
13
|
+
},
|
|
14
|
+
"icon-grid": {
|
|
15
|
+
"short": 5,
|
|
16
|
+
"standard": 7,
|
|
17
|
+
"long": 10
|
|
18
|
+
},
|
|
19
|
+
"stat": {
|
|
20
|
+
"short": 4,
|
|
21
|
+
"standard": 5,
|
|
22
|
+
"long": 6
|
|
23
|
+
},
|
|
24
|
+
"compare": {
|
|
25
|
+
"short": 6,
|
|
26
|
+
"standard": 8,
|
|
27
|
+
"long": 11
|
|
28
|
+
},
|
|
29
|
+
"steps": {
|
|
30
|
+
"short": 6,
|
|
31
|
+
"standard": 8,
|
|
32
|
+
"long": 11
|
|
33
|
+
},
|
|
34
|
+
"callout": {
|
|
35
|
+
"short": 3,
|
|
36
|
+
"standard": 4,
|
|
37
|
+
"long": 5
|
|
38
|
+
},
|
|
39
|
+
"outro": {
|
|
40
|
+
"short": 3,
|
|
41
|
+
"standard": 4,
|
|
42
|
+
"long": 5
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"lengths": {
|
|
46
|
+
"short": {
|
|
47
|
+
"scenes": [3, 6],
|
|
48
|
+
"totalSec": [10, 40]
|
|
49
|
+
},
|
|
50
|
+
"standard": {
|
|
51
|
+
"scenes": [3, 7],
|
|
52
|
+
"totalSec": [15, 60]
|
|
53
|
+
},
|
|
54
|
+
"long": {
|
|
55
|
+
"scenes": [4, 8],
|
|
56
|
+
"totalSec": [30, 75]
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "teaser",
|
|
3
|
+
"theme": "pop-dark",
|
|
4
|
+
"frame": { "width": 1080, "height": 1920, "fps": 30 },
|
|
5
|
+
"direction": {
|
|
6
|
+
"shot": "close",
|
|
7
|
+
"move": "push-in",
|
|
8
|
+
"ease": "spring-snappy",
|
|
9
|
+
"transition": "cut"
|
|
10
|
+
},
|
|
11
|
+
"props": { "icon-grid": { "cols": 2 } }
|
|
12
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"templateVersion": 1,
|
|
3
|
+
"id": "pitch",
|
|
4
|
+
"version": "1.0.1",
|
|
5
|
+
"title": "Pitch",
|
|
6
|
+
"summary": "Persuasive launches, feature stories and price ladders. Bold, fast, icon-led.",
|
|
7
|
+
"domains": ["marketing", "sales", "product"],
|
|
8
|
+
"discover": {
|
|
9
|
+
"useCases": [
|
|
10
|
+
"Announce a product, service or idea and make people want it.",
|
|
11
|
+
"Explain one feature as a problem followed by its solution.",
|
|
12
|
+
"Show plans or tiers and what changes between them.",
|
|
13
|
+
"Cut a short vertical teaser from the same copy for social channels."
|
|
14
|
+
],
|
|
15
|
+
"audience": ["prospects", "customers", "investors", "sponsors"],
|
|
16
|
+
"goodFor": "Persuading an outside audience with a hook, three benefits and a call to action.",
|
|
17
|
+
"notFor": "Neutral explanation (explain), dense numeric analysis (datastory).",
|
|
18
|
+
"tags": ["pitch", "launch", "product", "pricing", "sales", "marketing", "promo"],
|
|
19
|
+
"tone": ["bold", "energetic"],
|
|
20
|
+
"aspects": ["16:9", "9:16"]
|
|
21
|
+
},
|
|
22
|
+
"requires": {
|
|
23
|
+
"storyboard": 1,
|
|
24
|
+
"scenes": ["title", "kinetic", "icon-grid", "stat", "compare", "steps", "callout", "outro"]
|
|
25
|
+
},
|
|
26
|
+
"themes": [
|
|
27
|
+
{ "id": "bold-light", "file": "@shared/bold-light.json", "mode": "light", "pair": "bold-dark" },
|
|
28
|
+
{ "id": "bold-dark", "file": "@shared/bold-dark.json", "mode": "dark", "pair": "bold-light" },
|
|
29
|
+
{ "id": "pop-light", "file": "@shared/pop-light.json", "mode": "light", "pair": "pop-dark" },
|
|
30
|
+
{ "id": "pop-dark", "file": "@shared/pop-dark.json", "mode": "dark", "pair": "pop-light" }
|
|
31
|
+
],
|
|
32
|
+
"styles": [
|
|
33
|
+
{ "id": "punchy", "file": "styles/punchy.json" },
|
|
34
|
+
{ "id": "polished", "file": "styles/polished.json" },
|
|
35
|
+
{ "id": "teaser", "file": "styles/teaser.json" }
|
|
36
|
+
],
|
|
37
|
+
"blueprints": [
|
|
38
|
+
{ "id": "launch", "file": "blueprints/launch.json" },
|
|
39
|
+
{ "id": "feature", "file": "blueprints/feature.json" },
|
|
40
|
+
{ "id": "pricing", "file": "blueprints/pricing.json" }
|
|
41
|
+
],
|
|
42
|
+
"pacing": "pacing.json",
|
|
43
|
+
"copy": "copy.md",
|
|
44
|
+
"license": "Apache-2.0"
|
|
45
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"discover": {
|
|
3
|
+
"aspects": ["16:9", "1:1"],
|
|
4
|
+
"audience": ["readers", "team", "stakeholders"],
|
|
5
|
+
"goodFor": "A period with 3-6 dated events and one number.",
|
|
6
|
+
"lengths": { "max": 90, "min": 40 },
|
|
7
|
+
"notFor": "Single narratives, upcoming occasions, metric deep dives (datastory).",
|
|
8
|
+
"tags": ["recap", "news", "timeline", "data"],
|
|
9
|
+
"tone": ["calm", "direct"],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"Recap what happened over a period, oldest first.",
|
|
12
|
+
"Pair a timeline with one number readers should keep.",
|
|
13
|
+
"Close a look back with one line on what is next."
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"example": {
|
|
17
|
+
"closing": "Doors open again in spring",
|
|
18
|
+
"items": [
|
|
19
|
+
{ "detail": "Stalls up at dawn", "label": "Gates open", "when": "Week 1" },
|
|
20
|
+
{ "detail": "Two growers join", "label": "Market grows", "when": "Week 2" },
|
|
21
|
+
{ "detail": "Record Saturday footfall", "label": "Best day", "when": "Week 3" }
|
|
22
|
+
],
|
|
23
|
+
"period": "A month at the fair (illustrative)",
|
|
24
|
+
"stat": { "label": "visitors across the month", "value": 1200 }
|
|
25
|
+
},
|
|
26
|
+
"id": "news-recap",
|
|
27
|
+
"meta": { "lang": "en", "title": { "$slot": "period" } },
|
|
28
|
+
"purpose": "Recap a period in 40-90s: events on a timeline, one number, close.",
|
|
29
|
+
"scenes": [
|
|
30
|
+
{
|
|
31
|
+
"id": "intro",
|
|
32
|
+
"props": { "kicker": "Recap", "title": { "$slot": "period" } },
|
|
33
|
+
"type": "title"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "events",
|
|
37
|
+
"props": { "items": { "$slot": "items" }, "title": "What happened" },
|
|
38
|
+
"type": "timeline"
|
|
39
|
+
},
|
|
40
|
+
{ "id": "number", "props": { "$spread": "stat" }, "type": "stat", "when": "stat" },
|
|
41
|
+
{ "id": "end", "props": { "title": { "$slot": "closing" } }, "type": "outro" }
|
|
42
|
+
],
|
|
43
|
+
"slots": {
|
|
44
|
+
"closing": { "max": 60, "required": true, "type": "text" },
|
|
45
|
+
"items": {
|
|
46
|
+
"fields": { "detail": "text", "label": "text", "when": "text" },
|
|
47
|
+
"list": true,
|
|
48
|
+
"max": 6,
|
|
49
|
+
"min": 3,
|
|
50
|
+
"required": true,
|
|
51
|
+
"type": "object"
|
|
52
|
+
},
|
|
53
|
+
"length": { "default": "standard", "type": "enum", "values": ["short", "standard", "long"] },
|
|
54
|
+
"period": { "max": 40, "required": true, "type": "text" },
|
|
55
|
+
"stat": {
|
|
56
|
+
"fields": { "label": "text", "value": "number" },
|
|
57
|
+
"optional": true,
|
|
58
|
+
"type": "object"
|
|
59
|
+
},
|
|
60
|
+
"style": { "default": "editorial", "type": "enum", "values": ["editorial", "editorialdark"] }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"discover": {
|
|
3
|
+
"aspects": ["16:9", "1:1"],
|
|
4
|
+
"audience": ["readers", "community", "stakeholders"],
|
|
5
|
+
"goodFor": "One story in 3-7 eras with a takeaway.",
|
|
6
|
+
"lengths": { "max": 90, "min": 40 },
|
|
7
|
+
"notFor": "Period news roundups, metric charts (datastory/trend), live occasions.",
|
|
8
|
+
"tags": ["recap", "history", "timeline", "chart"],
|
|
9
|
+
"tone": ["calm", "friendly"],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"Tell how a project or place changed across three to seven eras.",
|
|
12
|
+
"Pair a timeline with one chart that shows the direction.",
|
|
13
|
+
"Close a history with one takeaway line."
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"example": {
|
|
17
|
+
"chartTitle": "Loaves baked each morning",
|
|
18
|
+
"closing": "Still the same corner shop",
|
|
19
|
+
"data": [
|
|
20
|
+
{ "label": "2019", "value": 60 },
|
|
21
|
+
{ "label": "2020", "value": 90 },
|
|
22
|
+
{ "label": "2021", "value": 140 },
|
|
23
|
+
{ "label": "2022", "value": 200 }
|
|
24
|
+
],
|
|
25
|
+
"eras": [
|
|
26
|
+
{ "detail": "One oven", "label": "Doors open", "when": "2019" },
|
|
27
|
+
{ "detail": "Bread to go", "label": "Second oven", "when": "2020" },
|
|
28
|
+
{ "detail": "Tables outside", "label": "Cafe corner", "when": "2021" },
|
|
29
|
+
{ "detail": "Bakes for neighbors", "label": "Street staple", "when": "2022" }
|
|
30
|
+
],
|
|
31
|
+
"takeaway": "Slow growth [kept] the bakery on its corner",
|
|
32
|
+
"topic": "The corner bakery",
|
|
33
|
+
"unit": "loaves"
|
|
34
|
+
},
|
|
35
|
+
"id": "timeline-story",
|
|
36
|
+
"meta": { "lang": "en", "title": { "$slot": "topic" } },
|
|
37
|
+
"purpose": "Tell one story in 40-90s: eras on a timeline, an optional chart, a takeaway.",
|
|
38
|
+
"scenes": [
|
|
39
|
+
{
|
|
40
|
+
"id": "intro",
|
|
41
|
+
"props": { "kicker": "Story", "title": { "$slot": "topic" } },
|
|
42
|
+
"type": "title"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"id": "eras",
|
|
46
|
+
"props": { "items": { "$slot": "eras" }, "title": "How it unfolded" },
|
|
47
|
+
"type": "timeline"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "trend",
|
|
51
|
+
"props": {
|
|
52
|
+
"data": { "$slot": "data" },
|
|
53
|
+
"kind": "bar",
|
|
54
|
+
"orient": "v",
|
|
55
|
+
"sort": "none",
|
|
56
|
+
"title": { "$slot": "chartTitle" },
|
|
57
|
+
"unit": { "$slot": "unit" }
|
|
58
|
+
},
|
|
59
|
+
"type": "chart",
|
|
60
|
+
"when": "data"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "point",
|
|
64
|
+
"props": { "kind": "statement", "label": "Takeaway", "text": { "$slot": "takeaway" } },
|
|
65
|
+
"type": "callout"
|
|
66
|
+
},
|
|
67
|
+
{ "id": "end", "props": { "title": { "$slot": "closing" } }, "type": "outro" }
|
|
68
|
+
],
|
|
69
|
+
"slots": {
|
|
70
|
+
"chartTitle": { "default": "By the numbers", "max": 50, "type": "text" },
|
|
71
|
+
"closing": { "max": 60, "required": true, "type": "text" },
|
|
72
|
+
"data": {
|
|
73
|
+
"fields": { "label": "text", "value": "number" },
|
|
74
|
+
"list": true,
|
|
75
|
+
"max": 8,
|
|
76
|
+
"min": 3,
|
|
77
|
+
"optional": true,
|
|
78
|
+
"type": "object"
|
|
79
|
+
},
|
|
80
|
+
"eras": {
|
|
81
|
+
"fields": { "detail": "text", "label": "text", "when": "text" },
|
|
82
|
+
"list": true,
|
|
83
|
+
"max": 7,
|
|
84
|
+
"min": 3,
|
|
85
|
+
"required": true,
|
|
86
|
+
"type": "object"
|
|
87
|
+
},
|
|
88
|
+
"length": { "default": "standard", "type": "enum", "values": ["short", "standard", "long"] },
|
|
89
|
+
"style": { "default": "editorial", "type": "enum", "values": ["editorial", "editorialdark"] },
|
|
90
|
+
"takeaway": { "max": 110, "required": true, "type": "text" },
|
|
91
|
+
"topic": { "max": 40, "required": true, "type": "text" },
|
|
92
|
+
"unit": { "default": "", "max": 12, "type": "text" }
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Recap copy guide
|
|
2
|
+
|
|
3
|
+
Tone: calm, direct, factual. Say what happened, in order, then what it means.
|
|
4
|
+
|
|
5
|
+
Do
|
|
6
|
+
- Title: the period or story in at most 8 words.
|
|
7
|
+
- Timeline: each entry names one event; detail adds one fact, at most 10 words.
|
|
8
|
+
- Numbers: at most one or two figures; label says what was counted.
|
|
9
|
+
- Close with one takeaway of at most 15 words, no new facts.
|
|
10
|
+
|
|
11
|
+
Don't
|
|
12
|
+
- No more than 7 entries, one idea per entry, no new facts at the close.
|
|
13
|
+
- No superlatives you cannot prove; no invented figures, quotes or dates.
|
|
14
|
+
- No exclamation marks, emoji, or "simply", "just", "easy".
|
|
15
|
+
|
|
16
|
+
Vocabulary: "look back" not "deep dive", "period" not "leverage", "takeaway" not "learnings".
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lengths": {
|
|
3
|
+
"long": { "scenes": [5, 7], "totalSec": [35, 100] },
|
|
4
|
+
"short": { "scenes": [3, 5], "totalSec": [12, 40] },
|
|
5
|
+
"standard": { "scenes": [4, 6], "totalSec": [20, 70] }
|
|
6
|
+
},
|
|
7
|
+
"sceneSeconds": {
|
|
8
|
+
"callout": { "long": 8, "short": 4, "standard": 6 },
|
|
9
|
+
"chart": { "long": 8, "short": 5, "standard": 6 },
|
|
10
|
+
"outro": { "long": 5, "short": 3, "standard": 4 },
|
|
11
|
+
"stat": { "long": 6, "short": 4, "standard": 5 },
|
|
12
|
+
"timeline": { "long": 14, "short": 7, "standard": 10 },
|
|
13
|
+
"title": { "long": 5, "short": 3, "standard": 4 }
|
|
14
|
+
},
|
|
15
|
+
"wordsPerSecond": 2.5
|
|
16
|
+
}
|
|
Binary file
|
|
Binary file
|