@jxsuite/starters 3.3.2 → 3.4.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 (40) hide show
  1. package/package.json +5 -5
  2. package/sites/blog/package.json +3 -3
  3. package/sites/blog/project.jxn +86 -0
  4. package/sites/course/package.json +3 -3
  5. package/sites/course/project.jxn +94 -0
  6. package/sites/event/package.json +3 -3
  7. package/sites/event/project.jxn +114 -0
  8. package/sites/fitness-studio/package.json +3 -3
  9. package/sites/fitness-studio/project.jxn +124 -0
  10. package/sites/home-services/package.json +3 -3
  11. package/sites/home-services/project.jxn +113 -0
  12. package/sites/museum/package.json +3 -3
  13. package/sites/museum/project.jxn +130 -0
  14. package/sites/nonprofit/package.json +3 -3
  15. package/sites/nonprofit/project.jxn +99 -0
  16. package/sites/portfolio/package.json +3 -3
  17. package/sites/portfolio/project.jxn +85 -0
  18. package/sites/professional-firm/package.json +3 -3
  19. package/sites/professional-firm/project.jxn +94 -0
  20. package/sites/real-estate/package.json +3 -3
  21. package/sites/real-estate/project.jxn +103 -0
  22. package/sites/restaurant/package.json +3 -3
  23. package/sites/restaurant/project.jxn +93 -0
  24. package/sites/saas/package.json +3 -3
  25. package/sites/saas/project.jxn +119 -0
  26. package/sites/shop/package.json +3 -3
  27. package/sites/shop/project.jxn +100 -0
  28. package/sites/blog/project.json +0 -140
  29. package/sites/course/project.json +0 -141
  30. package/sites/event/project.json +0 -163
  31. package/sites/fitness-studio/project.json +0 -175
  32. package/sites/home-services/project.json +0 -160
  33. package/sites/museum/project.json +0 -179
  34. package/sites/nonprofit/project.json +0 -147
  35. package/sites/portfolio/project.json +0 -137
  36. package/sites/professional-firm/project.json +0 -145
  37. package/sites/real-estate/project.json +0 -163
  38. package/sites/restaurant/project.json +0 -145
  39. package/sites/saas/project.json +0 -166
  40. package/sites/shop/project.json +0 -156
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.2"
12
+ "@jxsuite/parser": "^4.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.4.0",
16
- "@jxsuite/runtime": "^6.2.1"
15
+ "@jxsuite/compiler": "^8.5.0",
16
+ "@jxsuite/runtime": "^6.2.2"
17
17
  }
18
18
  }
@@ -0,0 +1,119 @@
1
+ /- kdl-version 2
2
+ $schema "./project.schema.json"
3
+ project Flowlark
4
+
5
+ url "https://example.com"
6
+
7
+ defaults layout="./layouts/base.json" lang=en
8
+
9
+ $head {
10
+ meta name=viewport content="width=device-width, initial-scale=1"
11
+ meta name=description content="Flowlark is the modern product platform that helps teams plan, ship, and scale — with pricing that flexes from your first project to your thousandth."
12
+ link rel=icon href="/favicon.svg"
13
+ link rel=preconnect href="https://fonts.googleapis.com"
14
+ link rel=preconnect href="https://fonts.gstatic.com" crossorigin=""
15
+ link rel=stylesheet href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&display=swap"
16
+ }
17
+
18
+ $media {
19
+ -- "1200px"
20
+ --lg "(max-width: 1024px)"
21
+ --md "(max-width: 768px)"
22
+ --sm "(max-width: 640px)"
23
+ }
24
+
25
+ style {
26
+ --color-primary "#7c74ff"
27
+ --color-primary-hover "#948dff"
28
+ --color-ink "#050509"
29
+ --color-bg-dark "#0a0a14"
30
+ --color-bg-cream "#14141f"
31
+ --color-bg-surface "#14141f"
32
+ --color-bg-white "#0a0a14"
33
+ --color-bg "#0a0a14"
34
+ --color-bg-elev "#14141f"
35
+ --color-bg-elev2 "#1c1c2b"
36
+ --color-text-primary "#edecf5"
37
+ --color-text-white "#ffffff"
38
+ --color-text-muted "#9494ac"
39
+ --color-border "#262636"
40
+ --color-line "#262636"
41
+ --color-accent "#7c74ff"
42
+ --color-accent-soft "rgba(124, 116, 255, 0.14)"
43
+ --grad "linear-gradient(120deg, #8b7bff 0%, #22d3ee 55%, #f472b6 100%)"
44
+ --grad-btn "linear-gradient(120deg, #7c74ff, #a06bff)"
45
+ --glow "rgba(124, 116, 255, 0.45)"
46
+ --font-heading "'Space Grotesk', 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif"
47
+ --font-body "'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
48
+ --max-width "1200px"
49
+ --max-width-narrow "820px"
50
+ --radius "0.9rem"
51
+ margin "0"
52
+ padding "0"
53
+ fontFamily "var(--font-body)"
54
+ lineHeight "1.6"
55
+ color "var(--color-text-primary)"
56
+ backgroundColor "var(--color-bg)"
57
+ table {
58
+ width "100%"
59
+ borderCollapse collapse
60
+ fontSize "0.95rem"
61
+ textAlign left
62
+ backgroundColor "var(--color-bg-white)"
63
+ thead {
64
+ borderBottom "1px solid var(--color-border)"
65
+ th {
66
+ padding "1rem 1.1rem"
67
+ fontFamily "var(--font-heading)"
68
+ fontSize "0.9rem"
69
+ fontWeight "600"
70
+ color "var(--color-text-primary)"
71
+ }
72
+ }
73
+ tbody {
74
+ tr {
75
+ borderBottom "1px solid var(--color-border)"
76
+ }
77
+ td {
78
+ padding "0.9rem 1.1rem"
79
+ color "var(--color-text-muted)"
80
+ :first-child {
81
+ color "var(--color-text-primary)"
82
+ fontWeight "600"
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ images {
90
+ optimize #true
91
+ widths 320 640 960 1280 1920
92
+ formats webp avif
93
+ quality webp=80 avif=65 jpeg=80 png=80
94
+ sizes "(max-width: 768px) 100vw, 50vw"
95
+ lazyLoad #true
96
+ }
97
+
98
+ content {
99
+ testimonials {
100
+ source "./content/testimonials/"
101
+ format Markdown
102
+ schema {
103
+ type object
104
+ properties {
105
+ quote type=string
106
+ author type=string
107
+ company type=string
108
+ order type=number
109
+ }
110
+ required quote author
111
+ }
112
+ }
113
+ }
114
+
115
+ build outDir="./dist" format=directory trailingSlash=always
116
+
117
+ extensions {
118
+ - "@jxsuite/parser"
119
+ }
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.2"
12
+ "@jxsuite/parser": "^4.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.4.0",
16
- "@jxsuite/runtime": "^6.2.1"
15
+ "@jxsuite/compiler": "^8.5.0",
16
+ "@jxsuite/runtime": "^6.2.2"
17
17
  }
18
18
  }
@@ -0,0 +1,100 @@
1
+ /- kdl-version 2
2
+ $schema "./project.schema.json"
3
+ project "Cadence Cycles"
4
+
5
+ url "https://example.com"
6
+
7
+ defaults layout="./layouts/base.json" lang=en
8
+
9
+ $head {
10
+ meta name=viewport content="width=device-width, initial-scale=1"
11
+ meta name=description content="Cadence Cycles is a neighborhood bike shop — shop road, mountain, gravel, and kids' bikes plus gear, with free shipping over $50, expert fittings, and in-house service."
12
+ link rel=icon href="/favicon.svg"
13
+ link rel=preconnect href="https://fonts.googleapis.com"
14
+ link rel=preconnect href="https://fonts.gstatic.com" crossorigin=""
15
+ link rel=stylesheet href="https://fonts.googleapis.com/css2?family=Archivo:wght@600;700;800;900&family=Inter:wght@400;500;600;700&display=swap"
16
+ }
17
+
18
+ $media {
19
+ -- "1240px"
20
+ --lg "(max-width: 1024px)"
21
+ --md "(max-width: 768px)"
22
+ --sm "(max-width: 640px)"
23
+ }
24
+
25
+ style {
26
+ --color-primary "#0a9d54"
27
+ --color-primary-hover "#08823f"
28
+ --color-brand-bright "#26d07c"
29
+ --color-brand-tint "#e7f8ef"
30
+ --color-ink "#0d1117"
31
+ --color-bg-dark "#0d1117"
32
+ --color-bg-ink-soft "#161c24"
33
+ --color-bg-cream "#f4f6f5"
34
+ --color-panel "#eef1f1"
35
+ --color-bg-white "#ffffff"
36
+ --color-text-primary "#0d1117"
37
+ --color-text-secondary "#39424c"
38
+ --color-text-muted "#69727c"
39
+ --color-text-white "#ffffff"
40
+ --color-border "#e3e7e8"
41
+ --color-line-strong "#ccd3d5"
42
+ --color-accent "#f59e0b"
43
+ --color-sale "#e11d48"
44
+ --color-sale-tint "#ffe4ea"
45
+ --color-gold "#e8890c"
46
+ --color-gold-tint "#fdf0d5"
47
+ --font-heading "'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
48
+ --font-body "'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
49
+ --max-width "1240px"
50
+ --max-width-narrow "760px"
51
+ --radius "0.9rem"
52
+ --radius-sm "0.55rem"
53
+ --radius-lg "1.4rem"
54
+ --shadow-card "0 1px 2px rgba(13,17,23,0.05), 0 14px 34px -18px rgba(13,17,23,0.22)"
55
+ --shadow-float "0 34px 80px -34px rgba(13,17,23,0.42)"
56
+ margin "0"
57
+ padding "0"
58
+ fontFamily "var(--font-body)"
59
+ fontSize "17px"
60
+ lineHeight "1.6"
61
+ color "var(--color-text-primary)"
62
+ backgroundColor "var(--color-bg-white)"
63
+ WebkitFontSmoothing antialiased
64
+ }
65
+
66
+ images {
67
+ optimize #true
68
+ widths 320 640 960 1280 1920
69
+ formats webp avif
70
+ quality webp=80 avif=65 jpeg=80 png=80
71
+ sizes "(max-width: 768px) 100vw, 50vw"
72
+ lazyLoad #true
73
+ }
74
+
75
+ content {
76
+ product {
77
+ source "./content/product/"
78
+ format Markdown
79
+ schema {
80
+ type object
81
+ properties {
82
+ title type=string
83
+ sku type=string
84
+ price type=string
85
+ oldPrice type=string
86
+ badge type=string
87
+ category type=string
88
+ image type=string format=image
89
+ order type=number
90
+ }
91
+ required title sku
92
+ }
93
+ }
94
+ }
95
+
96
+ build outDir="./dist" format=directory trailingSlash=always
97
+
98
+ extensions {
99
+ - "@jxsuite/parser"
100
+ }
@@ -1,140 +0,0 @@
1
- {
2
- "$schema": "./project.schema.json",
3
- "name": "The Long Field",
4
- "url": "https://example.com",
5
- "defaults": {
6
- "layout": "./layouts/base.json",
7
- "lang": "en"
8
- },
9
- "$head": [
10
- {
11
- "tagName": "meta",
12
- "attributes": {
13
- "name": "viewport",
14
- "content": "width=device-width, initial-scale=1"
15
- }
16
- },
17
- {
18
- "tagName": "meta",
19
- "attributes": {
20
- "name": "description",
21
- "content": "The Long Field — essays and field notes on design, technology, and the craft of making things well."
22
- }
23
- },
24
- {
25
- "tagName": "link",
26
- "attributes": {
27
- "rel": "icon",
28
- "href": "/favicon.svg"
29
- }
30
- },
31
- {
32
- "tagName": "link",
33
- "attributes": {
34
- "rel": "preconnect",
35
- "href": "https://fonts.googleapis.com"
36
- }
37
- },
38
- {
39
- "tagName": "link",
40
- "attributes": {
41
- "rel": "preconnect",
42
- "href": "https://fonts.gstatic.com",
43
- "crossorigin": ""
44
- }
45
- },
46
- {
47
- "tagName": "link",
48
- "attributes": {
49
- "rel": "stylesheet",
50
- "href": "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;0,9..144,900;1,9..144,400;1,9..144,600&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400;1,6..72,500&display=swap"
51
- }
52
- }
53
- ],
54
- "$media": {
55
- "--": "1200px",
56
- "--lg": "(max-width: 1024px)",
57
- "--md": "(max-width: 768px)",
58
- "--sm": "(max-width: 640px)"
59
- },
60
- "style": {
61
- "--color-primary": "#9a2f1a",
62
- "--color-primary-hover": "#7a2412",
63
- "--color-ink": "#1c1a17",
64
- "--color-bg-dark": "#1c1a17",
65
- "--color-bg-cream": "#efe9db",
66
- "--color-bg-white": "#f6f1e7",
67
- "--color-paper": "#f6f1e7",
68
- "--color-text-primary": "#1c1a17",
69
- "--color-text-white": "#f6f1e7",
70
- "--color-text-muted": "#6f685c",
71
- "--color-border": "#d8cfbd",
72
- "--color-rule": "#1c1a17",
73
- "--color-accent": "#9a2f1a",
74
- "--font-heading": "'Fraunces', Georgia, 'Times New Roman', serif",
75
- "--font-body": "'Newsreader', Georgia, 'Times New Roman', serif",
76
- "--max-width": "1160px",
77
- "--max-width-narrow": "680px",
78
- "--radius": "0",
79
- "margin": "0",
80
- "padding": "0",
81
- "fontFamily": "var(--font-body)",
82
- "fontSize": "19px",
83
- "lineHeight": "1.7",
84
- "color": "var(--color-text-primary)",
85
- "backgroundColor": "var(--color-paper)"
86
- },
87
- "images": {
88
- "optimize": true,
89
- "widths": [320, 640, 960, 1280, 1920],
90
- "formats": ["webp", "avif"],
91
- "quality": {
92
- "webp": 80,
93
- "avif": 65,
94
- "jpeg": 80,
95
- "png": 80
96
- },
97
- "sizes": "(max-width: 768px) 100vw, 50vw",
98
- "lazyLoad": true
99
- },
100
- "content": {
101
- "posts": {
102
- "source": "./content/posts/",
103
- "format": "Markdown",
104
- "schema": {
105
- "type": "object",
106
- "properties": {
107
- "title": {
108
- "type": "string"
109
- },
110
- "excerpt": {
111
- "type": "string"
112
- },
113
- "date": {
114
- "type": "string"
115
- },
116
- "author": {
117
- "type": "string"
118
- },
119
- "tag": {
120
- "type": "string"
121
- },
122
- "cover": {
123
- "type": "string",
124
- "format": "image"
125
- },
126
- "order": {
127
- "type": "number"
128
- }
129
- },
130
- "required": ["title", "excerpt", "date"]
131
- }
132
- }
133
- },
134
- "build": {
135
- "outDir": "./dist",
136
- "format": "directory",
137
- "trailingSlash": "always"
138
- },
139
- "extensions": ["@jxsuite/parser"]
140
- }
@@ -1,141 +0,0 @@
1
- {
2
- "$schema": "./project.schema.json",
3
- "name": "Craft & Code Academy",
4
- "url": "https://example.com",
5
- "defaults": {
6
- "layout": "./layouts/base.json",
7
- "lang": "en"
8
- },
9
- "$head": [
10
- {
11
- "tagName": "meta",
12
- "attributes": {
13
- "name": "viewport",
14
- "content": "width=device-width, initial-scale=1"
15
- }
16
- },
17
- {
18
- "tagName": "meta",
19
- "attributes": {
20
- "name": "description",
21
- "content": "Craft & Code Academy is a project-based web development bootcamp — 14 weeks, six guided modules, live mentorship, and a deployed full-stack capstone."
22
- }
23
- },
24
- {
25
- "tagName": "link",
26
- "attributes": {
27
- "rel": "icon",
28
- "href": "/favicon.svg"
29
- }
30
- },
31
- {
32
- "tagName": "link",
33
- "attributes": {
34
- "rel": "preconnect",
35
- "href": "https://fonts.googleapis.com"
36
- }
37
- },
38
- {
39
- "tagName": "link",
40
- "attributes": {
41
- "rel": "preconnect",
42
- "href": "https://fonts.gstatic.com",
43
- "crossorigin": ""
44
- }
45
- },
46
- {
47
- "tagName": "link",
48
- "attributes": {
49
- "rel": "stylesheet",
50
- "href": "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap"
51
- }
52
- }
53
- ],
54
- "$media": {
55
- "--": "1200px",
56
- "--lg": "(max-width: 1024px)",
57
- "--md": "(max-width: 768px)",
58
- "--sm": "(max-width: 640px)"
59
- },
60
- "style": {
61
- "--color-primary": "#4f46e5",
62
- "--color-primary-hover": "#4338ca",
63
- "--color-primary-light": "#6366f1",
64
- "--color-indigo-050": "#eef2ff",
65
- "--color-indigo-soft": "rgba(79, 70, 229, 0.08)",
66
- "--color-indigo-line": "rgba(79, 70, 229, 0.16)",
67
- "--color-accent": "#a3e635",
68
- "--color-accent-cyan": "#22d3ee",
69
- "--color-ink": "#0b1020",
70
- "--color-terminal": "#0b1020",
71
- "--color-terminal-2": "#141c39",
72
- "--color-terminal-line": "#243056",
73
- "--color-bg-dark": "#0b1020",
74
- "--color-bg-cream": "#f4f5fb",
75
- "--color-bg-soft": "#f9fafd",
76
- "--color-bg-white": "#ffffff",
77
- "--color-text-primary": "#0f1424",
78
- "--color-ink-2": "#20263f",
79
- "--color-text-white": "#ffffff",
80
- "--color-text-muted": "#5b6479",
81
- "--color-text-faint": "#8a93a8",
82
- "--color-border": "#e4e7f2",
83
- "--color-border-strong": "#cdd3e6",
84
- "--font-heading": "'Sora', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
85
- "--font-body": "'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
86
- "--font-mono": "'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",
87
- "--max-width": "1200px",
88
- "--max-width-narrow": "820px",
89
- "--radius": "0.85rem",
90
- "--radius-sm": "0.55rem",
91
- "margin": "0",
92
- "padding": "0",
93
- "fontFamily": "var(--font-body)",
94
- "lineHeight": "1.6",
95
- "color": "var(--color-text-primary)",
96
- "backgroundColor": "var(--color-bg-white)"
97
- },
98
- "images": {
99
- "optimize": true,
100
- "widths": [320, 640, 960, 1280, 1920],
101
- "formats": ["webp", "avif"],
102
- "quality": {
103
- "webp": 80,
104
- "avif": 65,
105
- "jpeg": 80,
106
- "png": 80
107
- },
108
- "sizes": "(max-width: 768px) 100vw, 50vw",
109
- "lazyLoad": true
110
- },
111
- "content": {
112
- "modules": {
113
- "source": "./content/modules/",
114
- "format": "Markdown",
115
- "schema": {
116
- "type": "object",
117
- "properties": {
118
- "title": {
119
- "type": "string"
120
- },
121
- "summary": {
122
- "type": "string"
123
- },
124
- "duration": {
125
- "type": "string"
126
- },
127
- "order": {
128
- "type": "number"
129
- }
130
- },
131
- "required": ["title", "order"]
132
- }
133
- }
134
- },
135
- "build": {
136
- "outDir": "./dist",
137
- "format": "directory",
138
- "trailingSlash": "always"
139
- },
140
- "extensions": ["@jxsuite/parser"]
141
- }
@@ -1,163 +0,0 @@
1
- {
2
- "$schema": "./project.schema.json",
3
- "name": "Horizon Conf 2026",
4
- "url": "https://example.com",
5
- "defaults": {
6
- "layout": "./layouts/base.json",
7
- "lang": "en"
8
- },
9
- "$head": [
10
- {
11
- "tagName": "meta",
12
- "attributes": {
13
- "name": "viewport",
14
- "content": "width=device-width, initial-scale=1"
15
- }
16
- },
17
- {
18
- "tagName": "meta",
19
- "attributes": {
20
- "name": "description",
21
- "content": "Horizon Conf 2026 — a one-day tech and design conference. Two stages, hands-on workshops, and the people building what's next. Save the date: June 12, 2026."
22
- }
23
- },
24
- {
25
- "tagName": "link",
26
- "attributes": {
27
- "rel": "icon",
28
- "href": "/favicon.svg"
29
- }
30
- },
31
- {
32
- "tagName": "link",
33
- "attributes": {
34
- "rel": "preconnect",
35
- "href": "https://fonts.googleapis.com"
36
- }
37
- },
38
- {
39
- "tagName": "link",
40
- "attributes": {
41
- "rel": "preconnect",
42
- "href": "https://fonts.gstatic.com",
43
- "crossorigin": ""
44
- }
45
- },
46
- {
47
- "tagName": "link",
48
- "attributes": {
49
- "rel": "stylesheet",
50
- "href": "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700&display=swap"
51
- }
52
- }
53
- ],
54
- "$media": {
55
- "--": "1200px",
56
- "--lg": "(max-width: 1024px)",
57
- "--md": "(max-width: 768px)",
58
- "--sm": "(max-width: 640px)"
59
- },
60
- "style": {
61
- "--color-primary": "#ff3d9a",
62
- "--color-primary-hover": "#ff6bb4",
63
- "--color-ink": "#050308",
64
- "--color-bg": "#0a0711",
65
- "--color-bg-dark": "#0a0711",
66
- "--color-bg-cream": "#0f0b1c",
67
- "--color-bg-white": "#150f28",
68
- "--color-bg-elev": "#150f28",
69
- "--color-bg-elev2": "#1e1638",
70
- "--color-text-primary": "#f3eefe",
71
- "--color-text-white": "#ffffff",
72
- "--color-text-muted": "#a99fc8",
73
- "--color-border": "#2b2148",
74
- "--color-accent": "#22e0ff",
75
- "--color-cyan": "#22e0ff",
76
- "--color-violet": "#a855f7",
77
- "--color-lime": "#c6ff4d",
78
- "--grad": "linear-gradient(115deg, #22e0ff 0%, #a855f7 50%, #ff3d9a 100%)",
79
- "--grad-btn": "linear-gradient(120deg, #ff3d9a 0%, #a855f7 100%)",
80
- "--grad-cyan": "linear-gradient(120deg, #22e0ff 0%, #7c74ff 100%)",
81
- "--glow": "rgba(255, 61, 154, 0.5)",
82
- "--glow-cyan": "rgba(34, 224, 255, 0.4)",
83
- "--font-heading": "'Sora', 'Segoe UI', system-ui, -apple-system, sans-serif",
84
- "--font-body": "'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
85
- "--max-width": "1200px",
86
- "--max-width-narrow": "860px",
87
- "--radius": "1rem",
88
- "margin": "0",
89
- "padding": "0",
90
- "fontFamily": "var(--font-body)",
91
- "lineHeight": "1.6",
92
- "color": "var(--color-text-primary)",
93
- "backgroundColor": "var(--color-bg)",
94
- "h1": {
95
- "fontFamily": "var(--font-heading)",
96
- "color": "var(--color-text-primary)"
97
- },
98
- "h2": {
99
- "fontFamily": "var(--font-heading)",
100
- "color": "var(--color-text-primary)"
101
- },
102
- "h3": {
103
- "fontFamily": "var(--font-heading)",
104
- "color": "var(--color-text-primary)"
105
- },
106
- "h4": {
107
- "fontFamily": "var(--font-heading)",
108
- "color": "var(--color-text-primary)"
109
- },
110
- "strong": {
111
- "color": "var(--color-text-primary)"
112
- },
113
- "a": {
114
- "color": "var(--color-primary)"
115
- }
116
- },
117
- "images": {
118
- "optimize": true,
119
- "widths": [320, 640, 960, 1280, 1920],
120
- "formats": ["webp", "avif"],
121
- "quality": {
122
- "webp": 80,
123
- "avif": 65,
124
- "jpeg": 80,
125
- "png": 80
126
- },
127
- "sizes": "(max-width: 768px) 100vw, 50vw",
128
- "lazyLoad": true
129
- },
130
- "content": {
131
- "sessions": {
132
- "source": "./content/sessions/",
133
- "format": "Markdown",
134
- "schema": {
135
- "type": "object",
136
- "properties": {
137
- "title": {
138
- "type": "string"
139
- },
140
- "time": {
141
- "type": "string"
142
- },
143
- "track": {
144
- "type": "string"
145
- },
146
- "speaker": {
147
- "type": "string"
148
- },
149
- "order": {
150
- "type": "number"
151
- }
152
- },
153
- "required": ["title", "track"]
154
- }
155
- }
156
- },
157
- "build": {
158
- "outDir": "./dist",
159
- "format": "directory",
160
- "trailingSlash": "always"
161
- },
162
- "extensions": ["@jxsuite/parser"]
163
- }