kofi-stack-template-generator 2.1.49 → 2.1.51

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 (28) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/dist/index.js +106 -35
  3. package/package.json +2 -2
  4. package/src/templates.generated.ts +25 -21
  5. package/templates/marketing/nextjs/src/app/globals.css.hbs +495 -10
  6. package/templates/marketing/payload/public/favicon.ico +0 -0
  7. package/templates/marketing/payload/public/favicon.svg +6 -0
  8. package/templates/marketing/payload/public/logo-light.svg +6 -0
  9. package/templates/marketing/payload/public/logo.svg +6 -0
  10. package/templates/marketing/payload/src/Footer/Component.client.tsx +1 -1
  11. package/templates/marketing/payload/src/Footer/config.ts +1 -1
  12. package/templates/marketing/payload/src/Header/Component.client.tsx +1 -1
  13. package/templates/marketing/payload/src/Header/MobileMenu/index.tsx +1 -1
  14. package/templates/marketing/payload/src/app/(docs)/docs/[[...slug]]/page.tsx +6 -6
  15. package/templates/marketing/payload/src/app/(docs)/docs/layout.tsx +1 -1
  16. package/templates/marketing/payload/src/app/(docs)/layout.tsx +3 -3
  17. package/templates/marketing/payload/src/app/(frontend)/api/newsletter/route.ts +15 -15
  18. package/templates/marketing/payload/src/app/(frontend)/globals.css.hbs +1380 -0
  19. package/templates/marketing/payload/src/app/(frontend)/layout.tsx +17 -17
  20. package/templates/marketing/payload/src/app/(frontend)/posts/[slug]/BlogPostContent.tsx +5 -5
  21. package/templates/marketing/payload/src/app/(frontend)/posts/page.tsx +2 -2
  22. package/templates/marketing/payload/src/components/JsonLd/index.tsx +19 -19
  23. package/templates/marketing/payload/src/components/Logo/Logo.tsx +1 -1
  24. package/templates/marketing/payload/src/components/TableOfContents/index.tsx +3 -3
  25. package/templates/marketing/payload/src/heros/ProductShowcase/AnimatedMockup.tsx +3 -3
  26. package/templates/marketing/payload/src/utilities/generateMeta.ts +16 -16
  27. package/templates/marketing/payload/src/utilities/mergeOpenGraph.ts +4 -4
  28. package/templates/marketing/payload/src/app/(frontend)/globals.css +0 -1019
@@ -1,18 +1,503 @@
1
1
  @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+
4
+ @custom-variant dark (&:is(.dark *));
5
+
6
+ @theme inline {
7
+ /* Colors */
8
+ --color-background: var(--background);
9
+ --color-foreground: var(--foreground);
10
+
11
+ --color-card: var(--card);
12
+ --color-card-foreground: var(--card-foreground);
13
+
14
+ --color-popover: var(--popover);
15
+ --color-popover-foreground: var(--popover-foreground);
16
+
17
+ --color-primary: var(--primary);
18
+ --color-primary-foreground: var(--primary-foreground);
19
+
20
+ --color-secondary: var(--secondary);
21
+ --color-secondary-foreground: var(--secondary-foreground);
22
+
23
+ --color-muted: var(--muted);
24
+ --color-muted-foreground: var(--muted-foreground);
25
+
26
+ --color-accent: var(--accent);
27
+ --color-accent-foreground: var(--accent-foreground);
28
+
29
+ --color-destructive: var(--destructive);
30
+
31
+ --color-border: var(--border);
32
+ --color-input: var(--input);
33
+ --color-ring: var(--ring);
34
+
35
+ --color-chart-1: var(--chart-1);
36
+ --color-chart-2: var(--chart-2);
37
+ --color-chart-3: var(--chart-3);
38
+ --color-chart-4: var(--chart-4);
39
+ --color-chart-5: var(--chart-5);
40
+
41
+ /* Border radius */
42
+ --radius-sm: calc(var(--radius) - 4px);
43
+ --radius-md: calc(var(--radius) - 2px);
44
+ --radius-lg: var(--radius);
45
+ --radius-xl: calc(var(--radius) + 4px);
46
+
47
+ /* Fonts */
48
+ --font-sans: var(--font-geist-sans), system-ui, sans-serif;
49
+ --font-mono: var(--font-geist-mono), monospace;
50
+
51
+ /* Container */
52
+ --container-sm: 40rem;
53
+ --container-md: 48rem;
54
+ --container-lg: 64rem;
55
+ --container-xl: 80rem;
56
+ --container-2xl: 96rem;
57
+
58
+ /* Animations */
59
+ --animate-accordion-down: accordion-down 0.2s ease-out;
60
+ --animate-accordion-up: accordion-up 0.2s ease-out;
61
+ }
62
+
63
+ @keyframes accordion-down {
64
+ from {
65
+ height: 0;
66
+ }
67
+ to {
68
+ height: var(--radix-accordion-content-height);
69
+ }
70
+ }
71
+
72
+ @keyframes accordion-up {
73
+ from {
74
+ height: var(--radix-accordion-content-height);
75
+ }
76
+ to {
77
+ height: 0;
78
+ }
79
+ }
80
+
81
+ /* ========================================
82
+ THEME COLOR VARIABLES
83
+ ======================================== */
2
84
 
3
85
  :root {
4
- --background: #ffffff;
5
- --foreground: #171717;
86
+ --radius: 0.625rem;
87
+ --background: oklch(1 0 0);
88
+ --foreground: oklch(0.145 0 0);
89
+ --card: oklch(1 0 0);
90
+ --card-foreground: oklch(0.145 0 0);
91
+ --popover: oklch(1 0 0);
92
+ --popover-foreground: oklch(0.145 0 0);
93
+ --secondary: oklch(0.97 0 0);
94
+ --secondary-foreground: oklch(0.205 0 0);
95
+ --muted: oklch(0.97 0 0);
96
+ --muted-foreground: oklch(0.556 0 0);
97
+ --accent: oklch(0.97 0 0);
98
+ --accent-foreground: oklch(0.205 0 0);
99
+ --destructive: oklch(0.577 0.245 27.325);
100
+ --border: oklch(0.922 0 0);
101
+ --input: oklch(0.922 0 0);
102
+
103
+ {{#if (eq shadcn.themeColor "neutral")}}
104
+ --primary: oklch(0.205 0 0);
105
+ --primary-foreground: oklch(0.985 0 0);
106
+ --ring: oklch(0.708 0 0);
107
+ --chart-1: oklch(0.646 0.222 41.116);
108
+ --chart-2: oklch(0.6 0.118 184.704);
109
+ --chart-3: oklch(0.398 0.07 227.392);
110
+ --chart-4: oklch(0.828 0.189 84.429);
111
+ --chart-5: oklch(0.769 0.188 70.08);
112
+ {{else if (eq shadcn.themeColor "blue")}}
113
+ --primary: oklch(0.546 0.245 262.881);
114
+ --primary-foreground: oklch(0.985 0.002 247.858);
115
+ --ring: oklch(0.546 0.245 262.881);
116
+ --chart-1: oklch(0.546 0.245 262.881);
117
+ --chart-2: oklch(0.6 0.118 184.704);
118
+ --chart-3: oklch(0.398 0.07 227.392);
119
+ --chart-4: oklch(0.828 0.189 84.429);
120
+ --chart-5: oklch(0.769 0.188 70.08);
121
+ {{else if (eq shadcn.themeColor "green")}}
122
+ --primary: oklch(0.596 0.145 163.225);
123
+ --primary-foreground: oklch(0.982 0.018 155.826);
124
+ --ring: oklch(0.596 0.145 163.225);
125
+ --chart-1: oklch(0.596 0.145 163.225);
126
+ --chart-2: oklch(0.6 0.118 184.704);
127
+ --chart-3: oklch(0.398 0.07 227.392);
128
+ --chart-4: oklch(0.828 0.189 84.429);
129
+ --chart-5: oklch(0.769 0.188 70.08);
130
+ {{else if (eq shadcn.themeColor "purple")}}
131
+ --primary: oklch(0.627 0.265 303.9);
132
+ --primary-foreground: oklch(0.985 0 0);
133
+ --ring: oklch(0.627 0.265 303.9);
134
+ --chart-1: oklch(0.627 0.265 303.9);
135
+ --chart-2: oklch(0.6 0.118 184.704);
136
+ --chart-3: oklch(0.398 0.07 227.392);
137
+ --chart-4: oklch(0.828 0.189 84.429);
138
+ --chart-5: oklch(0.769 0.188 70.08);
139
+ {{else if (eq shadcn.themeColor "red")}}
140
+ --primary: oklch(0.637 0.237 25.331);
141
+ --primary-foreground: oklch(0.985 0 0);
142
+ --ring: oklch(0.637 0.237 25.331);
143
+ --chart-1: oklch(0.637 0.237 25.331);
144
+ --chart-2: oklch(0.6 0.118 184.704);
145
+ --chart-3: oklch(0.398 0.07 227.392);
146
+ --chart-4: oklch(0.828 0.189 84.429);
147
+ --chart-5: oklch(0.769 0.188 70.08);
148
+ {{else if (eq shadcn.themeColor "orange")}}
149
+ --primary: oklch(0.705 0.191 47.604);
150
+ --primary-foreground: oklch(0.216 0.006 56.043);
151
+ --ring: oklch(0.705 0.191 47.604);
152
+ --chart-1: oklch(0.705 0.191 47.604);
153
+ --chart-2: oklch(0.6 0.118 184.704);
154
+ --chart-3: oklch(0.398 0.07 227.392);
155
+ --chart-4: oklch(0.828 0.189 84.429);
156
+ --chart-5: oklch(0.769 0.188 70.08);
157
+ {{else if (eq shadcn.themeColor "amber")}}
158
+ --primary: oklch(0.769 0.188 70.08);
159
+ --primary-foreground: oklch(0.216 0.006 56.043);
160
+ --ring: oklch(0.769 0.188 70.08);
161
+ --chart-1: oklch(0.769 0.188 70.08);
162
+ --chart-2: oklch(0.6 0.118 184.704);
163
+ --chart-3: oklch(0.398 0.07 227.392);
164
+ --chart-4: oklch(0.828 0.189 84.429);
165
+ --chart-5: oklch(0.646 0.222 41.116);
166
+ {{else if (eq shadcn.themeColor "cyan")}}
167
+ --primary: oklch(0.715 0.143 215.221);
168
+ --primary-foreground: oklch(0.216 0.006 56.043);
169
+ --ring: oklch(0.715 0.143 215.221);
170
+ --chart-1: oklch(0.715 0.143 215.221);
171
+ --chart-2: oklch(0.6 0.118 184.704);
172
+ --chart-3: oklch(0.398 0.07 227.392);
173
+ --chart-4: oklch(0.828 0.189 84.429);
174
+ --chart-5: oklch(0.769 0.188 70.08);
175
+ {{else if (eq shadcn.themeColor "emerald")}}
176
+ --primary: oklch(0.696 0.17 162.48);
177
+ --primary-foreground: oklch(0.985 0 0);
178
+ --ring: oklch(0.696 0.17 162.48);
179
+ --chart-1: oklch(0.696 0.17 162.48);
180
+ --chart-2: oklch(0.6 0.118 184.704);
181
+ --chart-3: oklch(0.398 0.07 227.392);
182
+ --chart-4: oklch(0.828 0.189 84.429);
183
+ --chart-5: oklch(0.769 0.188 70.08);
184
+ {{else if (eq shadcn.themeColor "fuchsia")}}
185
+ --primary: oklch(0.667 0.295 322.15);
186
+ --primary-foreground: oklch(0.985 0 0);
187
+ --ring: oklch(0.667 0.295 322.15);
188
+ --chart-1: oklch(0.667 0.295 322.15);
189
+ --chart-2: oklch(0.6 0.118 184.704);
190
+ --chart-3: oklch(0.398 0.07 227.392);
191
+ --chart-4: oklch(0.828 0.189 84.429);
192
+ --chart-5: oklch(0.769 0.188 70.08);
193
+ {{else if (eq shadcn.themeColor "indigo")}}
194
+ --primary: oklch(0.585 0.233 277.117);
195
+ --primary-foreground: oklch(0.985 0 0);
196
+ --ring: oklch(0.585 0.233 277.117);
197
+ --chart-1: oklch(0.585 0.233 277.117);
198
+ --chart-2: oklch(0.6 0.118 184.704);
199
+ --chart-3: oklch(0.398 0.07 227.392);
200
+ --chart-4: oklch(0.828 0.189 84.429);
201
+ --chart-5: oklch(0.769 0.188 70.08);
202
+ {{else if (eq shadcn.themeColor "lime")}}
203
+ --primary: oklch(0.768 0.233 130.85);
204
+ --primary-foreground: oklch(0.216 0.006 56.043);
205
+ --ring: oklch(0.768 0.233 130.85);
206
+ --chart-1: oklch(0.768 0.233 130.85);
207
+ --chart-2: oklch(0.6 0.118 184.704);
208
+ --chart-3: oklch(0.398 0.07 227.392);
209
+ --chart-4: oklch(0.828 0.189 84.429);
210
+ --chart-5: oklch(0.769 0.188 70.08);
211
+ {{else if (eq shadcn.themeColor "pink")}}
212
+ --primary: oklch(0.718 0.202 349.761);
213
+ --primary-foreground: oklch(0.985 0 0);
214
+ --ring: oklch(0.718 0.202 349.761);
215
+ --chart-1: oklch(0.718 0.202 349.761);
216
+ --chart-2: oklch(0.6 0.118 184.704);
217
+ --chart-3: oklch(0.398 0.07 227.392);
218
+ --chart-4: oklch(0.828 0.189 84.429);
219
+ --chart-5: oklch(0.769 0.188 70.08);
220
+ {{else if (eq shadcn.themeColor "rose")}}
221
+ --primary: oklch(0.645 0.246 16.439);
222
+ --primary-foreground: oklch(0.985 0 0);
223
+ --ring: oklch(0.645 0.246 16.439);
224
+ --chart-1: oklch(0.645 0.246 16.439);
225
+ --chart-2: oklch(0.6 0.118 184.704);
226
+ --chart-3: oklch(0.398 0.07 227.392);
227
+ --chart-4: oklch(0.828 0.189 84.429);
228
+ --chart-5: oklch(0.769 0.188 70.08);
229
+ {{else if (eq shadcn.themeColor "sky")}}
230
+ --primary: oklch(0.685 0.169 237.323);
231
+ --primary-foreground: oklch(0.985 0 0);
232
+ --ring: oklch(0.685 0.169 237.323);
233
+ --chart-1: oklch(0.685 0.169 237.323);
234
+ --chart-2: oklch(0.6 0.118 184.704);
235
+ --chart-3: oklch(0.398 0.07 227.392);
236
+ --chart-4: oklch(0.828 0.189 84.429);
237
+ --chart-5: oklch(0.769 0.188 70.08);
238
+ {{else if (eq shadcn.themeColor "teal")}}
239
+ --primary: oklch(0.704 0.14 182.503);
240
+ --primary-foreground: oklch(0.985 0 0);
241
+ --ring: oklch(0.704 0.14 182.503);
242
+ --chart-1: oklch(0.704 0.14 182.503);
243
+ --chart-2: oklch(0.6 0.118 184.704);
244
+ --chart-3: oklch(0.398 0.07 227.392);
245
+ --chart-4: oklch(0.828 0.189 84.429);
246
+ --chart-5: oklch(0.769 0.188 70.08);
247
+ {{else if (eq shadcn.themeColor "violet")}}
248
+ --primary: oklch(0.606 0.25 292.717);
249
+ --primary-foreground: oklch(0.985 0 0);
250
+ --ring: oklch(0.606 0.25 292.717);
251
+ --chart-1: oklch(0.606 0.25 292.717);
252
+ --chart-2: oklch(0.6 0.118 184.704);
253
+ --chart-3: oklch(0.398 0.07 227.392);
254
+ --chart-4: oklch(0.828 0.189 84.429);
255
+ --chart-5: oklch(0.769 0.188 70.08);
256
+ {{else if (eq shadcn.themeColor "yellow")}}
257
+ --primary: oklch(0.795 0.184 86.047);
258
+ --primary-foreground: oklch(0.216 0.006 56.043);
259
+ --ring: oklch(0.795 0.184 86.047);
260
+ --chart-1: oklch(0.795 0.184 86.047);
261
+ --chart-2: oklch(0.6 0.118 184.704);
262
+ --chart-3: oklch(0.398 0.07 227.392);
263
+ --chart-4: oklch(0.646 0.222 41.116);
264
+ --chart-5: oklch(0.769 0.188 70.08);
265
+ {{else}}
266
+ --primary: oklch(0.205 0 0);
267
+ --primary-foreground: oklch(0.985 0 0);
268
+ --ring: oklch(0.708 0 0);
269
+ --chart-1: oklch(0.646 0.222 41.116);
270
+ --chart-2: oklch(0.6 0.118 184.704);
271
+ --chart-3: oklch(0.398 0.07 227.392);
272
+ --chart-4: oklch(0.828 0.189 84.429);
273
+ --chart-5: oklch(0.769 0.188 70.08);
274
+ {{/if}}
275
+ }
276
+
277
+ .dark {
278
+ --background: oklch(0.145 0 0);
279
+ --foreground: oklch(0.985 0 0);
280
+ --card: oklch(0.205 0 0);
281
+ --card-foreground: oklch(0.985 0 0);
282
+ --popover: oklch(0.269 0 0);
283
+ --popover-foreground: oklch(0.985 0 0);
284
+ --secondary: oklch(0.269 0 0);
285
+ --secondary-foreground: oklch(0.985 0 0);
286
+ --muted: oklch(0.269 0 0);
287
+ --muted-foreground: oklch(0.708 0 0);
288
+ --accent: oklch(0.371 0 0);
289
+ --accent-foreground: oklch(0.985 0 0);
290
+ --destructive: oklch(0.704 0.191 22.216);
291
+ --border: oklch(1 0 0 / 10%);
292
+ --input: oklch(1 0 0 / 15%);
293
+
294
+ {{#if (eq shadcn.themeColor "neutral")}}
295
+ --primary: oklch(0.922 0 0);
296
+ --primary-foreground: oklch(0.205 0 0);
297
+ --ring: oklch(0.556 0 0);
298
+ --chart-1: oklch(0.488 0.243 264.376);
299
+ --chart-2: oklch(0.696 0.17 162.48);
300
+ --chart-3: oklch(0.769 0.188 70.08);
301
+ --chart-4: oklch(0.627 0.265 303.9);
302
+ --chart-5: oklch(0.645 0.246 16.439);
303
+ {{else if (eq shadcn.themeColor "blue")}}
304
+ --primary: oklch(0.623 0.214 262.881);
305
+ --primary-foreground: oklch(0.273 0.033 256.848);
306
+ --ring: oklch(0.623 0.214 262.881);
307
+ --chart-1: oklch(0.623 0.214 262.881);
308
+ --chart-2: oklch(0.696 0.17 162.48);
309
+ --chart-3: oklch(0.769 0.188 70.08);
310
+ --chart-4: oklch(0.627 0.265 303.9);
311
+ --chart-5: oklch(0.645 0.246 16.439);
312
+ {{else if (eq shadcn.themeColor "green")}}
313
+ --primary: oklch(0.696 0.17 162.48);
314
+ --primary-foreground: oklch(0.15 0 0);
315
+ --ring: oklch(0.696 0.17 162.48);
316
+ --chart-1: oklch(0.696 0.17 162.48);
317
+ --chart-2: oklch(0.488 0.243 264.376);
318
+ --chart-3: oklch(0.769 0.188 70.08);
319
+ --chart-4: oklch(0.627 0.265 303.9);
320
+ --chart-5: oklch(0.645 0.246 16.439);
321
+ {{else if (eq shadcn.themeColor "purple")}}
322
+ --primary: oklch(0.714 0.203 305.504);
323
+ --primary-foreground: oklch(0.15 0 0);
324
+ --ring: oklch(0.714 0.203 305.504);
325
+ --chart-1: oklch(0.714 0.203 305.504);
326
+ --chart-2: oklch(0.696 0.17 162.48);
327
+ --chart-3: oklch(0.769 0.188 70.08);
328
+ --chart-4: oklch(0.488 0.243 264.376);
329
+ --chart-5: oklch(0.645 0.246 16.439);
330
+ {{else if (eq shadcn.themeColor "red")}}
331
+ --primary: oklch(0.704 0.191 22.216);
332
+ --primary-foreground: oklch(0.15 0 0);
333
+ --ring: oklch(0.704 0.191 22.216);
334
+ --chart-1: oklch(0.704 0.191 22.216);
335
+ --chart-2: oklch(0.696 0.17 162.48);
336
+ --chart-3: oklch(0.769 0.188 70.08);
337
+ --chart-4: oklch(0.627 0.265 303.9);
338
+ --chart-5: oklch(0.488 0.243 264.376);
339
+ {{else if (eq shadcn.themeColor "orange")}}
340
+ --primary: oklch(0.792 0.17 52.615);
341
+ --primary-foreground: oklch(0.15 0 0);
342
+ --ring: oklch(0.792 0.17 52.615);
343
+ --chart-1: oklch(0.792 0.17 52.615);
344
+ --chart-2: oklch(0.696 0.17 162.48);
345
+ --chart-3: oklch(0.769 0.188 70.08);
346
+ --chart-4: oklch(0.627 0.265 303.9);
347
+ --chart-5: oklch(0.645 0.246 16.439);
348
+ {{else if (eq shadcn.themeColor "amber")}}
349
+ --primary: oklch(0.828 0.189 84.429);
350
+ --primary-foreground: oklch(0.15 0 0);
351
+ --ring: oklch(0.828 0.189 84.429);
352
+ --chart-1: oklch(0.828 0.189 84.429);
353
+ --chart-2: oklch(0.696 0.17 162.48);
354
+ --chart-3: oklch(0.488 0.243 264.376);
355
+ --chart-4: oklch(0.627 0.265 303.9);
356
+ --chart-5: oklch(0.645 0.246 16.439);
357
+ {{else if (eq shadcn.themeColor "cyan")}}
358
+ --primary: oklch(0.789 0.154 211.53);
359
+ --primary-foreground: oklch(0.15 0 0);
360
+ --ring: oklch(0.789 0.154 211.53);
361
+ --chart-1: oklch(0.789 0.154 211.53);
362
+ --chart-2: oklch(0.696 0.17 162.48);
363
+ --chart-3: oklch(0.769 0.188 70.08);
364
+ --chart-4: oklch(0.627 0.265 303.9);
365
+ --chart-5: oklch(0.645 0.246 16.439);
366
+ {{else if (eq shadcn.themeColor "emerald")}}
367
+ --primary: oklch(0.765 0.166 160.391);
368
+ --primary-foreground: oklch(0.15 0 0);
369
+ --ring: oklch(0.765 0.166 160.391);
370
+ --chart-1: oklch(0.765 0.166 160.391);
371
+ --chart-2: oklch(0.488 0.243 264.376);
372
+ --chart-3: oklch(0.769 0.188 70.08);
373
+ --chart-4: oklch(0.627 0.265 303.9);
374
+ --chart-5: oklch(0.645 0.246 16.439);
375
+ {{else if (eq shadcn.themeColor "fuchsia")}}
376
+ --primary: oklch(0.74 0.238 322.16);
377
+ --primary-foreground: oklch(0.15 0 0);
378
+ --ring: oklch(0.74 0.238 322.16);
379
+ --chart-1: oklch(0.74 0.238 322.16);
380
+ --chart-2: oklch(0.696 0.17 162.48);
381
+ --chart-3: oklch(0.769 0.188 70.08);
382
+ --chart-4: oklch(0.488 0.243 264.376);
383
+ --chart-5: oklch(0.645 0.246 16.439);
384
+ {{else if (eq shadcn.themeColor "indigo")}}
385
+ --primary: oklch(0.673 0.182 276.935);
386
+ --primary-foreground: oklch(0.985 0 0);
387
+ --ring: oklch(0.673 0.182 276.935);
388
+ --chart-1: oklch(0.673 0.182 276.935);
389
+ --chart-2: oklch(0.696 0.17 162.48);
390
+ --chart-3: oklch(0.769 0.188 70.08);
391
+ --chart-4: oklch(0.627 0.265 303.9);
392
+ --chart-5: oklch(0.645 0.246 16.439);
393
+ {{else if (eq shadcn.themeColor "lime")}}
394
+ --primary: oklch(0.841 0.238 128.85);
395
+ --primary-foreground: oklch(0.15 0 0);
396
+ --ring: oklch(0.841 0.238 128.85);
397
+ --chart-1: oklch(0.841 0.238 128.85);
398
+ --chart-2: oklch(0.488 0.243 264.376);
399
+ --chart-3: oklch(0.769 0.188 70.08);
400
+ --chart-4: oklch(0.627 0.265 303.9);
401
+ --chart-5: oklch(0.645 0.246 16.439);
402
+ {{else if (eq shadcn.themeColor "pink")}}
403
+ --primary: oklch(0.775 0.181 349.761);
404
+ --primary-foreground: oklch(0.15 0 0);
405
+ --ring: oklch(0.775 0.181 349.761);
406
+ --chart-1: oklch(0.775 0.181 349.761);
407
+ --chart-2: oklch(0.696 0.17 162.48);
408
+ --chart-3: oklch(0.769 0.188 70.08);
409
+ --chart-4: oklch(0.627 0.265 303.9);
410
+ --chart-5: oklch(0.488 0.243 264.376);
411
+ {{else if (eq shadcn.themeColor "rose")}}
412
+ --primary: oklch(0.712 0.194 13.428);
413
+ --primary-foreground: oklch(0.15 0 0);
414
+ --ring: oklch(0.712 0.194 13.428);
415
+ --chart-1: oklch(0.712 0.194 13.428);
416
+ --chart-2: oklch(0.696 0.17 162.48);
417
+ --chart-3: oklch(0.769 0.188 70.08);
418
+ --chart-4: oklch(0.627 0.265 303.9);
419
+ --chart-5: oklch(0.488 0.243 264.376);
420
+ {{else if (eq shadcn.themeColor "sky")}}
421
+ --primary: oklch(0.756 0.143 232.661);
422
+ --primary-foreground: oklch(0.15 0 0);
423
+ --ring: oklch(0.756 0.143 232.661);
424
+ --chart-1: oklch(0.756 0.143 232.661);
425
+ --chart-2: oklch(0.696 0.17 162.48);
426
+ --chart-3: oklch(0.769 0.188 70.08);
427
+ --chart-4: oklch(0.627 0.265 303.9);
428
+ --chart-5: oklch(0.645 0.246 16.439);
429
+ {{else if (eq shadcn.themeColor "teal")}}
430
+ --primary: oklch(0.777 0.152 181.912);
431
+ --primary-foreground: oklch(0.15 0 0);
432
+ --ring: oklch(0.777 0.152 181.912);
433
+ --chart-1: oklch(0.777 0.152 181.912);
434
+ --chart-2: oklch(0.488 0.243 264.376);
435
+ --chart-3: oklch(0.769 0.188 70.08);
436
+ --chart-4: oklch(0.627 0.265 303.9);
437
+ --chart-5: oklch(0.645 0.246 16.439);
438
+ {{else if (eq shadcn.themeColor "violet")}}
439
+ --primary: oklch(0.702 0.183 293.541);
440
+ --primary-foreground: oklch(0.985 0 0);
441
+ --ring: oklch(0.702 0.183 293.541);
442
+ --chart-1: oklch(0.702 0.183 293.541);
443
+ --chart-2: oklch(0.696 0.17 162.48);
444
+ --chart-3: oklch(0.769 0.188 70.08);
445
+ --chart-4: oklch(0.488 0.243 264.376);
446
+ --chart-5: oklch(0.645 0.246 16.439);
447
+ {{else if (eq shadcn.themeColor "yellow")}}
448
+ --primary: oklch(0.852 0.199 91.936);
449
+ --primary-foreground: oklch(0.15 0 0);
450
+ --ring: oklch(0.852 0.199 91.936);
451
+ --chart-1: oklch(0.852 0.199 91.936);
452
+ --chart-2: oklch(0.696 0.17 162.48);
453
+ --chart-3: oklch(0.488 0.243 264.376);
454
+ --chart-4: oklch(0.627 0.265 303.9);
455
+ --chart-5: oklch(0.645 0.246 16.439);
456
+ {{else}}
457
+ --primary: oklch(0.922 0 0);
458
+ --primary-foreground: oklch(0.205 0 0);
459
+ --ring: oklch(0.556 0 0);
460
+ --chart-1: oklch(0.488 0.243 264.376);
461
+ --chart-2: oklch(0.696 0.17 162.48);
462
+ --chart-3: oklch(0.769 0.188 70.08);
463
+ --chart-4: oklch(0.627 0.265 303.9);
464
+ --chart-5: oklch(0.645 0.246 16.439);
465
+ {{/if}}
466
+ }
467
+
468
+ /* ========================================
469
+ BASE STYLES
470
+ ======================================== */
471
+
472
+ @layer base {
473
+ * {
474
+ @apply border-border outline-ring/50;
475
+ }
476
+ body {
477
+ @apply bg-background text-foreground;
478
+ }
479
+ }
480
+
481
+ /* Container utility */
482
+ .container {
483
+ width: 100%;
484
+ margin-left: auto;
485
+ margin-right: auto;
486
+ padding-left: 1rem;
487
+ padding-right: 1rem;
488
+ max-width: 96rem;
6
489
  }
7
490
 
8
- @media (prefers-color-scheme: dark) {
9
- :root {
10
- --background: #0a0a0a;
11
- --foreground: #ededed;
12
- }
491
+ @media (min-width: 640px) {
492
+ .container {
493
+ padding-left: 1.5rem;
494
+ padding-right: 1.5rem;
495
+ }
13
496
  }
14
497
 
15
- body {
16
- color: var(--foreground);
17
- background: var(--background);
498
+ @media (min-width: 1024px) {
499
+ .container {
500
+ padding-left: 2rem;
501
+ padding-right: 2rem;
502
+ }
18
503
  }
@@ -0,0 +1,6 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="32" height="32" rx="6" fill="#0F1F3D"/>
3
+ <path d="M16 6C11.029 6 7 10.029 7 15C7 16.5 7.4 17.9 8.1 19.1L16 26L23.9 19.1C24.6 17.9 25 16.5 25 15C25 10.029 20.971 6 16 6Z" fill="#3DA9A3"/>
4
+ <path d="M16 9C12.686 9 10 11.686 10 15C10 16.1 10.3 17.1 10.8 18L16 23L21.2 18C21.7 17.1 22 16.1 22 15C22 11.686 19.314 9 16 9Z" fill="#0F1F3D"/>
5
+ <text x="16" y="18" font-family="system-ui, -apple-system, sans-serif" font-size="10" font-weight="700" fill="white" text-anchor="middle">S</text>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="34" height="34" rx="8" fill="#3DA9A3"/>
3
+ <path d="M17 7C12.029 7 8 11.029 8 16C8 17.5 8.4 18.9 9.1 20.1L17 27L24.9 20.1C25.6 18.9 26 17.5 26 16C26 11.029 21.971 7 17 7Z" fill="white"/>
4
+ <path d="M17 10C13.686 10 11 12.686 11 16C11 17.1 11.3 18.1 11.8 19L17 24L22.2 19C22.7 18.1 23 17.1 23 16C23 12.686 20.314 10 17 10Z" fill="#3DA9A3"/>
5
+ <text x="17" y="19" font-family="system-ui, -apple-system, sans-serif" font-size="10" font-weight="700" fill="#0F1F3D" text-anchor="middle">S</text>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="34" height="34" rx="8" fill="#0F1F3D"/>
3
+ <path d="M17 7C12.029 7 8 11.029 8 16C8 17.5 8.4 18.9 9.1 20.1L17 27L24.9 20.1C25.6 18.9 26 17.5 26 16C26 11.029 21.971 7 17 7Z" fill="#3DA9A3"/>
4
+ <path d="M17 10C13.686 10 11 12.686 11 16C11 17.1 11.3 18.1 11.8 19L17 24L22.2 19C22.7 18.1 23 17.1 23 16C23 12.686 20.314 10 17 10Z" fill="#0F1F3D"/>
5
+ <text x="17" y="19" font-family="system-ui, -apple-system, sans-serif" font-size="10" font-weight="700" fill="white" text-anchor="middle">S</text>
6
+ </svg>
@@ -277,7 +277,7 @@ export const FooterClient: React.FC<FooterClientProps> = ({ data }) => {
277
277
  <Logo variant="auto" className="h-6 w-6" />
278
278
  </Link>
279
279
  <p className="text-sm text-muted-foreground">
280
- © {currentYear} {copyrightText || "DirectoryHub"}
280
+ © {currentYear} {copyrightText || "SaaSify"}
281
281
  </p>
282
282
  </div>
283
283
 
@@ -151,7 +151,7 @@ export const Footer: GlobalConfig = {
151
151
  name: "copyrightText",
152
152
  type: "text",
153
153
  label: "Copyright Text",
154
- defaultValue: "DirectoryHub",
154
+ defaultValue: "SaaSify",
155
155
  admin: {
156
156
  description: "Company name for copyright (year is added automatically)",
157
157
  },
@@ -83,7 +83,7 @@ export const HeaderClient: React.FC<HeaderClientProps> = ({ data }) => {
83
83
  <div className="flex items-center gap-8">
84
84
  <Link href="/" className="flex items-center gap-2">
85
85
  <Logo loading="eager" priority="high" variant="auto" />
86
- <span className="text-xl font-semibold hidden sm:inline">DirectoryHub</span>
86
+ <span className="text-xl font-semibold hidden sm:inline">SaaSify</span>
87
87
  </Link>
88
88
  {/* Left nav - hidden on tablet and below, visible on desktop */}
89
89
  <HeaderNav data={data} position="left" className="hidden lg:flex gap-6 items-center" />
@@ -148,7 +148,7 @@ export const MobileMenu: React.FC<MobileMenuProps> = ({ data }) => {
148
148
  {/* Header with close button */}
149
149
  <div className="flex items-center justify-between p-4 border-b border-border">
150
150
  <Link href="/" onClick={closeMenu} className="text-xl font-semibold">
151
- DirectoryHub
151
+ SaaSify
152
152
  </Link>
153
153
  <HamburgerIcon isOpen={isOpen} onClick={closeMenu} className="lg:block" />
154
154
  </div>
@@ -48,7 +48,7 @@ export default async function Page({ params }: DocsPageProps) {
48
48
  return (
49
49
  <DocsPage>
50
50
  <DocsTitle>Documentation</DocsTitle>
51
- <DocsDescription>Welcome to DirectoryHub documentation</DocsDescription>
51
+ <DocsDescription>Welcome to SaaSify documentation</DocsDescription>
52
52
  <DocsBody>
53
53
  <div className="flex flex-col items-center justify-center py-12 text-center">
54
54
  <h2 className="text-xl font-semibold mb-4">No documentation yet</h2>
@@ -101,16 +101,16 @@ export async function generateMetadata({ params }: DocsPageProps): Promise<Metad
101
101
 
102
102
  if (!doc) {
103
103
  return {
104
- title: "Documentation | DirectoryHub",
104
+ title: "Documentation | SaaSify",
105
105
  }
106
106
  }
107
107
 
108
108
  return {
109
- title: `${doc.title} | DirectoryHub Docs`,
110
- description: doc.description || `Learn about ${doc.title} in DirectoryHub documentation.`,
109
+ title: `${doc.title} | SaaSify Docs`,
110
+ description: doc.description || `Learn about ${doc.title} in SaaSify documentation.`,
111
111
  openGraph: {
112
- title: `${doc.title} | DirectoryHub Docs`,
113
- description: doc.description || `Learn about ${doc.title} in DirectoryHub documentation.`,
112
+ title: `${doc.title} | SaaSify Docs`,
113
+ description: doc.description || `Learn about ${doc.title} in SaaSify documentation.`,
114
114
  type: "article",
115
115
  },
116
116
  }
@@ -25,7 +25,7 @@ export default async function DocsLayoutWrapper({
25
25
  <DocsLayout
26
26
  tree={pageTree}
27
27
  nav={{
28
- title: "DirectoryHub Docs",
28
+ title: "SaaSify Docs",
29
29
  url: "/docs",
30
30
  }}
31
31
  sidebar={{
@@ -37,8 +37,8 @@ export default function DocsRootLayout({ children }: { children: ReactNode }) {
37
37
  export const metadata: Metadata = {
38
38
  metadataBase: new URL(getServerSideURL()),
39
39
  title: {
40
- default: "Documentation | DirectoryHub",
41
- template: "%s | DirectoryHub Docs",
40
+ default: "Documentation | SaaSify",
41
+ template: "%s | SaaSify Docs",
42
42
  },
43
- description: "DirectoryHub documentation - learn how to build and manage directory websites.",
43
+ description: "SaaSify documentation - learn how to use the platform and boost your team productivity.",
44
44
  }