@jxsuite/starters 3.3.1 → 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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jxsuite/starters",
3
- "version": "3.3.1",
3
+ "version": "3.4.0",
4
4
  "description": "Starter site templates for new Jx projects",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -26,12 +26,12 @@
26
26
  "test:coverage": "bun test --isolate --coverage"
27
27
  },
28
28
  "dependencies": {
29
- "@jxsuite/protocol": "^6.2.3"
29
+ "@jxsuite/protocol": "^6.2.5"
30
30
  },
31
31
  "devDependencies": {
32
- "@jxsuite/parser": "^4.3.1",
33
- "@jxsuite/runtime": "^6.2.0",
34
- "@jxsuite/schema": "^5.3.0",
32
+ "@jxsuite/parser": "^4.3.3",
33
+ "@jxsuite/runtime": "^6.2.2",
34
+ "@jxsuite/schema": "^5.5.0",
35
35
  "ajv": "^8.20.0",
36
36
  "ajv-formats": "^3.0.1"
37
37
  }
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.1"
12
+ "@jxsuite/parser": "^4.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.3.0",
16
- "@jxsuite/runtime": "^6.2.0"
15
+ "@jxsuite/compiler": "^8.5.0",
16
+ "@jxsuite/runtime": "^6.2.2"
17
17
  }
18
18
  }
@@ -0,0 +1,86 @@
1
+ /- kdl-version 2
2
+ $schema "./project.schema.json"
3
+ project "The Long Field"
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="The Long Field — essays and field notes on design, technology, and the craft of making things well."
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=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"
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 "#9a2f1a"
27
+ --color-primary-hover "#7a2412"
28
+ --color-ink "#1c1a17"
29
+ --color-bg-dark "#1c1a17"
30
+ --color-bg-cream "#efe9db"
31
+ --color-bg-white "#f6f1e7"
32
+ --color-paper "#f6f1e7"
33
+ --color-text-primary "#1c1a17"
34
+ --color-text-white "#f6f1e7"
35
+ --color-text-muted "#6f685c"
36
+ --color-border "#d8cfbd"
37
+ --color-rule "#1c1a17"
38
+ --color-accent "#9a2f1a"
39
+ --font-heading "'Fraunces', Georgia, 'Times New Roman', serif"
40
+ --font-body "'Newsreader', Georgia, 'Times New Roman', serif"
41
+ --max-width "1160px"
42
+ --max-width-narrow "680px"
43
+ --radius "0"
44
+ margin "0"
45
+ padding "0"
46
+ fontFamily "var(--font-body)"
47
+ fontSize "19px"
48
+ lineHeight "1.7"
49
+ color "var(--color-text-primary)"
50
+ backgroundColor "var(--color-paper)"
51
+ }
52
+
53
+ images {
54
+ optimize #true
55
+ widths 320 640 960 1280 1920
56
+ formats webp avif
57
+ quality webp=80 avif=65 jpeg=80 png=80
58
+ sizes "(max-width: 768px) 100vw, 50vw"
59
+ lazyLoad #true
60
+ }
61
+
62
+ content {
63
+ posts {
64
+ source "./content/posts/"
65
+ format Markdown
66
+ schema {
67
+ type object
68
+ properties {
69
+ title type=string
70
+ excerpt type=string
71
+ date type=string
72
+ author type=string
73
+ tag type=string
74
+ cover type=string format=image
75
+ order type=number
76
+ }
77
+ required title excerpt date
78
+ }
79
+ }
80
+ }
81
+
82
+ build outDir="./dist" format=directory trailingSlash=always
83
+
84
+ extensions {
85
+ - "@jxsuite/parser"
86
+ }
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.1"
12
+ "@jxsuite/parser": "^4.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.3.0",
16
- "@jxsuite/runtime": "^6.2.0"
15
+ "@jxsuite/compiler": "^8.5.0",
16
+ "@jxsuite/runtime": "^6.2.2"
17
17
  }
18
18
  }
@@ -0,0 +1,94 @@
1
+ /- kdl-version 2
2
+ $schema "./project.schema.json"
3
+ project "Craft & Code Academy"
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="Craft & Code Academy is a project-based web development bootcamp — 14 weeks, six guided modules, live mentorship, and a deployed full-stack capstone."
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=Sora:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&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 "#4f46e5"
27
+ --color-primary-hover "#4338ca"
28
+ --color-primary-light "#6366f1"
29
+ --color-indigo-050 "#eef2ff"
30
+ --color-indigo-soft "rgba(79, 70, 229, 0.08)"
31
+ --color-indigo-line "rgba(79, 70, 229, 0.16)"
32
+ --color-accent "#a3e635"
33
+ --color-accent-cyan "#22d3ee"
34
+ --color-ink "#0b1020"
35
+ --color-terminal "#0b1020"
36
+ --color-terminal-2 "#141c39"
37
+ --color-terminal-line "#243056"
38
+ --color-bg-dark "#0b1020"
39
+ --color-bg-cream "#f4f5fb"
40
+ --color-bg-soft "#f9fafd"
41
+ --color-bg-white "#ffffff"
42
+ --color-text-primary "#0f1424"
43
+ --color-ink-2 "#20263f"
44
+ --color-text-white "#ffffff"
45
+ --color-text-muted "#5b6479"
46
+ --color-text-faint "#8a93a8"
47
+ --color-border "#e4e7f2"
48
+ --color-border-strong "#cdd3e6"
49
+ --font-heading "'Sora', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
50
+ --font-body "'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
51
+ --font-mono "'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"
52
+ --max-width "1200px"
53
+ --max-width-narrow "820px"
54
+ --radius "0.85rem"
55
+ --radius-sm "0.55rem"
56
+ margin "0"
57
+ padding "0"
58
+ fontFamily "var(--font-body)"
59
+ lineHeight "1.6"
60
+ color "var(--color-text-primary)"
61
+ backgroundColor "var(--color-bg-white)"
62
+ }
63
+
64
+ images {
65
+ optimize #true
66
+ widths 320 640 960 1280 1920
67
+ formats webp avif
68
+ quality webp=80 avif=65 jpeg=80 png=80
69
+ sizes "(max-width: 768px) 100vw, 50vw"
70
+ lazyLoad #true
71
+ }
72
+
73
+ content {
74
+ modules {
75
+ source "./content/modules/"
76
+ format Markdown
77
+ schema {
78
+ type object
79
+ properties {
80
+ title type=string
81
+ summary type=string
82
+ duration type=string
83
+ order type=number
84
+ }
85
+ required title order
86
+ }
87
+ }
88
+ }
89
+
90
+ build outDir="./dist" format=directory trailingSlash=always
91
+
92
+ extensions {
93
+ - "@jxsuite/parser"
94
+ }
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.1"
12
+ "@jxsuite/parser": "^4.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.3.0",
16
- "@jxsuite/runtime": "^6.2.0"
15
+ "@jxsuite/compiler": "^8.5.0",
16
+ "@jxsuite/runtime": "^6.2.2"
17
17
  }
18
18
  }
@@ -0,0 +1,114 @@
1
+ /- kdl-version 2
2
+ $schema "./project.schema.json"
3
+ project "Horizon Conf 2026"
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="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."
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=Sora:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700&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 "#ff3d9a"
27
+ --color-primary-hover "#ff6bb4"
28
+ --color-ink "#050308"
29
+ --color-bg "#0a0711"
30
+ --color-bg-dark "#0a0711"
31
+ --color-bg-cream "#0f0b1c"
32
+ --color-bg-white "#150f28"
33
+ --color-bg-elev "#150f28"
34
+ --color-bg-elev2 "#1e1638"
35
+ --color-text-primary "#f3eefe"
36
+ --color-text-white "#ffffff"
37
+ --color-text-muted "#a99fc8"
38
+ --color-border "#2b2148"
39
+ --color-accent "#22e0ff"
40
+ --color-cyan "#22e0ff"
41
+ --color-violet "#a855f7"
42
+ --color-lime "#c6ff4d"
43
+ --grad "linear-gradient(115deg, #22e0ff 0%, #a855f7 50%, #ff3d9a 100%)"
44
+ --grad-btn "linear-gradient(120deg, #ff3d9a 0%, #a855f7 100%)"
45
+ --grad-cyan "linear-gradient(120deg, #22e0ff 0%, #7c74ff 100%)"
46
+ --glow "rgba(255, 61, 154, 0.5)"
47
+ --glow-cyan "rgba(34, 224, 255, 0.4)"
48
+ --font-heading "'Sora', 'Segoe UI', system-ui, -apple-system, sans-serif"
49
+ --font-body "'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
50
+ --max-width "1200px"
51
+ --max-width-narrow "860px"
52
+ --radius "1rem"
53
+ margin "0"
54
+ padding "0"
55
+ fontFamily "var(--font-body)"
56
+ lineHeight "1.6"
57
+ color "var(--color-text-primary)"
58
+ backgroundColor "var(--color-bg)"
59
+ h1 {
60
+ fontFamily "var(--font-heading)"
61
+ color "var(--color-text-primary)"
62
+ }
63
+ h2 {
64
+ fontFamily "var(--font-heading)"
65
+ color "var(--color-text-primary)"
66
+ }
67
+ h3 {
68
+ fontFamily "var(--font-heading)"
69
+ color "var(--color-text-primary)"
70
+ }
71
+ h4 {
72
+ fontFamily "var(--font-heading)"
73
+ color "var(--color-text-primary)"
74
+ }
75
+ strong {
76
+ color "var(--color-text-primary)"
77
+ }
78
+ a {
79
+ color "var(--color-primary)"
80
+ }
81
+ }
82
+
83
+ images {
84
+ optimize #true
85
+ widths 320 640 960 1280 1920
86
+ formats webp avif
87
+ quality webp=80 avif=65 jpeg=80 png=80
88
+ sizes "(max-width: 768px) 100vw, 50vw"
89
+ lazyLoad #true
90
+ }
91
+
92
+ content {
93
+ sessions {
94
+ source "./content/sessions/"
95
+ format Markdown
96
+ schema {
97
+ type object
98
+ properties {
99
+ title type=string
100
+ time type=string
101
+ track type=string
102
+ speaker type=string
103
+ order type=number
104
+ }
105
+ required title track
106
+ }
107
+ }
108
+ }
109
+
110
+ build outDir="./dist" format=directory trailingSlash=always
111
+
112
+ extensions {
113
+ - "@jxsuite/parser"
114
+ }
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.1"
12
+ "@jxsuite/parser": "^4.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.3.0",
16
- "@jxsuite/runtime": "^6.2.0"
15
+ "@jxsuite/compiler": "^8.5.0",
16
+ "@jxsuite/runtime": "^6.2.2"
17
17
  }
18
18
  }
@@ -0,0 +1,124 @@
1
+ /- kdl-version 2
2
+ $schema "./project.schema.json"
3
+ project "Ember Yoga & Fitness"
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="Ember is a boutique yoga & fitness studio — vinyasa, pilates, HIIT and strength in small, all-levels classes. See the weekly schedule and book a class."
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=Anton&family=Archivo:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600;700&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 "#ff2e63"
27
+ --color-primary-hover "#e01152"
28
+ --color-ember "#ff8c42"
29
+ --color-magenta "#d6157a"
30
+ --color-ink "#1a0f18"
31
+ --color-ink-band "#20111c"
32
+ --color-bg-dark "#20111c"
33
+ --color-bg-white "#ffffff"
34
+ --color-bg-blush "#fff4ef"
35
+ --color-bg-peach "#ffe7dc"
36
+ --color-bg-cream "#fff4ef"
37
+ --color-text-primary "#1a0f18"
38
+ --color-text-white "#ffffff"
39
+ --color-text-muted "#7c6a74"
40
+ --color-border "#f3ded4"
41
+ --color-border-dark "rgba(255,255,255,0.14)"
42
+ --color-accent "#ff8c42"
43
+ --color-yoga "#ff2e63"
44
+ --color-strength "#7b2ff7"
45
+ --color-pilates "#ff8c42"
46
+ --color-hiit "#d6157a"
47
+ --grad "linear-gradient(103deg, #ff2e63 0%, #ff6a3d 52%, #ffb03a 100%)"
48
+ --grad-hot "linear-gradient(120deg, #d6157a 0%, #ff2e63 55%, #ff8c42 100%)"
49
+ --duo-shadow "#280a22"
50
+ --font-display "'Anton', 'Archivo', system-ui, -apple-system, sans-serif"
51
+ --font-heading "'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif"
52
+ --font-body "'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
53
+ --max-width "1200px"
54
+ --max-width-narrow "820px"
55
+ --radius "1.1rem"
56
+ --radius-sm "0.7rem"
57
+ margin "0"
58
+ padding "0"
59
+ fontFamily "var(--font-body)"
60
+ lineHeight "1.6"
61
+ color "var(--color-text-primary)"
62
+ backgroundColor "var(--color-bg-white)"
63
+ h1 {
64
+ fontFamily "var(--font-heading)"
65
+ color "var(--color-text-primary)"
66
+ }
67
+ h2 {
68
+ fontFamily "var(--font-heading)"
69
+ color "var(--color-text-primary)"
70
+ }
71
+ h3 {
72
+ fontFamily "var(--font-heading)"
73
+ color "var(--color-text-primary)"
74
+ }
75
+ h4 {
76
+ fontFamily "var(--font-heading)"
77
+ color "var(--color-text-primary)"
78
+ }
79
+ strong {
80
+ color "var(--color-text-primary)"
81
+ fontWeight "700"
82
+ }
83
+ a {
84
+ color "var(--color-primary)"
85
+ }
86
+ ::selection {
87
+ backgroundColor "var(--color-primary)"
88
+ color "#ffffff"
89
+ }
90
+ }
91
+
92
+ images {
93
+ optimize #true
94
+ widths 320 640 960 1280 1920
95
+ formats webp avif
96
+ quality webp=80 avif=65 jpeg=80 png=80
97
+ sizes "(max-width: 768px) 100vw, 50vw"
98
+ lazyLoad #true
99
+ }
100
+
101
+ content {
102
+ classes {
103
+ source "./content/classes/"
104
+ format Markdown
105
+ schema {
106
+ type object
107
+ properties {
108
+ name type=string
109
+ level type=string
110
+ time type=string
111
+ instructor type=string
112
+ focus type=string
113
+ order type=number
114
+ }
115
+ required name level time instructor
116
+ }
117
+ }
118
+ }
119
+
120
+ build outDir="./dist" format=directory trailingSlash=always
121
+
122
+ extensions {
123
+ - "@jxsuite/parser"
124
+ }
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.1"
12
+ "@jxsuite/parser": "^4.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.3.0",
16
- "@jxsuite/runtime": "^6.2.0"
15
+ "@jxsuite/compiler": "^8.5.0",
16
+ "@jxsuite/runtime": "^6.2.2"
17
17
  }
18
18
  }
@@ -0,0 +1,113 @@
1
+ /- kdl-version 2
2
+ $schema "./project.schema.json"
3
+ project "Summit Heating & Cooling"
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="Summit Heating & Cooling — licensed, insured HVAC contractor serving Northern Colorado with AC and furnace installation, repair, heat pumps, and 24/7 emergency 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=Oswald:wght@400;500;600;700&family=Barlow:wght@400;500;600;700&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 "#f4511e"
27
+ --color-primary-hover "#d84315"
28
+ --color-primary-soft "rgba(244, 81, 30, 0.12)"
29
+ --color-ink "#0e1a23"
30
+ --color-steel "#122430"
31
+ --color-steel-2 "#1a3341"
32
+ --color-steel-line "#28414f"
33
+ --color-bg-dark "#0e1a23"
34
+ --color-bg-steel "#122430"
35
+ --color-bg-cream "#eef1f4"
36
+ --color-bg-concrete "#e5eaee"
37
+ --color-bg-white "#ffffff"
38
+ --color-text-primary "#14212b"
39
+ --color-text-white "#ffffff"
40
+ --color-text-muted "#5c6b77"
41
+ --color-text-steel-muted "#9fb2be"
42
+ --color-border "#d9e0e6"
43
+ --color-border-strong "#c1cbd3"
44
+ --color-accent "#f4511e"
45
+ --hazard "repeating-linear-gradient(-45deg, #f4511e 0 16px, #0e1a23 16px 32px)"
46
+ --font-heading "'Oswald', 'Arial Narrow', 'Segoe UI', system-ui, sans-serif"
47
+ --font-body "'Barlow', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif"
48
+ --max-width "1200px"
49
+ --max-width-narrow "820px"
50
+ --radius "0.5rem"
51
+ --radius-sm "0.35rem"
52
+ --shadow-card "0 2px 4px rgba(14,26,35,0.05), 0 16px 40px -22px rgba(14,26,35,0.35)"
53
+ --shadow-float "0 34px 70px -30px rgba(14,26,35,0.5)"
54
+ margin "0"
55
+ padding "0"
56
+ fontFamily "var(--font-body)"
57
+ fontSize "17px"
58
+ lineHeight "1.6"
59
+ color "var(--color-text-primary)"
60
+ backgroundColor "var(--color-bg-white)"
61
+ WebkitFontSmoothing antialiased
62
+ h1 {
63
+ fontFamily "var(--font-heading)"
64
+ }
65
+ h2 {
66
+ fontFamily "var(--font-heading)"
67
+ }
68
+ h3 {
69
+ fontFamily "var(--font-heading)"
70
+ }
71
+ h4 {
72
+ fontFamily "var(--font-heading)"
73
+ }
74
+ strong {
75
+ color "var(--color-text-primary)"
76
+ }
77
+ a {
78
+ color "var(--color-primary)"
79
+ fontWeight "600"
80
+ }
81
+ }
82
+
83
+ images {
84
+ optimize #true
85
+ widths 320 640 960 1280 1920
86
+ formats webp avif
87
+ quality webp=80 avif=65 jpeg=80 png=80
88
+ sizes "(max-width: 768px) 100vw, 50vw"
89
+ lazyLoad #true
90
+ }
91
+
92
+ content {
93
+ services {
94
+ source "./content/services/"
95
+ format Markdown
96
+ schema {
97
+ type object
98
+ properties {
99
+ name type=string
100
+ summary type=string
101
+ icon type=string
102
+ order type=number
103
+ }
104
+ required name summary
105
+ }
106
+ }
107
+ }
108
+
109
+ build outDir="./dist" format=directory trailingSlash=always
110
+
111
+ extensions {
112
+ - "@jxsuite/parser"
113
+ }
@@ -9,10 +9,10 @@
9
9
  "dev": "jx dev"
10
10
  },
11
11
  "dependencies": {
12
- "@jxsuite/parser": "^4.3.1"
12
+ "@jxsuite/parser": "^4.3.3"
13
13
  },
14
14
  "devDependencies": {
15
- "@jxsuite/compiler": "^8.3.0",
16
- "@jxsuite/runtime": "^6.2.0"
15
+ "@jxsuite/compiler": "^8.5.0",
16
+ "@jxsuite/runtime": "^6.2.2"
17
17
  }
18
18
  }