@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,151 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "release-notes",
|
|
3
|
+
"purpose": "Present a release: product and version, 3-6 icon highlights, an optional screenshot, and one thing to try.",
|
|
4
|
+
"discover": {
|
|
5
|
+
"useCases": [
|
|
6
|
+
"Summarise a release in under a minute: headline changes, one screenshot and what to try.",
|
|
7
|
+
"Show three to six new capabilities as icon cards for users who skim.",
|
|
8
|
+
"Announce a new version of a tool, service or library to its audience."
|
|
9
|
+
],
|
|
10
|
+
"audience": ["users", "customers", "teammates"],
|
|
11
|
+
"goodFor": "A release with 3-6 headline changes and an optional screenshot.",
|
|
12
|
+
"notFor": "Many dated versions (changelog), launch persuasion (pitch), tutorials (guide).",
|
|
13
|
+
"tags": ["update", "release-notes", "product", "launch", "announce"],
|
|
14
|
+
"tone": ["calm", "direct"],
|
|
15
|
+
"aspects": ["16:9", "1:1"],
|
|
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
|
+
"version": {
|
|
28
|
+
"type": "text",
|
|
29
|
+
"max": 20,
|
|
30
|
+
"required": true
|
|
31
|
+
},
|
|
32
|
+
"highlights": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"fields": {
|
|
35
|
+
"icon": "text",
|
|
36
|
+
"label": "text",
|
|
37
|
+
"detail": "text"
|
|
38
|
+
},
|
|
39
|
+
"list": true,
|
|
40
|
+
"min": 3,
|
|
41
|
+
"max": 6,
|
|
42
|
+
"required": true
|
|
43
|
+
},
|
|
44
|
+
"screenshot": {
|
|
45
|
+
"type": "text",
|
|
46
|
+
"max": 120,
|
|
47
|
+
"optional": true
|
|
48
|
+
},
|
|
49
|
+
"caption": {
|
|
50
|
+
"type": "text",
|
|
51
|
+
"max": 100,
|
|
52
|
+
"optional": true
|
|
53
|
+
},
|
|
54
|
+
"try": {
|
|
55
|
+
"type": "text",
|
|
56
|
+
"max": 60,
|
|
57
|
+
"default": "Update today and try it"
|
|
58
|
+
},
|
|
59
|
+
"length": {
|
|
60
|
+
"type": "enum",
|
|
61
|
+
"values": ["short", "standard", "long"],
|
|
62
|
+
"default": "standard"
|
|
63
|
+
},
|
|
64
|
+
"style": {
|
|
65
|
+
"type": "enum",
|
|
66
|
+
"values": ["tidy", "punchy", "techdark"],
|
|
67
|
+
"default": "tidy"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"example": {
|
|
71
|
+
"product": "Briar Notes",
|
|
72
|
+
"version": "Version 2.4",
|
|
73
|
+
"highlights": [
|
|
74
|
+
{
|
|
75
|
+
"icon": "zap",
|
|
76
|
+
"label": "Faster startup",
|
|
77
|
+
"detail": "Half the time"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"icon": "shield-check",
|
|
81
|
+
"label": "Safer sign-in",
|
|
82
|
+
"detail": "Two-step checks"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"icon": "palette",
|
|
86
|
+
"label": "Custom themes",
|
|
87
|
+
"detail": "Light or dark"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"icon": "download",
|
|
91
|
+
"label": "Offline mode",
|
|
92
|
+
"detail": "Work anywhere"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"try": "Update today and try it"
|
|
96
|
+
},
|
|
97
|
+
"meta": {
|
|
98
|
+
"title": {
|
|
99
|
+
"$slot": "product"
|
|
100
|
+
},
|
|
101
|
+
"lang": "en"
|
|
102
|
+
},
|
|
103
|
+
"scenes": [
|
|
104
|
+
{
|
|
105
|
+
"id": "intro",
|
|
106
|
+
"type": "title",
|
|
107
|
+
"props": {
|
|
108
|
+
"kicker": "Release notes",
|
|
109
|
+
"title": {
|
|
110
|
+
"$slot": "product"
|
|
111
|
+
},
|
|
112
|
+
"subtitle": {
|
|
113
|
+
"$slot": "version"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "highlights",
|
|
119
|
+
"type": "icon-grid",
|
|
120
|
+
"props": {
|
|
121
|
+
"title": "What is new",
|
|
122
|
+
"items": {
|
|
123
|
+
"$slot": "highlights"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"when": "screenshot",
|
|
129
|
+
"id": "screen",
|
|
130
|
+
"type": "media-frame",
|
|
131
|
+
"props": {
|
|
132
|
+
"image": {
|
|
133
|
+
"$slot": "screenshot"
|
|
134
|
+
},
|
|
135
|
+
"device": "browser",
|
|
136
|
+
"caption": {
|
|
137
|
+
"$slot": "caption"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "end",
|
|
143
|
+
"type": "outro",
|
|
144
|
+
"props": {
|
|
145
|
+
"title": {
|
|
146
|
+
"$slot": "try"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "weekly-update",
|
|
3
|
+
"purpose": "Give a team's period summary: what is done, key numbers, what is next and what is blocked.",
|
|
4
|
+
"discover": {
|
|
5
|
+
"useCases": [
|
|
6
|
+
"Give a team its period progress, upcoming work and blockers in under a minute.",
|
|
7
|
+
"Share two or three headline numbers with a short list of finished work.",
|
|
8
|
+
"Flag what is blocked and what help is needed."
|
|
9
|
+
],
|
|
10
|
+
"audience": ["teammates", "stakeholders", "managers"],
|
|
11
|
+
"goodFor": "A recurring progress update with 2-5 done items and a few next steps.",
|
|
12
|
+
"notFor": "Deep KPI analysis (report), a single announcement (announcement).",
|
|
13
|
+
"tags": ["update", "status", "internal", "recap", "kpi"],
|
|
14
|
+
"tone": ["calm", "direct"],
|
|
15
|
+
"aspects": ["16:9", "1:1"],
|
|
16
|
+
"lengths": { "min": 25, "max": 60 }
|
|
17
|
+
},
|
|
18
|
+
"slots": {
|
|
19
|
+
"team": { "type": "text", "max": 40, "required": true },
|
|
20
|
+
"period": { "type": "text", "max": 30, "required": true },
|
|
21
|
+
"done": { "type": "text[]", "min": 2, "max": 5, "itemMax": 50, "required": true },
|
|
22
|
+
"kpis": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"fields": { "value": "text", "label": "text", "delta": "text" },
|
|
25
|
+
"list": true,
|
|
26
|
+
"min": 2,
|
|
27
|
+
"max": 3,
|
|
28
|
+
"optional": true
|
|
29
|
+
},
|
|
30
|
+
"next": { "type": "text[]", "min": 1, "max": 4, "itemMax": 50, "required": true },
|
|
31
|
+
"blockers": { "type": "text[]", "min": 1, "max": 3, "itemMax": 60, "optional": true },
|
|
32
|
+
"closing": { "type": "text", "max": 60, "default": "Questions in the team channel" },
|
|
33
|
+
"length": { "type": "enum", "values": ["short", "standard", "long"], "default": "standard" },
|
|
34
|
+
"style": { "type": "enum", "values": ["tidy", "punchy", "techdark"], "default": "tidy" }
|
|
35
|
+
},
|
|
36
|
+
"example": {
|
|
37
|
+
"team": "Platform Team",
|
|
38
|
+
"period": "Week of Oct 21",
|
|
39
|
+
"done": [
|
|
40
|
+
"Shipped the new onboarding flow",
|
|
41
|
+
"Closed 12 support requests",
|
|
42
|
+
"Moved reports to the new database"
|
|
43
|
+
],
|
|
44
|
+
"kpis": [
|
|
45
|
+
{ "value": "98.9", "label": "Uptime %", "delta": "+0.4" },
|
|
46
|
+
{ "value": "12", "label": "Requests closed", "delta": "+3" },
|
|
47
|
+
{ "value": "4.2", "label": "Days to review", "delta": "-0.8" }
|
|
48
|
+
],
|
|
49
|
+
"next": ["Start the mobile redesign", "Run a load test", "Plan next quarter"],
|
|
50
|
+
"blockers": ["Waiting on legal sign-off", "Test environment is down"],
|
|
51
|
+
"closing": "Questions in the team channel"
|
|
52
|
+
},
|
|
53
|
+
"meta": { "title": { "$slot": "team" }, "lang": "en" },
|
|
54
|
+
"scenes": [
|
|
55
|
+
{
|
|
56
|
+
"id": "intro",
|
|
57
|
+
"type": "title",
|
|
58
|
+
"props": {
|
|
59
|
+
"kicker": "Weekly update",
|
|
60
|
+
"title": { "$slot": "team" },
|
|
61
|
+
"subtitle": { "$slot": "period" }
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "done",
|
|
66
|
+
"type": "bullets",
|
|
67
|
+
"props": { "title": "Done", "items": { "$slot": "done" }, "marker": "check" }
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"when": "kpis",
|
|
71
|
+
"id": "numbers",
|
|
72
|
+
"type": "kpi-grid",
|
|
73
|
+
"props": { "title": "By the numbers", "items": { "$slot": "kpis" } }
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "next",
|
|
77
|
+
"type": "bullets",
|
|
78
|
+
"props": { "title": "Next", "items": { "$slot": "next" }, "marker": "number" }
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"when": "blockers",
|
|
82
|
+
"id": "blocked",
|
|
83
|
+
"type": "bullets",
|
|
84
|
+
"props": { "title": "Blocked", "items": { "$slot": "blockers" }, "marker": "cross" }
|
|
85
|
+
},
|
|
86
|
+
{ "id": "end", "type": "outro", "props": { "title": { "$slot": "closing" } } }
|
|
87
|
+
]
|
|
88
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Update copy guide
|
|
2
|
+
|
|
3
|
+
Tone: calm, direct, factual. Say what changed and why it matters. Do not hype.
|
|
4
|
+
|
|
5
|
+
Do
|
|
6
|
+
- Lead with the result: "Faster exports", not "We improved exports".
|
|
7
|
+
- Labels: 2-4 words. Details: one short clause, no full stop.
|
|
8
|
+
- Versions and dates exactly as written ("v2.4", "Oct 28"); one change per entry.
|
|
9
|
+
- Weekly updates: done items in past tense, next items in future tense, blockers name the need.
|
|
10
|
+
- Close with one action: what to try, read or ask.
|
|
11
|
+
|
|
12
|
+
Don't
|
|
13
|
+
- No exclamation marks, emoji or words like "amazing", "revolutionary", "seamless".
|
|
14
|
+
- No more than 7 entries, 6 highlights or 14 code lines; split long lists.
|
|
15
|
+
- No invented numbers; every figure comes from the brief.
|
|
16
|
+
|
|
17
|
+
Vocabulary: "release" not "drop", "fix" not "remediation", "blocked" not "challenged".
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wordsPerSecond": 2.5,
|
|
3
|
+
"sceneSeconds": {
|
|
4
|
+
"title": {
|
|
5
|
+
"short": 3,
|
|
6
|
+
"standard": 4,
|
|
7
|
+
"long": 5
|
|
8
|
+
},
|
|
9
|
+
"icon-grid": {
|
|
10
|
+
"short": 6,
|
|
11
|
+
"standard": 9,
|
|
12
|
+
"long": 12
|
|
13
|
+
},
|
|
14
|
+
"media-frame": {
|
|
15
|
+
"short": 4,
|
|
16
|
+
"standard": 6,
|
|
17
|
+
"long": 8
|
|
18
|
+
},
|
|
19
|
+
"timeline": {
|
|
20
|
+
"short": 7,
|
|
21
|
+
"standard": 10,
|
|
22
|
+
"long": 14
|
|
23
|
+
},
|
|
24
|
+
"code": {
|
|
25
|
+
"short": 4,
|
|
26
|
+
"standard": 5,
|
|
27
|
+
"long": 8
|
|
28
|
+
},
|
|
29
|
+
"bullets": {
|
|
30
|
+
"short": 5,
|
|
31
|
+
"standard": 7,
|
|
32
|
+
"long": 10
|
|
33
|
+
},
|
|
34
|
+
"kpi-grid": {
|
|
35
|
+
"short": 5,
|
|
36
|
+
"standard": 6,
|
|
37
|
+
"long": 8
|
|
38
|
+
},
|
|
39
|
+
"callout": {
|
|
40
|
+
"short": 4,
|
|
41
|
+
"standard": 6,
|
|
42
|
+
"long": 8
|
|
43
|
+
},
|
|
44
|
+
"outro": {
|
|
45
|
+
"short": 3,
|
|
46
|
+
"standard": 4,
|
|
47
|
+
"long": 5
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"lengths": {
|
|
51
|
+
"short": {
|
|
52
|
+
"scenes": [3, 5],
|
|
53
|
+
"totalSec": [10, 40]
|
|
54
|
+
},
|
|
55
|
+
"standard": {
|
|
56
|
+
"scenes": [3, 6],
|
|
57
|
+
"totalSec": [15, 60]
|
|
58
|
+
},
|
|
59
|
+
"long": {
|
|
60
|
+
"scenes": [4, 7],
|
|
61
|
+
"totalSec": [25, 80]
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"templateVersion": 1,
|
|
3
|
+
"id": "update",
|
|
4
|
+
"version": "1.0.1",
|
|
5
|
+
"title": "Update",
|
|
6
|
+
"summary": "Release notes, changelogs, weekly updates, announcements. 16:9 and 1:1, skimmable.",
|
|
7
|
+
"domains": ["product", "tech", "internal-comms"],
|
|
8
|
+
"discover": {
|
|
9
|
+
"useCases": [
|
|
10
|
+
"Summarise a release: headline changes, one screenshot and what to try next.",
|
|
11
|
+
"List versioned changes from a changelog as a skimmable timeline.",
|
|
12
|
+
"Give a team its period progress, upcoming work and blockers.",
|
|
13
|
+
"Announce a change or policy with the reason and what happens next."
|
|
14
|
+
],
|
|
15
|
+
"audience": ["users", "customers", "teammates", "stakeholders"],
|
|
16
|
+
"goodFor": "Telling people what changed, with 3-7 short items and one takeaway.",
|
|
17
|
+
"notFor": "KPI-heavy reviews (report), step-by-step teaching (guide), persuasion (pitch).",
|
|
18
|
+
"tags": [
|
|
19
|
+
"update",
|
|
20
|
+
"release-notes",
|
|
21
|
+
"changelog",
|
|
22
|
+
"status",
|
|
23
|
+
"internal",
|
|
24
|
+
"timeline",
|
|
25
|
+
"announce",
|
|
26
|
+
"product"
|
|
27
|
+
],
|
|
28
|
+
"tone": ["calm", "direct"],
|
|
29
|
+
"aspects": ["16:9", "1:1"]
|
|
30
|
+
},
|
|
31
|
+
"requires": {
|
|
32
|
+
"storyboard": 1,
|
|
33
|
+
"scenes": [
|
|
34
|
+
"title",
|
|
35
|
+
"icon-grid",
|
|
36
|
+
"media-frame",
|
|
37
|
+
"timeline",
|
|
38
|
+
"code",
|
|
39
|
+
"bullets",
|
|
40
|
+
"kpi-grid",
|
|
41
|
+
"callout",
|
|
42
|
+
"outro"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"themes": [
|
|
46
|
+
{ "id": "calm-light", "file": "@shared/calm-light.json", "mode": "light", "pair": "calm-dark" },
|
|
47
|
+
{ "id": "calm-dark", "file": "@shared/calm-dark.json", "mode": "dark", "pair": "calm-light" },
|
|
48
|
+
{ "id": "bold-light", "file": "@shared/bold-light.json", "mode": "light", "pair": "bold-dark" },
|
|
49
|
+
{ "id": "bold-dark", "file": "@shared/bold-dark.json", "mode": "dark", "pair": "bold-light" },
|
|
50
|
+
{ "id": "tech-light", "file": "@shared/tech-light.json", "mode": "light", "pair": "tech-dark" },
|
|
51
|
+
{ "id": "tech-dark", "file": "@shared/tech-dark.json", "mode": "dark", "pair": "tech-light" }
|
|
52
|
+
],
|
|
53
|
+
"styles": [
|
|
54
|
+
{ "id": "tidy", "file": "styles/tidy.json" },
|
|
55
|
+
{ "id": "punchy", "file": "styles/punchy.json" },
|
|
56
|
+
{ "id": "techdark", "file": "styles/techdark.json" }
|
|
57
|
+
],
|
|
58
|
+
"blueprints": [
|
|
59
|
+
{ "id": "release-notes", "file": "blueprints/release-notes.json" },
|
|
60
|
+
{ "id": "changelog", "file": "blueprints/changelog.json" },
|
|
61
|
+
{ "id": "weekly-update", "file": "blueprints/weekly-update.json" },
|
|
62
|
+
{ "id": "announcement", "file": "blueprints/announcement.json" }
|
|
63
|
+
],
|
|
64
|
+
"pacing": "pacing.json",
|
|
65
|
+
"copy": "copy.md",
|
|
66
|
+
"license": "Apache-2.0"
|
|
67
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"discover": {
|
|
3
|
+
"audience": ["customers", "prospects", "learners"],
|
|
4
|
+
"aspects": ["16:9", "1:1"],
|
|
5
|
+
"goodFor": "One 3D highlight with a caption and a single takeaway.",
|
|
6
|
+
"lengths": { "max": 40, "min": 20 },
|
|
7
|
+
"notFor": "Multi-stop tours (tour), data or steps (datastory, guide).",
|
|
8
|
+
"tags": ["product", "announce", "promo", "marketing"],
|
|
9
|
+
"tone": ["cinematic", "calm"],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"Show one place, object or idea as a 3D diorama with a caption.",
|
|
12
|
+
"Open a demo with a single visual hook and one takeaway.",
|
|
13
|
+
"Add a voice-ready caption line to a 3D view."
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"example": {
|
|
17
|
+
"caption": "Ferries cross while cranes load the morning boats",
|
|
18
|
+
"cta": "Plan a visit",
|
|
19
|
+
"focus": "Harbor at dawn",
|
|
20
|
+
"sceneCaption": "Cranes, ferries and gulls in motion",
|
|
21
|
+
"subtitle": "A working port in miniature",
|
|
22
|
+
"takeaway": "A living harbor, distilled to one glance",
|
|
23
|
+
"title": "Harbor at dawn"
|
|
24
|
+
},
|
|
25
|
+
"id": "spotlight",
|
|
26
|
+
"meta": { "lang": "en", "title": { "$slot": "title" } },
|
|
27
|
+
"purpose": "Show one highlight in 20-40s: title, a 3D diorama, a caption line, one takeaway, close.",
|
|
28
|
+
"scenes": [
|
|
29
|
+
{
|
|
30
|
+
"id": "intro",
|
|
31
|
+
"props": {
|
|
32
|
+
"kicker": "Spotlight",
|
|
33
|
+
"subtitle": { "$slot": "subtitle" },
|
|
34
|
+
"title": { "$slot": "title" }
|
|
35
|
+
},
|
|
36
|
+
"type": "title"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "feature",
|
|
40
|
+
"props": { "caption": { "$slot": "sceneCaption" }, "title": { "$slot": "focus" } },
|
|
41
|
+
"type": "scene3d"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "cap",
|
|
45
|
+
"layer": "overlay",
|
|
46
|
+
"over": "feature",
|
|
47
|
+
"props": { "text": { "$slot": "caption" } },
|
|
48
|
+
"type": "caption"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": "point",
|
|
52
|
+
"props": { "kind": "statement", "label": "Takeaway", "text": { "$slot": "takeaway" } },
|
|
53
|
+
"type": "callout"
|
|
54
|
+
},
|
|
55
|
+
{ "id": "end", "props": { "title": { "$slot": "cta" } }, "type": "outro" }
|
|
56
|
+
],
|
|
57
|
+
"slots": {
|
|
58
|
+
"caption": { "max": 140, "required": true, "type": "text" },
|
|
59
|
+
"cta": { "max": 40, "required": true, "type": "text" },
|
|
60
|
+
"focus": { "max": 60, "required": true, "type": "text" },
|
|
61
|
+
"length": { "default": "standard", "type": "enum", "values": ["short", "standard", "long"] },
|
|
62
|
+
"sceneCaption": { "max": 140, "optional": true, "type": "text" },
|
|
63
|
+
"style": { "default": "cinematic", "type": "enum", "values": ["cinematic", "bright"] },
|
|
64
|
+
"subtitle": { "max": 90, "optional": true, "type": "text" },
|
|
65
|
+
"takeaway": { "max": 120, "required": true, "type": "text" },
|
|
66
|
+
"title": { "max": 60, "required": true, "type": "text" }
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"discover": {
|
|
3
|
+
"audience": ["customers", "learners", "stakeholders"],
|
|
4
|
+
"aspects": ["16:9"],
|
|
5
|
+
"goodFor": "Two or three 3D stops with captions and one closing takeaway.",
|
|
6
|
+
"lengths": { "max": 60, "min": 30 },
|
|
7
|
+
"notFor": "Single highlights (spotlight), data or procedures (datastory, guide).",
|
|
8
|
+
"tags": ["product", "event", "promo", "announce", "marketing"],
|
|
9
|
+
"tone": ["cinematic", "calm"],
|
|
10
|
+
"useCases": [
|
|
11
|
+
"Walk through two or three stops of a space, release or idea in order.",
|
|
12
|
+
"Pair each 3D view with a short caption the narrator can read.",
|
|
13
|
+
"Close a short tour with one takeaway and a next step."
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"example": {
|
|
17
|
+
"caption1": "Boats rest under morning light",
|
|
18
|
+
"caption2": "The beam turns once each minute",
|
|
19
|
+
"cta": "Plan a visit",
|
|
20
|
+
"stop1": "North pier",
|
|
21
|
+
"stop2": "Old lighthouse",
|
|
22
|
+
"takeaway": "Small harbors share one calm rhythm",
|
|
23
|
+
"title": "Three quiet harbors"
|
|
24
|
+
},
|
|
25
|
+
"id": "tour",
|
|
26
|
+
"meta": { "lang": "en", "title": { "$slot": "title" } },
|
|
27
|
+
"purpose": "Tour two or three stops in 30-60s: title, 3D stops with captions, takeaway, close.",
|
|
28
|
+
"scenes": [
|
|
29
|
+
{
|
|
30
|
+
"id": "intro",
|
|
31
|
+
"props": { "kicker": "Tour", "title": { "$slot": "title" } },
|
|
32
|
+
"type": "title"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "stop1",
|
|
36
|
+
"props": { "caption": { "$slot": "caption1" }, "title": { "$slot": "stop1" } },
|
|
37
|
+
"type": "scene3d"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "cap1",
|
|
41
|
+
"layer": "overlay",
|
|
42
|
+
"over": "stop1",
|
|
43
|
+
"props": { "text": { "$slot": "caption1" } },
|
|
44
|
+
"type": "caption"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "stop2",
|
|
48
|
+
"props": { "caption": { "$slot": "caption2" }, "title": { "$slot": "stop2" } },
|
|
49
|
+
"type": "scene3d"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "cap2",
|
|
53
|
+
"layer": "overlay",
|
|
54
|
+
"over": "stop2",
|
|
55
|
+
"props": { "text": { "$slot": "caption2" } },
|
|
56
|
+
"type": "caption"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "stop3",
|
|
60
|
+
"props": { "caption": { "$slot": "caption3" }, "title": { "$slot": "stop3" } },
|
|
61
|
+
"type": "scene3d",
|
|
62
|
+
"when": "stop3"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "point",
|
|
66
|
+
"props": { "kind": "statement", "label": "Takeaway", "text": { "$slot": "takeaway" } },
|
|
67
|
+
"type": "callout"
|
|
68
|
+
},
|
|
69
|
+
{ "id": "end", "props": { "title": { "$slot": "cta" } }, "type": "outro" }
|
|
70
|
+
],
|
|
71
|
+
"slots": {
|
|
72
|
+
"caption1": { "max": 140, "required": true, "type": "text" },
|
|
73
|
+
"caption2": { "max": 140, "required": true, "type": "text" },
|
|
74
|
+
"caption3": { "max": 140, "optional": true, "type": "text" },
|
|
75
|
+
"cta": { "max": 40, "required": true, "type": "text" },
|
|
76
|
+
"length": { "default": "standard", "type": "enum", "values": ["short", "standard", "long"] },
|
|
77
|
+
"stop1": { "max": 60, "required": true, "type": "text" },
|
|
78
|
+
"stop2": { "max": 60, "required": true, "type": "text" },
|
|
79
|
+
"stop3": { "max": 60, "optional": true, "type": "text" },
|
|
80
|
+
"style": { "default": "cinematic", "type": "enum", "values": ["cinematic", "bright"] },
|
|
81
|
+
"takeaway": { "max": 120, "required": true, "type": "text" },
|
|
82
|
+
"title": { "max": 60, "required": true, "type": "text" }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Vista copy guide
|
|
2
|
+
|
|
3
|
+
Tone: cinematic, calm, concrete. Show the place, then name it.
|
|
4
|
+
|
|
5
|
+
Do
|
|
6
|
+
- Title: the stop or subject in at most 8 words.
|
|
7
|
+
- 3D scene: one named view; caption is one clause, at most 12 words.
|
|
8
|
+
- Caption line: plain words that a narrator could read aloud.
|
|
9
|
+
- Takeaway: one line, at most 15 words, no new facts.
|
|
10
|
+
- Close with a next step of 2-5 words.
|
|
11
|
+
|
|
12
|
+
Don't
|
|
13
|
+
- No more than 3 stops, 25 words per scene, one idea per caption.
|
|
14
|
+
- No superlatives you cannot prove (best, stunning, ultimate).
|
|
15
|
+
- No invented numbers, dates or quotes; say only what the view shows.
|
|
16
|
+
- No exclamation marks, emoji, or "simply", "just", "easy".
|
|
17
|
+
|
|
18
|
+
Vocabulary: "view" not "render", "stop" not "slide", "visit" not "leverage".
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lengths": {
|
|
3
|
+
"long": { "scenes": [4, 8], "totalSec": [30, 75] },
|
|
4
|
+
"short": { "scenes": [3, 6], "totalSec": [10, 40] },
|
|
5
|
+
"standard": { "scenes": [3, 7], "totalSec": [15, 60] }
|
|
6
|
+
},
|
|
7
|
+
"sceneSeconds": {
|
|
8
|
+
"callout": { "long": 5, "short": 3, "standard": 4 },
|
|
9
|
+
"outro": { "long": 5, "short": 3, "standard": 4 },
|
|
10
|
+
"scene3d": { "long": 11, "short": 6, "standard": 8 },
|
|
11
|
+
"title": { "long": 5, "short": 3, "standard": 4 }
|
|
12
|
+
},
|
|
13
|
+
"wordsPerSecond": 2.5
|
|
14
|
+
}
|
|
Binary file
|
|
Binary file
|