create-fornix 0.0.12 → 0.3.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.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/dist/archetypes/agency.json +332 -0
  3. package/dist/archetypes/gym.json +342 -0
  4. package/dist/archetypes/portfolio.json +258 -0
  5. package/dist/archetypes/restaurant.json +318 -0
  6. package/dist/archetypes/saas.json +311 -0
  7. package/dist/blocks/cta-strip/block.json +68 -0
  8. package/dist/blocks/cta-strip/cta-strip.astro +136 -0
  9. package/dist/blocks/cta-strip/default-content.json +9 -0
  10. package/dist/blocks/db-d1/migrations/.gitkeep +0 -0
  11. package/dist/blocks/faq/block.json +62 -0
  12. package/dist/blocks/faq/default-content.json +31 -0
  13. package/dist/blocks/faq/faq.astro +167 -0
  14. package/dist/blocks/features-bento/block.json +66 -0
  15. package/dist/blocks/features-bento/default-content.json +31 -0
  16. package/dist/blocks/features-bento/features-bento.astro +156 -0
  17. package/dist/blocks/features-grid/block.json +64 -0
  18. package/dist/blocks/features-grid/default-content.json +37 -0
  19. package/dist/blocks/features-grid/features-grid.astro +151 -0
  20. package/dist/blocks/footer-columns/block.json +71 -0
  21. package/dist/blocks/footer-columns/default-content.json +32 -0
  22. package/dist/blocks/footer-columns/footer-columns.astro +276 -0
  23. package/dist/blocks/header-sticky/block.json +57 -0
  24. package/dist/blocks/header-sticky/header-sticky.astro +313 -0
  25. package/dist/blocks/hero-media/block.json +89 -0
  26. package/dist/blocks/hero-media/default-content.json +11 -0
  27. package/dist/blocks/hero-media/default-illustration.svg +37 -0
  28. package/dist/blocks/hero-media/hero-media.astro +140 -0
  29. package/dist/blocks/hero-text/block.json +68 -0
  30. package/dist/blocks/hero-text/default-content.json +9 -0
  31. package/dist/blocks/hero-text/hero-text.astro +88 -0
  32. package/dist/blocks/how-it-works/block.json +60 -0
  33. package/dist/blocks/how-it-works/default-content.json +22 -0
  34. package/dist/blocks/how-it-works/how-it-works.astro +177 -0
  35. package/dist/blocks/logo-cloud/block.json +49 -0
  36. package/dist/blocks/logo-cloud/default-content.json +11 -0
  37. package/dist/blocks/logo-cloud/logo-cloud.astro +135 -0
  38. package/dist/blocks/pricing-table/block.json +79 -0
  39. package/dist/blocks/pricing-table/default-content.json +58 -0
  40. package/dist/blocks/pricing-table/pricing-table.astro +240 -0
  41. package/dist/blocks/stats-strip/block.json +43 -0
  42. package/dist/blocks/stats-strip/default-content.json +8 -0
  43. package/dist/blocks/stats-strip/stats-strip.astro +106 -0
  44. package/dist/blocks/testimonials-grid/block.json +68 -0
  45. package/dist/blocks/testimonials-grid/default-content.json +48 -0
  46. package/dist/blocks/testimonials-grid/testimonials-grid.astro +199 -0
  47. package/dist/cli.js +1685 -0
  48. package/dist/cli.js.map +1 -0
  49. package/dist/index.js +1126 -5894
  50. package/dist/index.js.map +1 -1
  51. package/dist/palettes/aurora.json +33 -0
  52. package/dist/palettes/ember.json +33 -0
  53. package/dist/palettes/fraktur.json +33 -0
  54. package/dist/palettes/obsidian.json +33 -0
  55. package/dist/palettes/paper.json +33 -0
  56. package/dist/palettes/sage.json +33 -0
  57. package/dist/palettes/terracotta.json +33 -0
  58. package/dist/primitives/Badge.astro +63 -0
  59. package/dist/primitives/Button.astro +136 -0
  60. package/dist/primitives/Card.astro +87 -0
  61. package/dist/primitives/Container.astro +60 -0
  62. package/dist/primitives/Eyebrow.astro +57 -0
  63. package/dist/primitives/Headline.astro +74 -0
  64. package/dist/primitives/Icon.astro +110 -0
  65. package/dist/primitives/Section.astro +71 -0
  66. package/dist/templates/astro.config.mjs.template +17 -0
  67. package/dist/templates/content.config.ts.template +11 -0
  68. package/dist/templates/gitignore.template +6 -0
  69. package/dist/templates/global.css.template +32 -0
  70. package/dist/templates/index.astro.template +7 -0
  71. package/dist/templates/layout.astro.template +43 -0
  72. package/dist/templates/netlify.toml.template +16 -0
  73. package/dist/templates/package.json.template +16 -0
  74. package/dist/templates/site.config.ts.template +39 -0
  75. package/dist/templates/tsconfig.json.template +5 -0
  76. package/dist/templates/vercel.json.template +8 -0
  77. package/dist/templates/wrangler.json.template +6 -0
  78. package/package.json +42 -19
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 kama kama
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,332 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "name": "agency",
4
+ "displayName": "Agency",
5
+ "description": "Branding & product studio. Light, editorial palette. Home + Work + About + Contact, with case-study bento on Work and FAQ on Contact.",
6
+ "palette": "paper",
7
+
8
+ "site": {
9
+ "name": "Atelier North",
10
+ "tagline": "A branding & product studio for companies that care about details.",
11
+ "logo": { "type": "monogram", "text": "AN" },
12
+ "nav": [
13
+ { "label": "Work", "href": "/work" },
14
+ { "label": "About", "href": "/about" },
15
+ { "label": "Journal", "href": "/journal" },
16
+ { "label": "Contact", "href": "/contact" }
17
+ ],
18
+ "ctaPrimary": { "text": "Start a project", "href": "/contact" },
19
+ "ctaSecondary": { "text": "See our work", "href": "/work" },
20
+ "social": {
21
+ "twitter": "ateliernorth",
22
+ "instagram": "atelier.north",
23
+ "linkedin": "company/atelier-north"
24
+ },
25
+ "contact": {
26
+ "email": "hello@ateliernorth.studio",
27
+ "phone": "+46 8 555 0144",
28
+ "address": "Krukmakargatan 22, 118 51 Stockholm"
29
+ },
30
+ "legal": {
31
+ "copyright": "© 2026 Atelier North AB",
32
+ "privacyHref": "/privacy",
33
+ "termsHref": "/terms"
34
+ },
35
+ "meta": {
36
+ "twitterHandle": "ateliernorth"
37
+ }
38
+ },
39
+
40
+ "pages": [
41
+ {
42
+ "slug": "",
43
+ "title": "Atelier North — Branding & product studio, Stockholm",
44
+ "description": "We help category-defining companies find their voice, build their identity systems, and ship products that feel like the brand looks.",
45
+ "blocks": [
46
+ { "name": "header-sticky" },
47
+ { "name": "hero-media" },
48
+ { "name": "logo-cloud" },
49
+ { "name": "features-grid" },
50
+ { "name": "how-it-works" },
51
+ { "name": "testimonials-grid" },
52
+ { "name": "cta-strip" },
53
+ { "name": "footer-columns" }
54
+ ]
55
+ },
56
+ {
57
+ "slug": "work",
58
+ "title": "Work — Atelier North",
59
+ "description": "Selected projects across identity, product, and packaging. We work on a small number of engagements per year so each gets the room it needs.",
60
+ "blocks": [
61
+ { "name": "header-sticky" },
62
+ { "name": "features-bento" },
63
+ { "name": "testimonials-grid" },
64
+ { "name": "footer-columns" }
65
+ ]
66
+ },
67
+ {
68
+ "slug": "about",
69
+ "title": "About — Atelier North",
70
+ "description": "Eight people in a converted bakery in Södermalm. What we believe and how we work.",
71
+ "blocks": [
72
+ { "name": "header-sticky" },
73
+ { "name": "hero-text" },
74
+ { "name": "stats-strip" },
75
+ { "name": "footer-columns" }
76
+ ]
77
+ },
78
+ {
79
+ "slug": "contact",
80
+ "title": "Contact — Atelier North",
81
+ "description": "Start a conversation. We reply within one business day.",
82
+ "blocks": [
83
+ { "name": "header-sticky" },
84
+ { "name": "faq" },
85
+ { "name": "cta-strip" },
86
+ { "name": "footer-columns" }
87
+ ]
88
+ }
89
+ ],
90
+
91
+ "content": {
92
+ "hero-media": {
93
+ "eyebrow": "Studio",
94
+ "headline": "Identity, product, and packaging — for companies that read the spec sheet",
95
+ "subheadline": "Atelier North is a branding & product studio in Stockholm. We take on six engagements a year and live inside each one.",
96
+ "primaryCtaText": "Start a project",
97
+ "primaryCtaHref": "/contact",
98
+ "secondaryCtaText": "See our work",
99
+ "secondaryCtaHref": "/work",
100
+ "mediaAlt": "Brand identity system laid out across stationery, packaging, and a product UI screen.",
101
+ "mediaPlacement": "right"
102
+ },
103
+
104
+ "logo-cloud": {
105
+ "label": "Selected clients",
106
+ "logos": [
107
+ { "name": "Lexura" },
108
+ { "name": "Norrbro" },
109
+ { "name": "Klocka" },
110
+ { "name": "Föregång" },
111
+ { "name": "Vault HQ" },
112
+ { "name": "Bloom Studio" }
113
+ ]
114
+ },
115
+
116
+ "features-grid": {
117
+ "eyebrow": "What we do",
118
+ "headline": "Three disciplines, one studio",
119
+ "subheadline": "We don't pretend to do everything. We do these three things, and we do them with the same hands that started them.",
120
+ "features": [
121
+ {
122
+ "icon": "star",
123
+ "title": "Brand identity",
124
+ "description": "Naming, logotype, type system, color, motion principles, and the brand guide that makes it survive contact with reality."
125
+ },
126
+ {
127
+ "icon": "external-link",
128
+ "title": "Product design",
129
+ "description": "From early product thinking to shipping interfaces. We design in code with engineering, not over a wall."
130
+ },
131
+ {
132
+ "icon": "check",
133
+ "title": "Packaging & print",
134
+ "description": "Physical surfaces still matter. We design unboxings, business systems, books, and the occasional pop-up shop."
135
+ },
136
+ {
137
+ "icon": "arrow-right",
138
+ "title": "Type & wordmark",
139
+ "description": "Custom type design when off-the-shelf doesn't fit. Wordmarks drawn from scratch, not modified Helvetica."
140
+ },
141
+ {
142
+ "icon": "mail",
143
+ "title": "Editorial direction",
144
+ "description": "Voice systems, content principles, launch comms. The words a brand uses are part of the identity."
145
+ },
146
+ {
147
+ "icon": "play",
148
+ "title": "Motion & video",
149
+ "description": "Brand motion principles, launch films, and the short loops that make a product page feel alive."
150
+ }
151
+ ]
152
+ },
153
+
154
+ "how-it-works": {
155
+ "eyebrow": "How we work",
156
+ "headline": "A six-month engagement, run like a real partnership",
157
+ "subheadline": "We embed with your team, ship in milestones, and hand off a brand that your in-house team can extend without us.",
158
+ "steps": [
159
+ {
160
+ "icon": "external-link",
161
+ "title": "1. Listen",
162
+ "description": "Three weeks of conversations with founders, customers, and the team. We map what the brand is, what it isn't, and what it needs to become."
163
+ },
164
+ {
165
+ "icon": "check",
166
+ "title": "2. Make",
167
+ "description": "Four months of focused design work. Weekly milestones, monthly reviews, and a shared Figma where you watch the brand build in real time."
168
+ },
169
+ {
170
+ "icon": "arrow-right",
171
+ "title": "3. Hand off",
172
+ "description": "A brand guide your team actually reads, a working component library, and three weeks of paired sessions to make sure it lives after we're gone."
173
+ }
174
+ ]
175
+ },
176
+
177
+ "testimonials-grid": {
178
+ "eyebrow": "What clients say",
179
+ "headline": "Long engagements, lasting relationships",
180
+ "subheadline": "Selected words from people we've spent six months with.",
181
+ "items": [
182
+ {
183
+ "quote": "Atelier North didn't sell us a moodboard. They moved into our Slack for six months and came out the other side with a brand we still use every part of.",
184
+ "author": "Maya Patel",
185
+ "role": "VP Eng",
186
+ "company": "Lexura",
187
+ "rating": 5
188
+ },
189
+ {
190
+ "quote": "The brand guide is the only one I've ever seen designers actually read. Everything ladders back to a clear principle.",
191
+ "author": "Anya Kowalski",
192
+ "role": "Co-founder",
193
+ "company": "Vault HQ",
194
+ "rating": 5
195
+ },
196
+ {
197
+ "quote": "Their packaging sketches showed up with the production tolerances already accounted for. That's the difference between studios that ship and studios that pitch.",
198
+ "author": "Marcus Lee",
199
+ "role": "Founder",
200
+ "company": "Iron Forge",
201
+ "rating": 5
202
+ }
203
+ ]
204
+ },
205
+
206
+ "cta-strip": {
207
+ "headline": "Have a project in mind?",
208
+ "subheadline": "We're taking on two more engagements for late 2026. The earlier you write, the better the chance.",
209
+ "primaryCtaText": "Start a conversation",
210
+ "primaryCtaHref": "/contact",
211
+ "secondaryCtaText": "See selected work",
212
+ "secondaryCtaHref": "/work",
213
+ "variant": "accent"
214
+ },
215
+
216
+ "footer-columns": {
217
+ "tagline": "A branding & product studio in Stockholm. Six engagements a year. No retainers.",
218
+ "columns": [
219
+ {
220
+ "title": "Studio",
221
+ "links": [
222
+ { "label": "Work", "href": "/work" },
223
+ { "label": "About", "href": "/about" },
224
+ { "label": "Journal", "href": "/journal" },
225
+ { "label": "Contact", "href": "/contact" }
226
+ ]
227
+ },
228
+ {
229
+ "title": "Services",
230
+ "links": [
231
+ { "label": "Brand identity", "href": "/services/identity" },
232
+ { "label": "Product design", "href": "/services/product" },
233
+ { "label": "Packaging", "href": "/services/packaging" },
234
+ { "label": "Type design", "href": "/services/type" }
235
+ ]
236
+ },
237
+ {
238
+ "title": "Visit",
239
+ "links": [
240
+ { "label": "Krukmakargatan 22", "href": "https://maps.google.com/?q=Krukmakargatan+22+Stockholm" },
241
+ { "label": "Stockholm, Sweden", "href": "/about" },
242
+ { "label": "hello@ateliernorth.studio", "href": "mailto:hello@ateliernorth.studio" },
243
+ { "label": "+46 8 555 0144", "href": "tel:+4685550144" }
244
+ ]
245
+ }
246
+ ]
247
+ },
248
+
249
+ "features-bento": {
250
+ "eyebrow": "Selected work",
251
+ "headline": "A small studio's case files",
252
+ "subheadline": "We publish in detail, not in volume. Each case study is a real engagement, not a moodboard.",
253
+ "features": [
254
+ {
255
+ "icon": "star",
256
+ "title": "Lexura — full brand & product system",
257
+ "description": "Six-month engagement: naming, identity, type, marketing site, and a 60-component product library. Lexura raised their Series A two weeks after launch.",
258
+ "span": "large"
259
+ },
260
+ {
261
+ "icon": "check",
262
+ "title": "Norrbro — packaging",
263
+ "description": "Coffee subscription. 14 SKU packaging system that survived a 3× catalog expansion.",
264
+ "span": "default"
265
+ },
266
+ {
267
+ "icon": "external-link",
268
+ "title": "Klocka — type & wordmark",
269
+ "description": "Custom display face for a Swedish watchmaker. Drawn from a 1958 reference, modernized for screens.",
270
+ "span": "default"
271
+ },
272
+ {
273
+ "icon": "arrow-right",
274
+ "title": "Föregång — editorial system",
275
+ "description": "Quarterly print magazine. Grid, type pairings, contributor voice guidelines, and a website that holds its weight against print.",
276
+ "span": "large"
277
+ }
278
+ ]
279
+ },
280
+
281
+ "hero-text": {
282
+ "eyebrow": "About the studio",
283
+ "headline": "Eight people. A converted bakery. Six engagements a year.",
284
+ "subheadline": "We started Atelier North because we missed working in studios where designers and engineers sat in the same room. So we built one.",
285
+ "primaryCtaText": "Read our journal",
286
+ "primaryCtaHref": "/journal",
287
+ "secondaryCtaText": "Get in touch",
288
+ "secondaryCtaHref": "/contact"
289
+ },
290
+
291
+ "stats-strip": {
292
+ "stats": [
293
+ { "value": "8", "label": "People in the studio", "accent": true },
294
+ { "value": "6", "label": "Engagements a year" },
295
+ { "value": "12", "label": "Years in business" },
296
+ { "value": "94", "label": "Projects shipped" }
297
+ ]
298
+ },
299
+
300
+ "faq": {
301
+ "eyebrow": "Before we talk",
302
+ "headline": "Questions clients ask in the first email",
303
+ "subheadline": "If yours isn't here, write anyway — we read everything.",
304
+ "items": [
305
+ {
306
+ "question": "How long is a typical engagement?",
307
+ "answer": "Six months for a full brand + product system. Shorter for a focused project (packaging, identity refresh, a single product surface) — usually 8–12 weeks."
308
+ },
309
+ {
310
+ "question": "What does it cost?",
311
+ "answer": "Full engagements start at €120k. Single-discipline projects start around €35k. We send a real budget after the first conversation, not a tier sheet."
312
+ },
313
+ {
314
+ "question": "Do you work with early-stage companies?",
315
+ "answer": "Yes — we take on two pre-seed engagements a year at a reduced rate, often in exchange for a small equity slice. Ask if that's interesting."
316
+ },
317
+ {
318
+ "question": "Can you start next week?",
319
+ "answer": "Almost never. Our calendar is usually booked 4–6 months out. The earlier you write, the better the chance of fitting your timeline."
320
+ },
321
+ {
322
+ "question": "Do you offer retainers?",
323
+ "answer": "No. Retainers reward us for being slow. We work in fixed-scope engagements and recommend an in-house hire when you need ongoing design."
324
+ },
325
+ {
326
+ "question": "Where are you based?",
327
+ "answer": "Stockholm. We work remotely with clients across Europe and North America, and travel for kickoff and milestone weeks."
328
+ }
329
+ ]
330
+ }
331
+ }
332
+ }