@jxsuite/starters 0.34.0 → 0.35.1
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/package.json +5 -2
- package/registry.json +19 -19
- package/sites/blog/components/bl-author-bio.json +19 -15
- package/sites/blog/components/bl-cta.json +20 -14
- package/sites/blog/components/bl-footer.json +67 -90
- package/sites/blog/components/bl-masthead.json +96 -90
- package/sites/blog/components/bl-nav.json +23 -30
- package/sites/blog/components/bl-newsletter-cta.json +53 -39
- package/sites/blog/components/bl-post-card.json +70 -52
- package/sites/blog/components/bl-post-list.json +2 -9
- package/sites/blog/components/bl-prose.json +33 -18
- package/sites/blog/components/bl-section-header.json +46 -29
- package/sites/blog/components/bl-tag-pill.json +11 -8
- package/sites/blog/package.json +2 -2
- package/sites/blog/pages/index.md +26 -24
- package/sites/blog/project.json +19 -16
- package/sites/course/components/co-application.json +158 -103
- package/sites/course/components/co-cohort.json +172 -0
- package/sites/course/components/co-cta.json +70 -18
- package/sites/course/components/co-curriculum-accordion.json +12 -12
- package/sites/course/components/co-footer.json +83 -33
- package/sites/course/components/co-hero.json +385 -49
- package/sites/course/components/co-instructor-card.json +105 -22
- package/sites/course/components/co-mentor.json +65 -0
- package/sites/course/components/co-module-card.json +98 -53
- package/sites/course/components/co-nav.json +194 -69
- package/sites/course/components/co-outcome-card.json +41 -15
- package/sites/course/components/co-outcomes.json +248 -0
- package/sites/course/components/co-pricing.json +70 -25
- package/sites/course/components/co-section-header.json +36 -15
- package/sites/course/components/co-testimonial-card.json +70 -15
- package/sites/course/pages/about.md +10 -11
- package/sites/course/pages/curriculum.md +8 -4
- package/sites/course/pages/enroll.md +6 -7
- package/sites/course/pages/index.md +41 -29
- package/sites/course/project.json +64 -23
- package/sites/event/components/ev-agenda-tabs.json +526 -240
- package/sites/event/components/ev-cta.json +56 -27
- package/sites/event/components/ev-feature.json +14 -10
- package/sites/event/components/ev-footer.json +82 -30
- package/sites/event/components/ev-hero.json +307 -72
- package/sites/event/components/ev-nav.json +97 -34
- package/sites/event/components/ev-reason.json +64 -0
- package/sites/event/components/ev-savedate.json +160 -73
- package/sites/event/components/ev-section-header.json +30 -13
- package/sites/event/components/ev-session-row.json +96 -36
- package/sites/event/components/ev-speaker-card.json +63 -17
- package/sites/event/components/ev-sponsors.json +131 -0
- package/sites/event/components/ev-stat.json +17 -12
- package/sites/event/components/ev-ticket-card.json +58 -40
- package/sites/event/components/ev-venue.json +39 -12
- package/sites/event/layouts/base.json +1 -1
- package/sites/event/pages/index.md +38 -14
- package/sites/event/pages/schedule.md +19 -16
- package/sites/event/project.json +88 -26
- package/sites/fitness-studio/components/fs-band.json +149 -0
- package/sites/fitness-studio/components/fs-booking.json +147 -0
- package/sites/fitness-studio/components/fs-class-card.json +62 -31
- package/sites/fitness-studio/components/fs-cta.json +63 -19
- package/sites/fitness-studio/components/fs-feature.json +20 -6
- package/sites/fitness-studio/components/fs-footer.json +62 -29
- package/sites/fitness-studio/components/fs-hero.json +296 -49
- package/sites/fitness-studio/components/fs-hours.json +40 -21
- package/sites/fitness-studio/components/fs-instructor-card.json +94 -31
- package/sites/fitness-studio/components/fs-intro.json +258 -23
- package/sites/fitness-studio/components/fs-modality.json +171 -0
- package/sites/fitness-studio/components/fs-nav.json +55 -24
- package/sites/fitness-studio/components/fs-pricing-card.json +71 -51
- package/sites/fitness-studio/components/fs-review.json +52 -18
- package/sites/fitness-studio/components/fs-schedule.json +1165 -0
- package/sites/fitness-studio/components/fs-section-header.json +44 -20
- package/sites/fitness-studio/pages/classes.md +11 -5
- package/sites/fitness-studio/pages/contact.md +7 -29
- package/sites/fitness-studio/pages/index.md +29 -52
- package/sites/fitness-studio/pages/pricing.md +7 -7
- package/sites/fitness-studio/project.json +99 -26
- package/sites/home-services/components/hs-callbar.json +72 -0
- package/sites/home-services/components/hs-cta.json +121 -60
- package/sites/home-services/components/hs-feature.json +42 -23
- package/sites/home-services/components/hs-footer.json +108 -33
- package/sites/home-services/components/hs-gallery.json +66 -15
- package/sites/home-services/components/hs-hero.json +360 -42
- package/sites/home-services/components/hs-intro.json +70 -7
- package/sites/home-services/components/hs-nav.json +233 -68
- package/sites/home-services/components/hs-reservation.json +125 -46
- package/sites/home-services/components/hs-review.json +76 -16
- package/sites/home-services/components/hs-section-header.json +31 -14
- package/sites/home-services/components/hs-service-card.json +34 -24
- package/sites/home-services/components/hs-stat.json +54 -0
- package/sites/home-services/components/hs-step.json +40 -13
- package/sites/home-services/components/hs-trust-bar.json +188 -40
- package/sites/home-services/layouts/base.json +4 -2
- package/sites/home-services/pages/about.md +33 -2
- package/sites/home-services/pages/contact.md +23 -10
- package/sites/home-services/pages/index.md +33 -7
- package/sites/home-services/pages/services.md +34 -3
- package/sites/home-services/project.json +82 -22
- package/sites/nonprofit/components/np-contact-form.json +52 -24
- package/sites/nonprofit/components/np-contact-info.json +27 -21
- package/sites/nonprofit/components/np-cta.json +152 -77
- package/sites/nonprofit/components/np-donate-tier.json +59 -32
- package/sites/nonprofit/components/np-feature.json +13 -9
- package/sites/nonprofit/components/np-footer.json +106 -36
- package/sites/nonprofit/components/np-hero.json +274 -46
- package/sites/nonprofit/components/np-impact-band.json +108 -0
- package/sites/nonprofit/components/np-intro.json +126 -19
- package/sites/nonprofit/components/np-nav.json +161 -82
- package/sites/nonprofit/components/np-program-card.json +83 -23
- package/sites/nonprofit/components/np-section-header.json +40 -14
- package/sites/nonprofit/components/np-stat.json +36 -15
- package/sites/nonprofit/components/np-step.json +46 -17
- package/sites/nonprofit/components/np-team-member.json +26 -19
- package/sites/nonprofit/components/np-testimonial.json +144 -29
- package/sites/nonprofit/pages/about.md +17 -16
- package/sites/nonprofit/pages/contact.md +4 -4
- package/sites/nonprofit/pages/get-involved.md +23 -23
- package/sites/nonprofit/pages/index.md +29 -44
- package/sites/nonprofit/pages/programs.md +12 -14
- package/sites/nonprofit/project.json +74 -28
- package/sites/portfolio/components/pv-about-split.json +21 -9
- package/sites/portfolio/components/pv-category-pill.json +7 -6
- package/sites/portfolio/components/pv-contact-form.json +34 -45
- package/sites/portfolio/components/pv-cta.json +35 -19
- package/sites/portfolio/components/pv-footer.json +97 -75
- package/sites/portfolio/components/pv-hero.json +77 -70
- package/sites/portfolio/components/pv-nav.json +32 -38
- package/sites/portfolio/components/pv-project-card.json +118 -61
- package/sites/portfolio/components/pv-project-grid.json +24 -16
- package/sites/portfolio/components/pv-section-header.json +74 -37
- package/sites/portfolio/layouts/base.json +1 -1
- package/sites/portfolio/package.json +2 -2
- package/sites/portfolio/pages/[slug].json +1 -1
- package/sites/portfolio/pages/about.md +4 -3
- package/sites/portfolio/pages/contact.md +1 -1
- package/sites/portfolio/pages/index.md +18 -13
- package/sites/portfolio/pages/work.md +7 -7
- package/sites/portfolio/project.json +20 -16
- package/sites/professional-firm/components/pf-article-header.json +34 -20
- package/sites/professional-firm/components/pf-contact-form.json +57 -49
- package/sites/professional-firm/components/pf-contact-info.json +147 -0
- package/sites/professional-firm/components/pf-cta.json +42 -18
- package/sites/professional-firm/components/pf-feature.json +21 -24
- package/sites/professional-firm/components/pf-footer.json +107 -48
- package/sites/professional-firm/components/pf-hero.json +135 -89
- package/sites/professional-firm/components/pf-insight-row.json +144 -0
- package/sites/professional-firm/components/pf-intro.json +44 -10
- package/sites/professional-firm/components/pf-logo-bar.json +35 -34
- package/sites/professional-firm/components/pf-nav.json +67 -42
- package/sites/professional-firm/components/pf-section-header.json +46 -22
- package/sites/professional-firm/components/pf-service-row.json +104 -0
- package/sites/professional-firm/components/pf-statband.json +183 -0
- package/sites/professional-firm/components/pf-team-member.json +34 -29
- package/sites/professional-firm/content/insights/cash-flow-forecasting.md +1 -0
- package/sites/professional-firm/content/insights/choosing-business-entity.md +1 -0
- package/sites/professional-firm/content/insights/r-and-d-tax-credits.md +1 -0
- package/sites/professional-firm/content/insights/when-to-hire-cfo.md +1 -0
- package/sites/professional-firm/content/insights/year-end-tax-moves.md +1 -0
- package/sites/professional-firm/layouts/article.json +96 -14
- package/sites/professional-firm/layouts/base.json +1 -1
- package/sites/professional-firm/pages/contact.md +5 -26
- package/sites/professional-firm/pages/index.md +39 -45
- package/sites/professional-firm/pages/insights/[slug].json +44 -33
- package/sites/professional-firm/pages/insights.md +7 -11
- package/sites/professional-firm/pages/services.md +16 -16
- package/sites/professional-firm/pages/team.md +10 -10
- package/sites/professional-firm/project.json +74 -30
- package/sites/real-estate/components/re-agent-band.json +240 -0
- package/sites/real-estate/components/re-agent-card.json +51 -24
- package/sites/real-estate/components/re-contact-form.json +76 -27
- package/sites/real-estate/components/re-cta.json +91 -26
- package/sites/real-estate/components/re-feature.json +10 -6
- package/sites/real-estate/components/re-footer.json +186 -46
- package/sites/real-estate/components/re-hero.json +443 -90
- package/sites/real-estate/components/re-intro.json +6 -5
- package/sites/real-estate/components/re-listing-card.json +199 -39
- package/sites/real-estate/components/re-listings-filter.json +309 -192
- package/sites/real-estate/components/re-nav.json +138 -39
- package/sites/real-estate/components/re-neighborhood.json +135 -0
- package/sites/real-estate/components/re-section-header.json +33 -17
- package/sites/real-estate/components/re-stat.json +10 -9
- package/sites/real-estate/components/re-step.json +15 -12
- package/sites/real-estate/components/re-testimonial.json +53 -16
- package/sites/real-estate/content/listings.csv +7 -7
- package/sites/real-estate/pages/[slug].json +430 -128
- package/sites/real-estate/pages/about.md +18 -6
- package/sites/real-estate/pages/contact.md +14 -2
- package/sites/real-estate/pages/index.md +43 -26
- package/sites/real-estate/pages/listings.md +15 -3
- package/sites/real-estate/project.json +88 -30
- package/sites/real-estate/public/favicon.svg +7 -1
- package/sites/restaurant/components/bit-cta.json +92 -14
- package/sites/restaurant/components/bit-feature.json +36 -17
- package/sites/restaurant/components/bit-footer.json +80 -34
- package/sites/restaurant/components/bit-gallery.json +20 -11
- package/sites/restaurant/components/bit-hero.json +179 -54
- package/sites/restaurant/components/bit-hours.json +117 -24
- package/sites/restaurant/components/bit-intro.json +47 -10
- package/sites/restaurant/components/bit-menu-group.json +55 -10
- package/sites/restaurant/components/bit-menu-item.json +27 -12
- package/sites/restaurant/components/bit-nav.json +170 -53
- package/sites/restaurant/components/bit-reservation.json +63 -42
- package/sites/restaurant/components/bit-review.json +49 -19
- package/sites/restaurant/components/bit-section-header.json +60 -15
- package/sites/restaurant/layouts/base.json +1 -1
- package/sites/restaurant/pages/about.md +10 -10
- package/sites/restaurant/pages/contact.md +7 -7
- package/sites/restaurant/pages/index.md +30 -20
- package/sites/restaurant/pages/menu.md +8 -8
- package/sites/restaurant/project.json +71 -28
- package/sites/saas/components/sa-feature-card.json +26 -16
- package/sites/saas/components/sa-hero.json +156 -39
- package/sites/saas/components/sa-nav.json +34 -26
- package/sites/saas/components/sa-pricing.json +11 -10
- package/sites/saas/components/sa-stat.json +8 -4
- package/sites/saas/package.json +2 -2
- package/sites/saas/pages/index.md +8 -8
- package/sites/saas/project.json +24 -16
- package/sites/shop/components/shp-category-tile.json +104 -0
- package/sites/shop/components/shp-cta.json +101 -43
- package/sites/shop/components/shp-feature.json +12 -7
- package/sites/shop/components/shp-footer.json +312 -46
- package/sites/shop/components/shp-hero.json +313 -46
- package/sites/shop/components/shp-nav.json +303 -49
- package/sites/shop/components/shp-newsletter.json +166 -0
- package/sites/shop/components/shp-product-card.json +141 -34
- package/sites/shop/components/shp-product-filter.json +336 -154
- package/sites/shop/components/shp-section-header.json +42 -20
- package/sites/shop/components/shp-stat.json +6 -6
- package/sites/shop/components/shp-trust.json +58 -0
- package/sites/shop/content/product/aero-road-helmet.md +2 -0
- package/sites/shop/content/product/apex-carbon-road.md +1 -0
- package/sites/shop/content/product/backroad-gravel-adv.md +1 -0
- package/sites/shop/content/product/boulder-enduro.md +1 -0
- package/sites/shop/content/product/rambler-kids-20.md +1 -0
- package/sites/shop/content/product/summit-trail-29er.md +1 -0
- package/sites/shop/content/product/trailhead-pannier-set.md +1 -0
- package/sites/shop/content/product/velocity-alloy-road.md +2 -0
- package/sites/shop/pages/index.md +38 -26
- package/sites/shop/pages/products/[sku].json +362 -71
- package/sites/shop/pages/products.md +30 -8
- package/sites/shop/project.json +82 -28
- package/sites/course/components/co-stat.json +0 -36
- package/sites/professional-firm/components/pf-insight-card.json +0 -99
- package/sites/professional-firm/components/pf-service-card.json +0 -77
- package/sites/professional-firm/components/pf-stat.json +0 -37
|
@@ -15,45 +15,65 @@
|
|
|
15
15
|
"maxWidth": "460px",
|
|
16
16
|
"margin": "0 auto",
|
|
17
17
|
"backgroundColor": "var(--color-bg-white)",
|
|
18
|
-
"border": "1px solid var(--color-border)",
|
|
18
|
+
"border": "1px solid var(--color-border-strong)",
|
|
19
19
|
"borderRadius": "1rem",
|
|
20
20
|
"overflow": "hidden",
|
|
21
|
-
"boxShadow": "0
|
|
21
|
+
"boxShadow": "0 30px 70px -34px rgba(15,20,36,0.5)"
|
|
22
22
|
},
|
|
23
23
|
"children": [
|
|
24
24
|
{
|
|
25
25
|
"tagName": "div",
|
|
26
26
|
"style": {
|
|
27
|
-
"display": "${state.badge ? '
|
|
27
|
+
"display": "${state.badge ? 'flex' : 'none'}",
|
|
28
|
+
"alignItems": "center",
|
|
29
|
+
"justifyContent": "center",
|
|
30
|
+
"gap": "0.5rem",
|
|
28
31
|
"backgroundColor": "var(--color-primary)",
|
|
29
32
|
"color": "var(--color-text-white)",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"fontSize": "0.
|
|
33
|
-
"fontWeight": "
|
|
34
|
-
"
|
|
35
|
-
"letterSpacing": "0.08em"
|
|
33
|
+
"padding": "0.65rem 1rem",
|
|
34
|
+
"fontFamily": "var(--font-mono)",
|
|
35
|
+
"fontSize": "0.78rem",
|
|
36
|
+
"fontWeight": "600",
|
|
37
|
+
"letterSpacing": "0.02em"
|
|
36
38
|
},
|
|
37
|
-
"
|
|
39
|
+
"children": [
|
|
40
|
+
{
|
|
41
|
+
"tagName": "span",
|
|
42
|
+
"style": {
|
|
43
|
+
"width": "0.45rem",
|
|
44
|
+
"height": "0.45rem",
|
|
45
|
+
"borderRadius": "999px",
|
|
46
|
+
"backgroundColor": "var(--color-accent)"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{ "tagName": "span", "textContent": "${state.badge}" }
|
|
50
|
+
]
|
|
38
51
|
},
|
|
39
52
|
{
|
|
40
53
|
"tagName": "div",
|
|
41
|
-
"style": { "padding": "clamp(1.
|
|
54
|
+
"style": { "padding": "clamp(1.85rem, 4vw, 2.5rem)" },
|
|
42
55
|
"children": [
|
|
43
56
|
{
|
|
44
57
|
"tagName": "div",
|
|
45
58
|
"style": {
|
|
46
|
-
"fontFamily": "var(--font-
|
|
47
|
-
"fontSize": "
|
|
48
|
-
"fontWeight": "
|
|
59
|
+
"fontFamily": "var(--font-mono)",
|
|
60
|
+
"fontSize": "0.8rem",
|
|
61
|
+
"fontWeight": "600",
|
|
62
|
+
"textTransform": "uppercase",
|
|
63
|
+
"letterSpacing": "0.08em",
|
|
49
64
|
"color": "var(--color-text-muted)",
|
|
50
|
-
"marginBottom": "0.
|
|
65
|
+
"marginBottom": "0.75rem"
|
|
51
66
|
},
|
|
52
67
|
"textContent": "${state.plan}"
|
|
53
68
|
},
|
|
54
69
|
{
|
|
55
70
|
"tagName": "div",
|
|
56
|
-
"style": {
|
|
71
|
+
"style": {
|
|
72
|
+
"display": "flex",
|
|
73
|
+
"alignItems": "baseline",
|
|
74
|
+
"gap": "0.5rem",
|
|
75
|
+
"flexWrap": "wrap"
|
|
76
|
+
},
|
|
57
77
|
"children": [
|
|
58
78
|
{
|
|
59
79
|
"tagName": "span",
|
|
@@ -62,7 +82,8 @@
|
|
|
62
82
|
"fontSize": "clamp(2.5rem, 6vw, 3.25rem)",
|
|
63
83
|
"fontWeight": "800",
|
|
64
84
|
"letterSpacing": "-0.03em",
|
|
65
|
-
"lineHeight": "1"
|
|
85
|
+
"lineHeight": "1",
|
|
86
|
+
"color": "var(--color-text-primary)"
|
|
66
87
|
},
|
|
67
88
|
"textContent": "${state.price}"
|
|
68
89
|
},
|
|
@@ -70,8 +91,9 @@
|
|
|
70
91
|
"tagName": "span",
|
|
71
92
|
"style": {
|
|
72
93
|
"display": "${state.period ? 'inline' : 'none'}",
|
|
94
|
+
"fontFamily": "var(--font-mono)",
|
|
73
95
|
"color": "var(--color-text-muted)",
|
|
74
|
-
"fontSize": "
|
|
96
|
+
"fontSize": "0.9rem",
|
|
75
97
|
"fontWeight": "500"
|
|
76
98
|
},
|
|
77
99
|
"textContent": "${state.period}"
|
|
@@ -93,8 +115,26 @@
|
|
|
93
115
|
"tagName": "div",
|
|
94
116
|
"style": {
|
|
95
117
|
"margin": "0 0 1.75rem",
|
|
118
|
+
"paddingTop": "1.5rem",
|
|
119
|
+
"borderTop": "1px solid var(--color-border)",
|
|
96
120
|
"fontSize": "0.98rem",
|
|
97
|
-
"lineHeight": "1.6"
|
|
121
|
+
"lineHeight": "1.6",
|
|
122
|
+
"& ul": { "listStyle": "none", "margin": "0", "padding": "0" },
|
|
123
|
+
"& li": {
|
|
124
|
+
"position": "relative",
|
|
125
|
+
"paddingLeft": "1.7rem",
|
|
126
|
+
"marginBottom": "0.65rem",
|
|
127
|
+
"color": "var(--color-text-primary)"
|
|
128
|
+
},
|
|
129
|
+
"& li::before": {
|
|
130
|
+
"content": "'✔'",
|
|
131
|
+
"position": "absolute",
|
|
132
|
+
"left": "0",
|
|
133
|
+
"top": "0",
|
|
134
|
+
"color": "#65a30d",
|
|
135
|
+
"fontWeight": "700",
|
|
136
|
+
"fontFamily": "var(--font-mono)"
|
|
137
|
+
}
|
|
98
138
|
},
|
|
99
139
|
"children": [{ "tagName": "slot" }]
|
|
100
140
|
},
|
|
@@ -106,13 +146,17 @@
|
|
|
106
146
|
"textAlign": "center",
|
|
107
147
|
"backgroundColor": "var(--color-primary)",
|
|
108
148
|
"color": "var(--color-text-white)",
|
|
109
|
-
"padding": "0.
|
|
110
|
-
"borderRadius": "
|
|
149
|
+
"padding": "0.95rem 1.5rem",
|
|
150
|
+
"borderRadius": "999px",
|
|
111
151
|
"fontSize": "1.05rem",
|
|
112
|
-
"fontWeight": "
|
|
152
|
+
"fontWeight": "600",
|
|
113
153
|
"textDecoration": "none",
|
|
114
|
-
"
|
|
115
|
-
"
|
|
154
|
+
"boxShadow": "0 14px 30px -14px rgba(79,70,229,0.9)",
|
|
155
|
+
"transition": "background-color 0.15s, transform 0.15s",
|
|
156
|
+
":hover": {
|
|
157
|
+
"backgroundColor": "var(--color-primary-hover)",
|
|
158
|
+
"transform": "translateY(-1px)"
|
|
159
|
+
}
|
|
116
160
|
},
|
|
117
161
|
"textContent": "${state.cta}"
|
|
118
162
|
},
|
|
@@ -122,7 +166,8 @@
|
|
|
122
166
|
"display": "${state.note ? 'block' : 'none'}",
|
|
123
167
|
"margin": "1rem 0 0",
|
|
124
168
|
"textAlign": "center",
|
|
125
|
-
"
|
|
169
|
+
"fontFamily": "var(--font-mono)",
|
|
170
|
+
"fontSize": "0.78rem",
|
|
126
171
|
"color": "var(--color-text-muted)"
|
|
127
172
|
},
|
|
128
173
|
"textContent": "${state.note}"
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"tagName": "co-section-header",
|
|
3
3
|
"state": {
|
|
4
4
|
"eyebrow": "",
|
|
5
|
+
"index": "",
|
|
5
6
|
"heading": "",
|
|
6
7
|
"subheading": "",
|
|
7
8
|
"align": "center"
|
|
@@ -9,32 +10,49 @@
|
|
|
9
10
|
"style": {
|
|
10
11
|
"display": "block",
|
|
11
12
|
"maxWidth": "var(--max-width-narrow)",
|
|
12
|
-
"margin": "0 auto 2.
|
|
13
|
+
"margin": "0 auto 2.75rem",
|
|
13
14
|
"textAlign": "${state.align}"
|
|
14
15
|
},
|
|
15
16
|
"children": [
|
|
16
17
|
{
|
|
17
|
-
"tagName": "
|
|
18
|
+
"tagName": "div",
|
|
18
19
|
"style": {
|
|
19
|
-
"display": "${state.eyebrow ? '
|
|
20
|
-
"
|
|
21
|
-
"
|
|
20
|
+
"display": "${state.eyebrow ? 'flex' : 'none'}",
|
|
21
|
+
"alignItems": "center",
|
|
22
|
+
"gap": "0.6rem",
|
|
23
|
+
"justifyContent": "${state.align === 'center' ? 'center' : 'flex-start'}",
|
|
24
|
+
"fontFamily": "var(--font-mono)",
|
|
22
25
|
"fontSize": "0.8rem",
|
|
23
|
-
"fontWeight": "
|
|
24
|
-
"
|
|
25
|
-
"margin": "0 0 0.75rem"
|
|
26
|
+
"fontWeight": "600",
|
|
27
|
+
"margin": "0 0 0.9rem"
|
|
26
28
|
},
|
|
27
|
-
"
|
|
29
|
+
"children": [
|
|
30
|
+
{ "tagName": "span", "style": { "color": "var(--color-text-faint)" }, "textContent": "//" },
|
|
31
|
+
{
|
|
32
|
+
"tagName": "span",
|
|
33
|
+
"style": { "color": "var(--color-primary)", "letterSpacing": "0.02em" },
|
|
34
|
+
"textContent": "${state.eyebrow}"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"tagName": "span",
|
|
38
|
+
"style": {
|
|
39
|
+
"display": "${state.index ? 'inline' : 'none'}",
|
|
40
|
+
"color": "var(--color-text-faint)"
|
|
41
|
+
},
|
|
42
|
+
"textContent": "· ${state.index}"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
28
45
|
},
|
|
29
46
|
{
|
|
30
47
|
"tagName": "h2",
|
|
31
48
|
"style": {
|
|
32
49
|
"fontFamily": "var(--font-heading)",
|
|
33
|
-
"fontSize": "clamp(1.9rem,
|
|
50
|
+
"fontSize": "clamp(1.9rem, 3.8vw, 2.65rem)",
|
|
34
51
|
"fontWeight": "800",
|
|
35
|
-
"lineHeight": "1.
|
|
36
|
-
"letterSpacing": "-0.
|
|
37
|
-
"margin": "0"
|
|
52
|
+
"lineHeight": "1.12",
|
|
53
|
+
"letterSpacing": "-0.03em",
|
|
54
|
+
"margin": "0",
|
|
55
|
+
"color": "var(--color-text-primary)"
|
|
38
56
|
},
|
|
39
57
|
"textContent": "${state.heading}"
|
|
40
58
|
},
|
|
@@ -43,9 +61,12 @@
|
|
|
43
61
|
"style": {
|
|
44
62
|
"display": "${state.subheading ? 'block' : 'none'}",
|
|
45
63
|
"fontSize": "1.1rem",
|
|
46
|
-
"lineHeight": "1.
|
|
64
|
+
"lineHeight": "1.65",
|
|
47
65
|
"color": "var(--color-text-muted)",
|
|
48
|
-
"margin": "1rem 0 0"
|
|
66
|
+
"margin": "1rem 0 0",
|
|
67
|
+
"maxWidth": "${state.align === 'center' ? '60ch' : 'none'}",
|
|
68
|
+
"marginLeft": "${state.align === 'center' ? 'auto' : '0'}",
|
|
69
|
+
"marginRight": "${state.align === 'center' ? 'auto' : '0'}"
|
|
49
70
|
},
|
|
50
71
|
"textContent": "${state.subheading}"
|
|
51
72
|
}
|
|
@@ -6,47 +6,102 @@
|
|
|
6
6
|
"role": ""
|
|
7
7
|
},
|
|
8
8
|
"style": {
|
|
9
|
-
"display": "
|
|
10
|
-
"
|
|
9
|
+
"display": "flex",
|
|
10
|
+
"flexDirection": "column",
|
|
11
|
+
"padding": "1.85rem",
|
|
11
12
|
"backgroundColor": "var(--color-bg-white)",
|
|
12
13
|
"border": "1px solid var(--color-border)",
|
|
13
14
|
"borderRadius": "var(--radius)",
|
|
14
|
-
"boxShadow": "0
|
|
15
|
+
"boxShadow": "0 8px 26px -18px rgba(15,20,36,0.4)"
|
|
15
16
|
},
|
|
16
17
|
"children": [
|
|
17
18
|
{
|
|
18
19
|
"tagName": "div",
|
|
19
20
|
"style": {
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
21
|
+
"display": "flex",
|
|
22
|
+
"alignItems": "center",
|
|
23
|
+
"gap": "0.6rem",
|
|
24
|
+
"marginBottom": "1rem"
|
|
24
25
|
},
|
|
25
|
-
"
|
|
26
|
+
"children": [
|
|
27
|
+
{
|
|
28
|
+
"tagName": "span",
|
|
29
|
+
"style": { "color": "#eab308", "fontSize": "0.95rem", "letterSpacing": "0.1em" },
|
|
30
|
+
"textContent": "★★★★★"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"tagName": "span",
|
|
34
|
+
"style": {
|
|
35
|
+
"fontFamily": "var(--font-mono)",
|
|
36
|
+
"fontSize": "0.7rem",
|
|
37
|
+
"color": "#65a30d",
|
|
38
|
+
"fontWeight": "600"
|
|
39
|
+
},
|
|
40
|
+
"textContent": "hired ✔"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
26
43
|
},
|
|
27
44
|
{
|
|
28
45
|
"tagName": "p",
|
|
29
46
|
"style": {
|
|
30
47
|
"fontFamily": "var(--font-heading)",
|
|
31
|
-
"fontSize": "1.
|
|
32
|
-
"lineHeight": "1.
|
|
48
|
+
"fontSize": "1.08rem",
|
|
49
|
+
"lineHeight": "1.55",
|
|
33
50
|
"fontWeight": "500",
|
|
34
|
-
"
|
|
51
|
+
"letterSpacing": "-0.01em",
|
|
52
|
+
"margin": "0 0 1.35rem",
|
|
53
|
+
"color": "var(--color-text-primary)",
|
|
54
|
+
"flex": "1"
|
|
35
55
|
},
|
|
36
56
|
"textContent": "“${state.quote}”"
|
|
37
57
|
},
|
|
38
58
|
{
|
|
39
59
|
"tagName": "div",
|
|
60
|
+
"style": {
|
|
61
|
+
"display": "flex",
|
|
62
|
+
"alignItems": "center",
|
|
63
|
+
"gap": "0.75rem",
|
|
64
|
+
"paddingTop": "1rem",
|
|
65
|
+
"borderTop": "1px solid var(--color-border)"
|
|
66
|
+
},
|
|
40
67
|
"children": [
|
|
41
68
|
{
|
|
42
69
|
"tagName": "div",
|
|
43
|
-
"style": {
|
|
44
|
-
|
|
70
|
+
"style": {
|
|
71
|
+
"flex": "none",
|
|
72
|
+
"display": "flex",
|
|
73
|
+
"alignItems": "center",
|
|
74
|
+
"justifyContent": "center",
|
|
75
|
+
"width": "2.4rem",
|
|
76
|
+
"height": "2.4rem",
|
|
77
|
+
"borderRadius": "999px",
|
|
78
|
+
"backgroundColor": "var(--color-indigo-050)",
|
|
79
|
+
"border": "1px solid var(--color-indigo-line)",
|
|
80
|
+
"color": "var(--color-primary)",
|
|
81
|
+
"fontFamily": "var(--font-mono)",
|
|
82
|
+
"fontWeight": "700",
|
|
83
|
+
"fontSize": "1rem"
|
|
84
|
+
},
|
|
85
|
+
"textContent": "❯"
|
|
45
86
|
},
|
|
46
87
|
{
|
|
47
88
|
"tagName": "div",
|
|
48
|
-
"
|
|
49
|
-
|
|
89
|
+
"children": [
|
|
90
|
+
{
|
|
91
|
+
"tagName": "div",
|
|
92
|
+
"style": {
|
|
93
|
+
"fontWeight": "700",
|
|
94
|
+
"fontSize": "0.95rem",
|
|
95
|
+
"color": "var(--color-text-primary)"
|
|
96
|
+
},
|
|
97
|
+
"textContent": "${state.author}"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"tagName": "div",
|
|
101
|
+
"style": { "fontSize": "0.85rem", "color": "var(--color-text-muted)" },
|
|
102
|
+
"textContent": "${state.role}"
|
|
103
|
+
}
|
|
104
|
+
]
|
|
50
105
|
}
|
|
51
106
|
]
|
|
52
107
|
}
|
|
@@ -3,18 +3,17 @@ title: "About — Craft & Code Academy"
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
:::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
6
|
-
::co-section-header{props.eyebrow="
|
|
6
|
+
::co-section-header{props.eyebrow="our approach" props.heading="We teach the way people actually learn" props.subheading="By building real things, with real support, in a real community."}
|
|
7
7
|
:::::
|
|
8
8
|
|
|
9
9
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
10
10
|
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="1fr 1fr" style.gap="clamp(2rem, 5vw, 4rem)" style.alignItems="center" style.--md.gridTemplateColumns="1fr"}
|
|
11
11
|
:::div
|
|
12
|
-
::img{src="/images/about.jpg" alt="Students studying code together" loading="lazy" style.width="100%" style.height="auto" style.borderRadius="var(--radius)" style.display="block" style.boxShadow="0
|
|
12
|
+
::img{src="/images/about.jpg" alt="Students studying code together" loading="lazy" style.width="100%" style.height="auto" style.borderRadius="var(--radius)" style.display="block" style.border="1px solid var(--color-border)" style.boxShadow="0 24px 60px -30px rgba(15,20,36,0.5)"}
|
|
13
13
|
:::
|
|
14
14
|
|
|
15
|
-
:::div{style.fontSize="1.
|
|
16
|
-
|
|
17
|
-
### Built by engineers who wanted a better way in
|
|
15
|
+
:::div{style.fontSize="1.06rem" style.lineHeight="1.8"}
|
|
16
|
+
::co-section-header{props.eyebrow="the origin" props.heading="Built by engineers who wanted a better way in" props.align="left"}
|
|
18
17
|
|
|
19
18
|
Craft & Code Academy started with a frustration: most people who want to code get stuck in a maze of half-finished tutorials. So we built the program we wish we'd had — project-based from day one, with mentors who've shipped real software and a cohort that learns together.
|
|
20
19
|
|
|
@@ -24,21 +23,21 @@ We keep classes small on purpose. When you get stuck, someone is there. When you
|
|
|
24
23
|
:::::
|
|
25
24
|
|
|
26
25
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
27
|
-
::co-section-header{props.eyebrow="
|
|
26
|
+
::co-section-header{props.eyebrow="what we stand for" props.index="3 principles" props.heading="Three things we won't compromise on"}
|
|
28
27
|
|
|
29
28
|
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
|
|
30
|
-
::co-outcome-card{props.icon="🛠️" props.title="Learn by building" props.text="Every concept is anchored to a project. You leave each module with something real to show."}
|
|
29
|
+
::co-outcome-card{props.number="01" props.icon="🛠️" props.title="Learn by building" props.text="Every concept is anchored to a project. You leave each module with something real to show."}
|
|
31
30
|
|
|
32
|
-
::co-outcome-card{props.icon="🤝" props.title="Never stuck alone" props.text="Live mentorship and small-group code review mean help is always a moment away."}
|
|
31
|
+
::co-outcome-card{props.number="02" props.icon="🤝" props.title="Never stuck alone" props.text="Live mentorship and small-group code review mean help is always a moment away."}
|
|
33
32
|
|
|
34
|
-
::co-outcome-card{props.icon="🎯" props.title="Job-focused" props.text="We reverse-engineer what junior roles actually require and teach straight to it."}
|
|
33
|
+
::co-outcome-card{props.number="03" props.icon="🎯" props.title="Job-focused" props.text="We reverse-engineer what junior roles actually require and teach straight to it."}
|
|
35
34
|
::::
|
|
36
35
|
:::::
|
|
37
36
|
|
|
38
37
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
39
|
-
::co-section-header{props.eyebrow="
|
|
38
|
+
::co-section-header{props.eyebrow="your instructor" props.heading="Meet Maya"}
|
|
40
39
|
|
|
41
40
|
::co-instructor-card{props.name="Maya Okonkwo" props.role="Lead Instructor · ex-Staff Engineer" props.bio="Maya spent a decade building products at startups and a large fintech before teaching full-time. She's mentored hundreds of career-changers and believes anyone can learn to code with the right structure and support." props.image="/images/instructor.jpg"}
|
|
42
41
|
:::::
|
|
43
42
|
|
|
44
|
-
::co-cta{props.heading="Come build with us." props.text="If you're ready to put in the work, we'll make sure you're never doing it alone." props.cta="Enroll Now" props.ctaHref="/enroll/"}
|
|
43
|
+
::co-cta{props.kicker="$ ./join --cohort fall" props.heading="Come build with us." props.text="If you're ready to put in the work, we'll make sure you're never doing it alone." props.cta="Enroll Now" props.ctaHref="/enroll/" props.note="Applications reviewed on a rolling basis"}
|
|
@@ -11,11 +11,15 @@ state:
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
:::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
14
|
-
::co-section-header{props.eyebrow="
|
|
14
|
+
::co-section-header{props.eyebrow="the curriculum" props.index="6 modules · 14 weeks" props.heading="The full curriculum" props.subheading="A structured path from your first line of code to a deployed, full-stack application — with mentorship at every step."}
|
|
15
15
|
:::::
|
|
16
16
|
|
|
17
17
|
:::::section{style.maxWidth="var(--max-width-narrow)" style.margin="0 auto" style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem"}
|
|
18
|
-
::::div{style.
|
|
18
|
+
::::div{style.marginBottom="2rem" style.fontFamily="var(--font-mono)" style.fontSize="0.82rem" style.color="var(--color-text-muted)"}
|
|
19
|
+
// 14-week track · one module builds on the last
|
|
20
|
+
::::
|
|
21
|
+
|
|
22
|
+
::::div{style.display="grid" style.gap="0"}
|
|
19
23
|
:::Array{items.ref="#/state/modules"}
|
|
20
24
|
::co-module-card{props.order="${item.data.order}" props.title="${item.data.title}" props.summary="${item.data.summary}" props.duration="${item.data.duration}"}
|
|
21
25
|
:::
|
|
@@ -23,9 +27,9 @@ state:
|
|
|
23
27
|
:::::
|
|
24
28
|
|
|
25
29
|
:::::section{style.padding="clamp(3rem, 8vw, 5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
26
|
-
::co-section-header{props.eyebrow="
|
|
30
|
+
::co-section-header{props.eyebrow="explore interactively" props.heading="Open a module to see its lessons"}
|
|
27
31
|
|
|
28
32
|
::co-curriculum-accordion
|
|
29
33
|
:::::
|
|
30
34
|
|
|
31
|
-
::co-cta{props.heading="This could be your next 14 weeks." props.text="Every module builds toward a capstone you'll be proud to show. Reserve your seat in the next cohort." props.cta="Enroll Now" props.ctaHref="/enroll/"}
|
|
35
|
+
::co-cta{props.kicker="$ git commit -m 'my first job'" props.heading="This could be your next 14 weeks." props.text="Every module builds toward a capstone you'll be proud to show. Reserve your seat in the next cohort." props.cta="Enroll Now" props.ctaHref="/enroll/" props.note="Fall cohort starts September 8"}
|
|
@@ -3,14 +3,13 @@ title: "Enroll — Craft & Code Academy"
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
:::::section{style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
6
|
-
::co-section-header{props.eyebrow="
|
|
6
|
+
::co-section-header{props.eyebrow="admissions open" props.heading="Reserve your seat" props.subheading="One transparent price, everything included, and flexible payment plans. The fall cohort is limited to 24 students."}
|
|
7
7
|
:::::
|
|
8
8
|
|
|
9
9
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
10
10
|
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="1fr 1fr" style.gap="clamp(2rem, 5vw, 3.5rem)" style.alignItems="center" style.--md.gridTemplateColumns="1fr"}
|
|
11
|
-
:::div{style.fontSize="1.
|
|
12
|
-
|
|
13
|
-
### Everything you need to get hired
|
|
11
|
+
:::div{style.fontSize="1.06rem" style.lineHeight="1.8"}
|
|
12
|
+
::co-section-header{props.eyebrow="what's included" props.heading="Everything you need to get hired" props.align="left"}
|
|
14
13
|
|
|
15
14
|
Your tuition covers 14 weeks of live instruction, one-on-one mentorship, small-group code review, and career support that continues after you graduate. No upsells, no surprise fees.
|
|
16
15
|
|
|
@@ -22,7 +21,7 @@ Not sure if it's the right fit? Book a call with our admissions team and we'll w
|
|
|
22
21
|
- **✓** 7-day full refund, no questions asked
|
|
23
22
|
:::
|
|
24
23
|
|
|
25
|
-
:::co-pricing{props.badge="Fall cohort · 24 seats" props.plan="Full Program" props.price="$8,900" props.period="or 6 monthly payments" props.description="14 weeks of live instruction, mentorship, and career support — end to end." props.cta="Apply Now" props.ctaHref="#apply" props.note="7-day full refund ·
|
|
24
|
+
:::co-pricing{props.badge="Fall cohort · 24 seats" props.plan="Full Program" props.price="$8,900" props.period="or 6 monthly payments" props.description="14 weeks of live instruction, mentorship, and career support — end to end." props.cta="Apply Now" props.ctaHref="#apply" props.note="7-day full refund · scholarships available"}
|
|
26
25
|
|
|
27
26
|
- Six project-based modules
|
|
28
27
|
- Live mentorship & small-group code review
|
|
@@ -34,13 +33,13 @@ Not sure if it's the right fit? Book a call with our admissions team and we'll w
|
|
|
34
33
|
:::::
|
|
35
34
|
|
|
36
35
|
:::::section{id="apply" style.maxWidth="var(--max-width-narrow)" style.margin="0 auto" style.padding="clamp(3rem, 6vw, 4.5rem) 1.5rem"}
|
|
37
|
-
::co-section-header{props.eyebrow="
|
|
36
|
+
::co-section-header{props.eyebrow="apply" props.heading="Start your application" props.subheading="Tell us a little about yourself and admissions will be in touch within two business days."}
|
|
38
37
|
|
|
39
38
|
::co-application
|
|
40
39
|
:::::
|
|
41
40
|
|
|
42
41
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
43
|
-
::co-section-header{props.eyebrow="
|
|
42
|
+
::co-section-header{props.eyebrow="faq" props.heading="Before you apply"}
|
|
44
43
|
|
|
45
44
|
::co-faq
|
|
46
45
|
:::::
|
|
@@ -2,61 +2,63 @@
|
|
|
2
2
|
title: "Craft & Code Academy — Become a web developer in 14 weeks"
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
::co-hero{props.eyebrow="
|
|
5
|
+
::co-hero{props.eyebrow="online web-dev bootcamp" props.heading="Become a web developer" props.headingAccent="in 14 weeks." props.subheading="A project-based bootcamp with live mentorship. Six guided modules take you from your first line of HTML to a deployed, full-stack capstone — job-ready, on a clear schedule." props.cta="Enroll Now" props.ctaHref="/enroll/" props.cta2="View Curriculum" props.cta2Href="/curriculum/" props.note="Next cohort starts Sept 8 · limited to 24 seats" props.o1="14 weeks" props.o2="job-ready" props.o3="live cohort"}
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(4, 1fr)" style.gap="1.5rem" style.--sm.gridTemplateColumns="repeat(2, 1fr)"}
|
|
9
|
-
::co-stat{props.value="1,200+" props.label="Graduates hired"}
|
|
10
|
-
|
|
11
|
-
::co-stat{props.value="94%" props.label="Land a dev role"}
|
|
12
|
-
|
|
13
|
-
::co-stat{props.value="14 wks" props.label="Guided program"}
|
|
14
|
-
|
|
15
|
-
::co-stat{props.value="4.9/5" props.label="Student rating"}
|
|
16
|
-
::::
|
|
17
|
-
:::::
|
|
7
|
+
::co-outcomes{props.kicker="track record" props.heading="Structure that gets people hired" props.n1="1,200+" props.l1="Graduates hired" props.n2="92%" props.l2="Hired within 6 months" props.n3="14 wks" props.l3="Guided, cohort-based" props.n4="4.9/5" props.l4="Average student rating"}
|
|
18
8
|
|
|
19
9
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
20
|
-
::co-section-header{props.eyebrow="
|
|
10
|
+
::co-section-header{props.eyebrow="what you'll learn" props.index="6 skill areas" props.heading="Skills that get you hired" props.subheading="Every module is hands-on. You don't just watch — you build, review, and ship."}
|
|
21
11
|
|
|
22
12
|
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
|
|
23
|
-
::co-outcome-card{props.icon="🧩" props.title="Think like an engineer" props.text="Break problems down, reason about code, and debug with confidence — the durable skills behind every framework."}
|
|
13
|
+
::co-outcome-card{props.number="01" props.icon="🧩" props.title="Think like an engineer" props.text="Break problems down, reason about code, and debug with confidence — the durable skills behind every framework."}
|
|
24
14
|
|
|
25
|
-
::co-outcome-card{props.icon="🎨" props.title="Build real interfaces" props.text="Responsive, accessible UIs with semantic HTML, modern CSS, and component-driven JavaScript."}
|
|
15
|
+
::co-outcome-card{props.number="02" props.icon="🎨" props.title="Build real interfaces" props.text="Responsive, accessible UIs with semantic HTML, modern CSS, and component-driven JavaScript."}
|
|
26
16
|
|
|
27
|
-
::co-outcome-card{props.icon="⚡" props.title="Ship interactive apps" props.text="Wire up state, events, and live APIs to create apps that respond instantly to your users."}
|
|
17
|
+
::co-outcome-card{props.number="03" props.icon="⚡" props.title="Ship interactive apps" props.text="Wire up state, events, and live APIs to create apps that respond instantly to your users."}
|
|
28
18
|
|
|
29
|
-
::co-outcome-card{props.icon="🗄️" props.title="Work full-stack" props.text="Design REST APIs, model relational data, and connect a real backend to your frontend."}
|
|
19
|
+
::co-outcome-card{props.number="04" props.icon="🗄️" props.title="Work full-stack" props.text="Design REST APIs, model relational data, and connect a real backend to your frontend."}
|
|
30
20
|
|
|
31
|
-
::co-outcome-card{props.icon="🚀" props.title="Deploy to production" props.text="Take projects from your laptop to the cloud with Git, CI, and modern hosting."}
|
|
21
|
+
::co-outcome-card{props.number="05" props.icon="🚀" props.title="Deploy to production" props.text="Take projects from your laptop to the cloud with Git, CI, and modern hosting."}
|
|
32
22
|
|
|
33
|
-
::co-outcome-card{props.icon="💼" props.title="Graduate job-ready" props.text="Leave with a portfolio, a full-stack capstone, and the interview prep to back it up."}
|
|
23
|
+
::co-outcome-card{props.number="06" props.icon="💼" props.title="Graduate job-ready" props.text="Leave with a portfolio, a full-stack capstone, and the interview prep to back it up."}
|
|
34
24
|
::::
|
|
35
25
|
:::::
|
|
36
26
|
|
|
37
27
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
38
|
-
::co-section-header{props.eyebrow="
|
|
28
|
+
::co-section-header{props.eyebrow="the curriculum" props.index="14 weeks" props.heading="Six modules, one clear path" props.subheading="Click any module to see the lessons inside. It all builds toward your capstone."}
|
|
39
29
|
|
|
40
30
|
::co-curriculum-accordion
|
|
41
31
|
|
|
42
32
|
::::div{style.textAlign="center" style.marginTop="2rem"}
|
|
43
|
-
:::a{href="/curriculum/" style.display="inline-
|
|
33
|
+
:::a{href="/curriculum/" style.display="inline-flex" style.alignItems="center" style.gap="0.4rem" style.fontFamily="var(--font-mono)" style.color="var(--color-primary)" style.fontWeight="600" style.textDecoration="none" style.fontSize="0.9rem"}
|
|
44
34
|
See the full curriculum →
|
|
45
35
|
:::
|
|
46
36
|
::::
|
|
47
37
|
:::::
|
|
48
38
|
|
|
49
39
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
50
|
-
::co-section-header{props.eyebrow="
|
|
40
|
+
::co-section-header{props.eyebrow="your instructor" props.heading="Learn from someone who's shipped"}
|
|
51
41
|
|
|
52
42
|
::co-instructor-card{props.name="Maya Okonkwo" props.role="Lead Instructor · ex-Staff Engineer" props.bio="Maya spent a decade building products at startups and a large fintech before teaching full-time. She's mentored hundreds of career-changers and believes anyone can learn to code with the right structure and support." props.image="/images/instructor.jpg"}
|
|
43
|
+
|
|
44
|
+
::::div{style.maxWidth="var(--max-width-narrow)" style.margin="2.5rem auto 0.9rem" style.textAlign="center" style.fontFamily="var(--font-mono)" style.fontSize="0.8rem" style.color="var(--color-text-muted)"}
|
|
45
|
+
// plus a team of mentors in your corner
|
|
46
|
+
::::
|
|
47
|
+
|
|
48
|
+
::::div{style.maxWidth="var(--max-width-narrow)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1rem" style.--sm.gridTemplateColumns="1fr"}
|
|
49
|
+
::co-mentor{props.initials="JL" props.name="Jordan Lee" props.role="mentor · frontend"}
|
|
50
|
+
|
|
51
|
+
::co-mentor{props.initials="SR" props.name="Sam Rivera" props.role="mentor · backend"}
|
|
52
|
+
|
|
53
|
+
::co-mentor{props.initials="AK" props.name="Aisha Khan" props.role="mentor · careers"}
|
|
54
|
+
::::
|
|
53
55
|
:::::
|
|
54
56
|
|
|
55
57
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
56
|
-
::co-section-header{props.eyebrow="
|
|
58
|
+
::co-section-header{props.eyebrow="student stories" props.heading="From first commit to first job"}
|
|
57
59
|
|
|
58
60
|
::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="repeat(3, 1fr)" style.gap="1.25rem" style.--md.gridTemplateColumns="1fr"}
|
|
59
|
-
::co-testimonial-card{props.quote="I started with zero experience and ended with a job offer. The mentorship made all the difference when I got stuck." props.author="Priya S." props.role="Frontend Developer,
|
|
61
|
+
::co-testimonial-card{props.quote="I started with zero experience and ended with a job offer. The mentorship made all the difference when I got stuck." props.author="Priya S." props.role="Frontend Developer, health-tech"}
|
|
60
62
|
|
|
61
63
|
::co-testimonial-card{props.quote="The capstone is the real deal. I still show that project in interviews and people are genuinely impressed." props.author="Marcus T." props.role="Junior Full-Stack Developer"}
|
|
62
64
|
|
|
@@ -64,10 +66,19 @@ See the full curriculum →
|
|
|
64
66
|
::::
|
|
65
67
|
:::::
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
::co-section-header{props.eyebrow="
|
|
69
|
+
::::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem"}
|
|
70
|
+
::co-section-header{props.eyebrow="tuition" props.heading="One program. Everything included." props.subheading="No hidden fees. Flexible payment plans and need-based scholarships available."}
|
|
71
|
+
|
|
72
|
+
:::::div{style.maxWidth="var(--max-width)" style.margin="0 auto" style.display="grid" style.gridTemplateColumns="1fr 1fr" style.gap="clamp(2rem, 5vw, 3.5rem)" style.alignItems="center" style.--md.gridTemplateColumns="1fr"}
|
|
73
|
+
::::div
|
|
74
|
+
::co-cohort{props.c1label="Fall 2026" props.c1date="Sept 8" props.c1seats="6 seats left" props.c2label="Winter 2027" props.c2date="Jan 12" props.c2seats="Waitlist" props.note="Payment plans + need-based scholarships available"}
|
|
75
|
+
|
|
76
|
+
:::div{style.marginTop="1.5rem" style.fontSize="1.02rem" style.lineHeight="1.75" style.color="var(--color-text-muted)"}
|
|
77
|
+
Your tuition covers 14 weeks of live instruction, one-on-one mentorship, and career support that continues after you graduate. Reserve a seat with a deposit — the rest is flexible.
|
|
78
|
+
:::
|
|
79
|
+
::::
|
|
69
80
|
|
|
70
|
-
::::co-pricing{props.badge="Fall cohort · 24 seats" props.plan="Full Program" props.price="$8,900" props.period="or 6 monthly payments" props.description="14 weeks of live instruction, mentorship, and career support — end to end." props.cta="Enroll Now" props.ctaHref="/enroll/" props.note="7-day full refund ·
|
|
81
|
+
::::co-pricing{props.badge="Fall cohort · 24 seats" props.plan="Full Program" props.price="$8,900" props.period="or 6 monthly payments" props.description="14 weeks of live instruction, mentorship, and career support — end to end." props.cta="Enroll Now" props.ctaHref="/enroll/" props.note="7-day full refund · scholarships available"}
|
|
71
82
|
|
|
72
83
|
- Six project-based modules
|
|
73
84
|
- Live mentorship & small-group code review
|
|
@@ -76,11 +87,12 @@ See the full curriculum →
|
|
|
76
87
|
- Lifetime access to course materials
|
|
77
88
|
::::
|
|
78
89
|
:::::
|
|
90
|
+
::::::
|
|
79
91
|
|
|
80
92
|
:::::section{style.padding="clamp(3.5rem, 8vw, 6rem) 1.5rem" style.backgroundColor="var(--color-bg-cream)"}
|
|
81
|
-
::co-section-header{props.eyebrow="
|
|
93
|
+
::co-section-header{props.eyebrow="faq" props.heading="Questions, answered"}
|
|
82
94
|
|
|
83
95
|
::co-faq
|
|
84
96
|
:::::
|
|
85
97
|
|
|
86
|
-
::co-cta{props.heading="Ready to change careers?" props.text="Join the next cohort and go from curious to job-ready in 14 weeks. Seats are limited." props.cta="Enroll Now" props.ctaHref="/enroll/" props.note="Next cohort starts September 8"}
|
|
98
|
+
::co-cta{props.kicker="$ ./enroll --now" props.heading="Ready to change careers?" props.text="Join the next cohort and go from curious to job-ready in 14 weeks. Seats are limited." props.cta="Enroll Now" props.ctaHref="/enroll/" props.note="Next cohort starts September 8"}
|