@@ -592,10 +595,18 @@
}
}
- & .homepage-cta {
+ & .buy {
grid-area: cta;
}
+ & .buy-note {
+ color: var(--color-foreground);
+ font-size: 0.9375rem;
+ letter-spacing: -0.04em;
+ margin: 0.75rem 0 0;
+ opacity: 0.65;
+ }
+
@media screen and (max-width: 599px) {
& .meet-grid {
grid-template-areas:
diff --git a/src/routes/preview/home/+page.svelte b/src/routes/preview/home/+page.svelte
new file mode 100644
index 00000000..aa41db0c
--- /dev/null
+++ b/src/routes/preview/home/+page.svelte
@@ -0,0 +1,118 @@
+
+
+
+
+
home page variants
+
+ every variant keeps the hero, the setup section, the map, the testimonials and the closing
+ cta. what changes is the meet comma four copy, the four feature callouts, and one new
+ section that argues the product.
+
+
+
+
+
+
+
+
+
diff --git a/src/routes/preview/home/01/+page.svelte b/src/routes/preview/home/01/+page.svelte
new file mode 100644
index 00000000..2b148662
--- /dev/null
+++ b/src/routes/preview/home/01/+page.svelte
@@ -0,0 +1,43 @@
+
+
+
+ comma.ai — variant 01
+
+
+
+
+
diff --git a/src/routes/preview/home/02/+page.svelte b/src/routes/preview/home/02/+page.svelte
new file mode 100644
index 00000000..3505e0e8
--- /dev/null
+++ b/src/routes/preview/home/02/+page.svelte
@@ -0,0 +1,43 @@
+
+
+
+ comma.ai — variant 02
+
+
+
+
+
diff --git a/src/routes/preview/home/03/+page.svelte b/src/routes/preview/home/03/+page.svelte
new file mode 100644
index 00000000..dcbf57aa
--- /dev/null
+++ b/src/routes/preview/home/03/+page.svelte
@@ -0,0 +1,43 @@
+
+
+
+ comma.ai — variant 03
+
+
+
+
+
diff --git a/src/routes/preview/home/04/+page.svelte b/src/routes/preview/home/04/+page.svelte
new file mode 100644
index 00000000..23ad1f5b
--- /dev/null
+++ b/src/routes/preview/home/04/+page.svelte
@@ -0,0 +1,43 @@
+
+
+
+ comma.ai — variant 04
+
+
+
+
+
diff --git a/src/routes/preview/home/05/+page.svelte b/src/routes/preview/home/05/+page.svelte
new file mode 100644
index 00000000..1a90bc2a
--- /dev/null
+++ b/src/routes/preview/home/05/+page.svelte
@@ -0,0 +1,44 @@
+
+
+
+ comma.ai — variant 05
+
+
+
+
+
diff --git a/src/routes/preview/home/_Brain.svelte b/src/routes/preview/home/_Brain.svelte
new file mode 100644
index 00000000..d5e2fc7e
--- /dev/null
+++ b/src/routes/preview/home/_Brain.svelte
@@ -0,0 +1,147 @@
+
+
+
+
+
+
nobody told it how to drive
+
+
+
+ the lane keeping in your car is a rulebook. find the left line, find the right line,
+ stay in between. when the paint is worn, or wet, or buried under snow, there is nothing
+ left for it to follow, so it hands the wheel back to you.
+
+
+ openpilot has no rulebook. it watched hundreds of millions of miles of regular people
+ driving and picked up how they do it. then it drives that way.
+
+
+ so it goes straight through an intersection. it takes the curve instead of flattening
+ it. it holds the middle of a back road that never had a line painted on it. at night,
+ in the rain, on a road you'd call bad, because that is where a lot of those miles came
+ from.
+
+
+
+
+
+ {#each stats as stat}
+
+ {stat.value}
+ {stat.label}
+
+ {/each}
+
+
+
+
+
diff --git a/src/routes/preview/home/_Comparison.svelte b/src/routes/preview/home/_Comparison.svelte
new file mode 100644
index 00000000..a504aa28
--- /dev/null
+++ b/src/routes/preview/home/_Comparison.svelte
@@ -0,0 +1,151 @@
+
+
+
+
+
“but my car already has that”
+
+ we hear it a lot. lane keeping and cruise control have been on the window sticker for years.
+ here is what the sticker doesn't tell you.
+
+
+
+
+ what came with your car
+ what you get with a comma four
+
+
+ {#each rows as row}
+
+
{row.stock}
+
{row.comma}
+
+ {/each}
+
+
+
+
+
diff --git a/src/routes/preview/home/_Drive.svelte b/src/routes/preview/home/_Drive.svelte
new file mode 100644
index 00000000..c461c404
--- /dev/null
+++ b/src/routes/preview/home/_Drive.svelte
@@ -0,0 +1,143 @@
+
+
+
+
+
what a drive actually looks like
+
+
+ {#each beats as item, index}
+
+ {String(index + 1).padStart(2, "0")}
+
+ {item.beat}
+ {item.detail}
+
+
+ {/each}
+
+
+
+
+
+
+
diff --git a/src/routes/preview/home/_HomeVariant.svelte b/src/routes/preview/home/_HomeVariant.svelte
new file mode 100644
index 00000000..333ea0d0
--- /dev/null
+++ b/src/routes/preview/home/_HomeVariant.svelte
@@ -0,0 +1,934 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
meet comma four
+ {meetSub}
+
+
+
+
+
+
+
+
+
+ {#each deviceViews as view, index}
+
selectedDeviceViewIndex = index}
+ aria-label={`Show comma four ${view.label}`}
+ aria-pressed={index === selectedDeviceViewIndex}
+ >
+
+
+ {/each}
+
+
+
+
+ {#each features as feature}
+
+
+ {@html feature.icon}
+
+
+ {feature.label}
+ {#if feature.note}
+ {feature.note}
+ {/if}
+
+
+ {/each}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ plug it in & hit the
+ road in 15 minutes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ openpilot is driving all over the world, right now
+
+
+
+
+
+
+
+
+
+
+
+
+
+
don't take our word for it
+
+
+
+
+
+
+
+
+
+
ready to make driving chill?
+
hands free driving for the car you already have
+
+
+
+
+
+
+
diff --git a/src/routes/preview/home/_More.svelte b/src/routes/preview/home/_More.svelte
new file mode 100644
index 00000000..3ff72d05
--- /dev/null
+++ b/src/routes/preview/home/_More.svelte
@@ -0,0 +1,141 @@
+
+
+
+
+
half of what you get isn't driving
+
+ three cameras, a cell connection and a computer live behind your mirror. steering is just
+ the part you notice first.
+
+
+
+ {#each groups as group}
+
+
{group.title}
+
+ {#each group.items as item}
+ {item}
+ {/each}
+
+
+ {/each}
+
+
+
+
+
+
+
diff --git a/src/routes/preview/home/_Questions.svelte b/src/routes/preview/home/_Questions.svelte
new file mode 100644
index 00000000..15afd95a
--- /dev/null
+++ b/src/routes/preview/home/_Questions.svelte
@@ -0,0 +1,108 @@
+
+
+
+
+
the questions everyone asks
+
+
+ {#each questions as item}
+
+
{item.q}
+ {item.a}
+
+ {/each}
+
+
+
+
+