@caltho/site-kit 0.2.10 → 0.2.11
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/README.md +61 -12
- package/dist/cli/check.js +31 -1
- package/dist/content/index.d.ts +310 -23
- package/dist/content/index.js +142 -15
- package/dist/content/look.d.ts +260 -9
- package/dist/content/look.js +386 -22
- package/dist/finish.js +9 -1
- package/dist/fonts/families/dm-sans/LICENSE +93 -0
- package/dist/fonts/families/dm-sans/dm-sans-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/families/dm-sans/dm-sans-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/dm-sans/dm-sans-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/families/dm-sans/dm-sans-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/fraunces/LICENSE +93 -0
- package/dist/fonts/families/fraunces/fraunces-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/families/fraunces/fraunces-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/fraunces/fraunces-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/families/fraunces/fraunces-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/inter/LICENSE +93 -0
- package/dist/fonts/families/inter/inter-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/families/inter/inter-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/inter/inter-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/families/inter/inter-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/lora/LICENSE +93 -0
- package/dist/fonts/families/lora/lora-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/families/lora/lora-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/lora/lora-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/families/lora/lora-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/manrope/LICENSE +93 -0
- package/dist/fonts/families/manrope/manrope-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/manrope/manrope-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/newsreader/LICENSE +93 -0
- package/dist/fonts/families/newsreader/newsreader-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/families/newsreader/newsreader-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/newsreader/newsreader-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/families/newsreader/newsreader-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/outfit/LICENSE +93 -0
- package/dist/fonts/families/outfit/outfit-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/outfit/outfit-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/playfair-display/LICENSE +93 -0
- package/dist/fonts/families/playfair-display/playfair-display-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/families/playfair-display/playfair-display-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/playfair-display/playfair-display-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/families/playfair-display/playfair-display-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/source-serif-4/LICENSE +93 -0
- package/dist/fonts/families/source-serif-4/source-serif-4-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/families/source-serif-4/source-serif-4-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/source-serif-4/source-serif-4-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/families/source-serif-4/source-serif-4-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/families/work-sans/LICENSE +93 -0
- package/dist/fonts/families/work-sans/work-sans-latin-ext-wght-italic.woff2 +0 -0
- package/dist/fonts/families/work-sans/work-sans-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/families/work-sans/work-sans-latin-wght-italic.woff2 +0 -0
- package/dist/fonts/families/work-sans/work-sans-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/google.json +1 -0
- package/dist/fonts-google.d.ts +35 -0
- package/dist/fonts-google.js +70 -0
- package/dist/fonts.css +365 -0
- package/dist/frame.test.d.ts +1 -0
- package/dist/frame.test.js +33 -0
- package/dist/migrate.d.ts +45 -0
- package/dist/migrate.js +284 -0
- package/dist/next/block-mark.d.ts +7 -0
- package/dist/next/block-mark.js +16 -0
- package/dist/next/blocks.d.ts +11 -0
- package/dist/next/blocks.js +35 -0
- package/dist/next/data.d.ts +4 -0
- package/dist/next/data.js +4 -0
- package/dist/next/frame.d.ts +34 -0
- package/dist/next/frame.js +70 -0
- package/dist/next/index.d.ts +6 -2
- package/dist/next/index.js +7 -3
- package/dist/next/menu-group.d.ts +11 -0
- package/dist/next/menu-group.js +33 -0
- package/dist/next/parts/LookStyle.js +3 -1
- package/dist/next/preview.js +282 -25
- package/dist/next/sections.d.ts +19 -10
- package/dist/next/sections.js +129 -17
- package/dist/prepare.d.ts +5 -1
- package/dist/prepare.js +59 -1
- package/dist/preview-match.d.ts +8 -0
- package/dist/preview-match.js +33 -1
- package/dist/schema.d.ts +10 -0
- package/dist/schema.js +26 -0
- package/dist/sections/icons.d.ts +47 -0
- package/dist/sections/icons.js +51 -0
- package/dist/sections/index.d.ts +165 -11
- package/dist/sections/index.js +129 -8
- package/dist/sections/presets.d.ts +13 -0
- package/dist/sections/presets.js +300 -0
- package/dist/sections.css +1260 -41
- package/dist/sections.test.js +276 -14
- package/package.json +8 -3
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
// The placeholder every site has in CalOS (a soft grey with a small landscape mark): replaced in the editor.
|
|
2
|
+
const PHOTO = "photos/placeholder.jpg";
|
|
3
|
+
const LOGO = "logos/replace-me.png";
|
|
4
|
+
export const presets = [
|
|
5
|
+
{
|
|
6
|
+
key: "hero",
|
|
7
|
+
name: "Opening",
|
|
8
|
+
description: "A large heading, a line about the business, two buttons and a photo beside them",
|
|
9
|
+
block: {
|
|
10
|
+
type: "own",
|
|
11
|
+
layout: "two",
|
|
12
|
+
spacing: "roomy",
|
|
13
|
+
columns: [
|
|
14
|
+
{
|
|
15
|
+
parts: [
|
|
16
|
+
{ type: "heading", text: "Work done properly, the first time", size: "large" },
|
|
17
|
+
{ type: "text", text: "Say in a sentence or two what the business does, who it's for and where it works." },
|
|
18
|
+
{ type: "button", label: "Get in touch", href: "/", style: "main" },
|
|
19
|
+
{ type: "button", label: "See our services", href: "/", style: "quiet" },
|
|
20
|
+
],
|
|
21
|
+
},
|
|
22
|
+
{ parts: [{ type: "photo", image: { src: PHOTO, alt: "" }, shape: "landscape" }] },
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: "banner",
|
|
28
|
+
name: "Words over a photo",
|
|
29
|
+
description: "A heading, a line and a button over a photo, darkened so the words read",
|
|
30
|
+
block: {
|
|
31
|
+
type: "own",
|
|
32
|
+
layout: "one",
|
|
33
|
+
align: "center",
|
|
34
|
+
spacing: "roomy",
|
|
35
|
+
background: { src: PHOTO, alt: "" },
|
|
36
|
+
columns: [
|
|
37
|
+
{
|
|
38
|
+
parts: [
|
|
39
|
+
{ type: "heading", text: "Careful work, from first visit to last", size: "large" },
|
|
40
|
+
{ type: "text", text: "A line on what sets the business apart." },
|
|
41
|
+
{ type: "button", label: "Book a visit", href: "/", style: "main" },
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
key: "features",
|
|
49
|
+
name: "Three reasons",
|
|
50
|
+
description: "Three columns side by side, each a heading and a few words",
|
|
51
|
+
block: {
|
|
52
|
+
type: "own",
|
|
53
|
+
layout: "three",
|
|
54
|
+
columns: [
|
|
55
|
+
{ parts: [{ type: "heading", text: "Clear pricing", size: "small" }, { type: "text", text: "You know the cost before any work starts, in writing." }] },
|
|
56
|
+
{ parts: [{ type: "heading", text: "On time", size: "small" }, { type: "text", text: "We agree a date and keep to it, and tell you early if anything changes." }] },
|
|
57
|
+
{ parts: [{ type: "heading", text: "Easy to reach", size: "small" }, { type: "text", text: "Call or write and you hear back the same working day." }] },
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
key: "testimonial",
|
|
63
|
+
name: "What a client said",
|
|
64
|
+
description: "A client's words, centred on a quiet background",
|
|
65
|
+
block: {
|
|
66
|
+
type: "own",
|
|
67
|
+
layout: "one",
|
|
68
|
+
align: "center",
|
|
69
|
+
tone: "soft",
|
|
70
|
+
columns: [{ parts: [{ type: "quote", text: "They were careful, quick to answer and finished when they said they would. We would use them again.", who: "Client's name, their company" }] }],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
key: "pricing",
|
|
75
|
+
name: "Prices",
|
|
76
|
+
description: "Three packages side by side, each with its price, what's included and a button",
|
|
77
|
+
block: {
|
|
78
|
+
type: "own",
|
|
79
|
+
layout: "three",
|
|
80
|
+
columns: [
|
|
81
|
+
{
|
|
82
|
+
parts: [
|
|
83
|
+
{ type: "heading", text: "Essential", size: "small" },
|
|
84
|
+
{ type: "price", amount: "Price", per: "a visit" },
|
|
85
|
+
{ type: "list", items: ["One visit", "Written quote", "Work guaranteed for a year"], style: "checks" },
|
|
86
|
+
{ type: "button", label: "Choose essential", href: "/", style: "quiet" },
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
parts: [
|
|
91
|
+
{ type: "heading", text: "Standard", size: "small" },
|
|
92
|
+
{ type: "price", amount: "Price", per: "a month", note: "Most chosen" },
|
|
93
|
+
{ type: "list", items: ["Up to three visits", "Priority booking", "Work guaranteed for two years"], style: "checks" },
|
|
94
|
+
{ type: "button", label: "Choose standard", href: "/", style: "main" },
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
parts: [
|
|
99
|
+
{ type: "heading", text: "Complete", size: "small" },
|
|
100
|
+
{ type: "price", amount: "Price", per: "a month" },
|
|
101
|
+
{ type: "list", items: ["Unlimited visits", "Same-day response", "A named contact"], style: "checks" },
|
|
102
|
+
{ type: "button", label: "Choose complete", href: "/", style: "quiet" },
|
|
103
|
+
],
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
key: "call-to-action",
|
|
110
|
+
name: "Ask to get in touch",
|
|
111
|
+
description: "A heading and a button on the brand colour, to end a page",
|
|
112
|
+
block: {
|
|
113
|
+
type: "own",
|
|
114
|
+
layout: "one",
|
|
115
|
+
align: "center",
|
|
116
|
+
tone: "brand",
|
|
117
|
+
columns: [
|
|
118
|
+
{
|
|
119
|
+
parts: [
|
|
120
|
+
{ type: "heading", text: "Ready when you are", size: "large" },
|
|
121
|
+
{ type: "text", text: "Tell us what you need and we'll reply within one working day." },
|
|
122
|
+
{ type: "button", label: "Get in touch", href: "/", style: "main" },
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
key: "contact",
|
|
130
|
+
name: "Contact",
|
|
131
|
+
description: "A heading, a few words and buttons to write or call",
|
|
132
|
+
block: {
|
|
133
|
+
type: "own",
|
|
134
|
+
layout: "one",
|
|
135
|
+
columns: [
|
|
136
|
+
{
|
|
137
|
+
parts: [
|
|
138
|
+
{ type: "heading", text: "Get in touch", size: "medium" },
|
|
139
|
+
{ type: "text", text: "Write or call during working hours. We reply to every message within one working day." },
|
|
140
|
+
{ type: "button", label: "Email us", href: "mailto:hello@example.com", style: "main" },
|
|
141
|
+
{ type: "button", label: "Call us", href: "tel:+15550100000", style: "quiet" },
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
key: "questions",
|
|
149
|
+
name: "Common questions",
|
|
150
|
+
description: "A heading beside a list of questions and their answers",
|
|
151
|
+
block: {
|
|
152
|
+
type: "own",
|
|
153
|
+
layout: "wide-right",
|
|
154
|
+
columns: [
|
|
155
|
+
{ parts: [{ type: "heading", text: "Common questions", size: "medium" }, { type: "text", text: "Anything else, just ask." }] },
|
|
156
|
+
{
|
|
157
|
+
parts: [
|
|
158
|
+
{
|
|
159
|
+
type: "list",
|
|
160
|
+
style: "bullets",
|
|
161
|
+
items: [
|
|
162
|
+
"How soon can you start? Usually within two weeks of agreeing the work.",
|
|
163
|
+
"Do you give written quotes? Yes, always, before any work starts.",
|
|
164
|
+
"Which areas do you cover? Say here where the business works.",
|
|
165
|
+
"How do I pay? By card or bank transfer, once the work is done.",
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
key: "photo-text",
|
|
175
|
+
name: "Photo and words",
|
|
176
|
+
description: "A photo beside a heading, a few words and a button",
|
|
177
|
+
block: {
|
|
178
|
+
type: "own",
|
|
179
|
+
layout: "two",
|
|
180
|
+
columns: [
|
|
181
|
+
{ parts: [{ type: "photo", image: { src: PHOTO, alt: "" }, shape: "square" }] },
|
|
182
|
+
{
|
|
183
|
+
parts: [
|
|
184
|
+
{ type: "heading", text: "About us", size: "medium" },
|
|
185
|
+
{ type: "text", text: "Who runs the business, how long it has been going and what it cares about." },
|
|
186
|
+
{ type: "button", label: "Meet the team", href: "/", style: "quiet" },
|
|
187
|
+
],
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
key: "stats",
|
|
194
|
+
name: "Facts in a row",
|
|
195
|
+
description: "A few numbers that say what the business has done",
|
|
196
|
+
block: {
|
|
197
|
+
type: "own",
|
|
198
|
+
layout: "one",
|
|
199
|
+
align: "center",
|
|
200
|
+
tone: "soft",
|
|
201
|
+
spacing: "tight",
|
|
202
|
+
columns: [
|
|
203
|
+
{
|
|
204
|
+
parts: [
|
|
205
|
+
{
|
|
206
|
+
type: "stats",
|
|
207
|
+
items: [
|
|
208
|
+
{ value: "Number", label: "years in business" },
|
|
209
|
+
{ value: "Number", label: "clients served" },
|
|
210
|
+
{ value: "Number", label: "days to hear back" },
|
|
211
|
+
],
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
key: "comparison",
|
|
220
|
+
name: "Comparison",
|
|
221
|
+
description: "A heading over a table comparing a few options, one of them picked out",
|
|
222
|
+
block: {
|
|
223
|
+
type: "own",
|
|
224
|
+
layout: "one",
|
|
225
|
+
heading: "Compare the options",
|
|
226
|
+
intro: "Say in a line how the options differ and who each one suits.",
|
|
227
|
+
columns: [
|
|
228
|
+
{
|
|
229
|
+
parts: [
|
|
230
|
+
{
|
|
231
|
+
type: "table",
|
|
232
|
+
columns: ["", "Option one", "Option two", "Option three"],
|
|
233
|
+
rows: [
|
|
234
|
+
{ label: "Price", cells: ["Price", "Price", "Price"] },
|
|
235
|
+
{ label: "Feature one", cells: ["yes", "yes", "yes"] },
|
|
236
|
+
{ label: "Feature two", cells: ["no", "yes", "yes"] },
|
|
237
|
+
{ label: "Feature three", cells: ["no", "no", "yes"] },
|
|
238
|
+
],
|
|
239
|
+
highlight: 2,
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
},
|
|
243
|
+
],
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
key: "features-icons",
|
|
248
|
+
name: "Features with icons",
|
|
249
|
+
description: "Three cards side by side, each an icon, a heading and a few words",
|
|
250
|
+
block: {
|
|
251
|
+
type: "own",
|
|
252
|
+
layout: "three",
|
|
253
|
+
heading: "What you get",
|
|
254
|
+
columns: [
|
|
255
|
+
{ card: true, parts: [{ type: "icon", name: "check", size: "medium" }, { type: "heading", text: "Feature one", size: "small" }, { type: "text", text: "Say in a sentence what this means for the client." }] },
|
|
256
|
+
{ card: true, parts: [{ type: "icon", name: "clock", size: "medium" }, { type: "heading", text: "Feature two", size: "small" }, { type: "text", text: "Say in a sentence what this means for the client." }] },
|
|
257
|
+
{ card: true, parts: [{ type: "icon", name: "chat", size: "medium" }, { type: "heading", text: "Feature three", size: "small" }, { type: "text", text: "Say in a sentence what this means for the client." }] },
|
|
258
|
+
],
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
key: "logo-strip",
|
|
263
|
+
name: "Logo strip",
|
|
264
|
+
description: "A row of the logos of clients, partners or memberships",
|
|
265
|
+
block: {
|
|
266
|
+
type: "own",
|
|
267
|
+
layout: "one",
|
|
268
|
+
align: "center",
|
|
269
|
+
spacing: "tight",
|
|
270
|
+
columns: [
|
|
271
|
+
{
|
|
272
|
+
parts: [
|
|
273
|
+
{
|
|
274
|
+
type: "logos",
|
|
275
|
+
title: "Who we work with",
|
|
276
|
+
images: [
|
|
277
|
+
{ src: LOGO, alt: "Company name" },
|
|
278
|
+
{ src: LOGO, alt: "Company name" },
|
|
279
|
+
{ src: LOGO, alt: "Company name" },
|
|
280
|
+
{ src: LOGO, alt: "Company name" },
|
|
281
|
+
],
|
|
282
|
+
},
|
|
283
|
+
],
|
|
284
|
+
},
|
|
285
|
+
],
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
key: "video",
|
|
290
|
+
name: "Video",
|
|
291
|
+
description: "A heading, a line and a YouTube or Vimeo video under them",
|
|
292
|
+
block: {
|
|
293
|
+
type: "own",
|
|
294
|
+
layout: "one",
|
|
295
|
+
heading: "See how it works",
|
|
296
|
+
intro: "A line on what the video shows.",
|
|
297
|
+
columns: [{ parts: [{ type: "video", title: "Video of how it works" }] }],
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
];
|