Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
8f202e3
feat(website): interactive ComfyUI node-graph hero
Jul 20, 2026
78a0eb7
feat(website): redesign hero to match Figma flow
Jul 20, 2026
df253a6
fix(website): tighten hero fidelity to the Figma
Jul 20, 2026
ad9d4b1
feat(website): show the headline as highlighter chips
Jul 21, 2026
61b9f6f
feat(website): render hero headline with the NodeBadge pill style
Jul 21, 2026
8d808c4
fix(website): give the hero nodes a consistent neutral bezel
Jul 21, 2026
fafb1c8
fix(website): node header band and highlighter headline
Jul 21, 2026
801e6c4
feat(website): liquid goo headline lockup
Jul 22, 2026
6d8d7f3
fix(website): move headline above the graph and anchor wires inside c…
Jul 22, 2026
fb5fd44
fix(website): wire anchor polish and image drag
Jul 22, 2026
8b65bcb
feat(website): asymmetric hero composition with off-screen output
Jul 22, 2026
290a2da
feat(website): expand hero angle set with left/right/close poses
Jul 23, 2026
aff1fc5
feat(website): live COLOR node in the hero pipeline
Jul 23, 2026
ddc7ed9
fix(website): simplify COLOR node to gradient sliders and align wire …
Jul 23, 2026
368e3c1
fix(website): keep node drag off the colour sliders
Jul 23, 2026
ece472a
feat(website): replace hero angles with the regenerated set
Jul 24, 2026
753a992
fix(website): camera zoom feel, slanted pills, links under nodes
Jul 24, 2026
ee9e7cf
fix(website): normalize node badge cap heights
Jul 24, 2026
7fc6f3c
fix(website): zoom handle follows its track
Jul 24, 2026
e8982da
feat(website): interactive mobile hero flow
Jul 24, 2026
91fbbef
feat(website): front close-up/wide renders and tighter mobile flow
Jul 24, 2026
b957709
feat(website): match hero to design specs and add idle self-demo
bertfy Jul 28, 2026
c7425c6
feat(website): drop the photo from the hero camera gizmo
bertfy Jul 29, 2026
298eac1
feat(website): add a Get started for free CTA to the hero
bertfy Jul 29, 2026
045853c
feat(website): ship the elevated band and complete the eye-level ring
bertfy Jul 29, 2026
e0a9230
Merge remote-tracking branch 'origin/main' into feat/comfy-org-hero-g…
bertfy Jul 29, 2026
7a029fd
feat(website): route hero CTA through cloudCta tracking
bertfy Jul 29, 2026
38ae04e
Merge branch 'feat/comfy-org-hero-graph-bert' of https://github.com/C…
bertfy Jul 29, 2026
cf4421b
feat(website): raise hero nodes and drop the CTA below the graph
bertfy Jul 29, 2026
250779b
feat(website): switch hero CTA to the outline button variant
bertfy Jul 29, 2026
a1b7c71
fix(website): match hero CTA to BrandButton and centre node labels
bertfy Jul 29, 2026
c470825
feat(website): snappier scoped idle demo and swaying hero wires
bertfy Jul 30, 2026
df9caf4
feat(website): retheme the hero to the headphones product line
bertfy Jul 30, 2026
6291368
feat(website): step-and-hold hero demo that yields while held
bertfy Jul 30, 2026
60af26b
feat(website): dim the hero slider track while its value moves
bertfy Jul 30, 2026
30cde5a
fix(website): keep the hero hue handle on its track
bertfy Jul 30, 2026
d666359
feat(website): match the hero gizmo rings and highlight slider handles
bertfy Jul 30, 2026
1283f16
feat(website): tint the slider handle while the demo drives it
bertfy Jul 30, 2026
d97e826
Merge remote-tracking branch 'origin/main' into feat/comfy-org-hero-g…
bertfy Jul 30, 2026
9483a9a
feat(website): 16-frame 4:3 hero turntable with one-shot self-demo
marawan206 Jul 31, 2026
cba508e
feat(website): industries section replacing showcase and use-case sec…
marawan206 Jul 31, 2026
b00fafb
fix(website): match industries collage shapes to exact Figma geometry
marawan206 Jul 31, 2026
63ae96f
feat(website): close-up and wide-shot hero turntable rings
marawan206 Aug 1, 2026
8475537
feat(website): add the MiniMax H3 model release section
bertfy Aug 6, 2026
5bbec97
fix(website): easier slider grabbing and synced dim overlays
bertfy Aug 6, 2026
baf019a
feat(website): self-cycling industries list with hover takeover
bertfy Aug 6, 2026
0f7b267
fix(website): keep industry labels still when the active marker lands
bertfy Aug 6, 2026
15cc9ba
feat(website): per-industry ambient tile and no active bullet
bertfy Aug 6, 2026
bc1960d
feat(website): bespoke ambient reel for eCommerce & Fashion
bertfy Aug 6, 2026
98a0010
feat(website): video reel for the Gaming secondary tile
bertfy Aug 6, 2026
c3788fb
fix(website): HYDRATED reel belongs to Advertising, not eCommerce
bertfy Aug 6, 2026
b5f3012
feat(website): bespoke ambient reels for Gaming and eCommerce & Fashion
bertfy Aug 6, 2026
f87cb4f
feat(website): hero output crossfade, showcase restored, BuildWhat hi…
bertfy Aug 6, 2026
4d27524
feat(website): tuck the mobile COLOR node into the 3D ANGLE corner
bertfy Aug 6, 2026
7f35fa6
chore(website): drop the now-unused BuildWhatSection component
bertfy Aug 6, 2026
c341a3a
fix(website): slim the mobile COLOR node and drop it to the frame edge
bertfy Aug 6, 2026
3e3d96a
fix(website): shrink the mobile COLOR node to thumbnail scale
bertfy Aug 6, 2026
b08ae02
fix(website): keep the mobile COLOR node's port dots at standard size
bertfy Aug 6, 2026
54ee31c
fix(website): match the slider handles to the port-dot size
bertfy Aug 6, 2026
5e451ea
chore: retrigger CI
bertfy Aug 6, 2026
f6beac9
chore: retrigger CI after GitHub Actions outage
bertfy Aug 7, 2026
5e780f8
feat(website): light pulses travel along the hero wires
bertfy Aug 7, 2026
896f36c
feat(website): featured workflows carousel on the homepage
bertfy Aug 8, 2026
f085ccf
feat(website): Lottie scene in the showcase, length-scaled wire trails
bertfy Aug 8, 2026
190e6d6
fix(website): render the Lottie scene on the showcase's mobile slide too
bertfy Aug 8, 2026
aaab6b4
feat(website): scene-02 and scene-03 showcase animations, matched wir…
bertfy Aug 8, 2026
6136d3e
feat(website): elevated hero camera rings at three distances
marawan206 Aug 9, 2026
4a973e7
fix(website): reverse elevated wide and close-up ring spin
marawan206 Aug 9, 2026
75879b6
feat(website): 17-frame elevated hero rings from regenerated orbits
marawan206 Aug 9, 2026
54b9c94
[automated] Update website screenshot expectations
invalid-email-address Aug 10, 2026
90d1190
fix(website): address PR review feedback for homepage sections
marawan206 Aug 13, 2026
9f2e1d9
Merge branch 'main' into feat/hero-turntable-industries
marawan206 Aug 17, 2026
b62f03b
Merge remote-tracking branch 'origin/main' into feat/hero-turntable-i…
marawan206 Aug 17, 2026
9774add
Merge remote-tracking branch 'origin/main' into feat/hero-turntable-i…
marawan206 Aug 18, 2026
e3beff6
fix(website): serve oversized scene-3 clips from media.comfy.org CDN
marawan206 Aug 19, 2026
9eab64a
test(website): refresh stale homepage visual snapshots
marawan206 Aug 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions apps/website/design/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Unoptimized source renders — optimized webp live in public/hero/angles
reference/
41 changes: 34 additions & 7 deletions apps/website/e2e/homepage.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,33 @@ test.describe('Homepage @smoke', () => {
).toBeVisible()
})

test('ModelReleaseSection is visible', async ({ page }) => {
await expect(page.getByText('New Model Release')).toBeVisible()
const cta = page.getByRole('link', { name: 'View Model Features' })
await expect(cta).toBeVisible()
await expect(cta).toHaveAttribute('href', '/minimax-h3')
})

test('FeaturedWorkflowsSection carousel is visible', async ({ page }) => {
const carousel = page.locator('[aria-roledescription="carousel"]')
await expect(carousel).toBeVisible()
await expect(
carousel.getByRole('link', { name: 'FLUX 3 Video: Text to Video' })
).toBeVisible()
})

test('ProductShowcase section is visible', async ({ page }) => {
await expect(page.getByText('HOW', { exact: true }).first()).toBeVisible()
await expect(
page.getByText(/Connect models, processing steps, and outputs/)
).toBeVisible()
})

test('UseCaseSection is visible', async ({ page }) => {
test('IndustriesSection is visible', async ({ page }) => {
await expect(
page.getByText('Industries that create with ComfyUI')
page.getByRole('button', { name: 'VFX & Animation' })
).toBeVisible()
await expect(page.getByText(/Powered by 60,000\+ nodes/)).toBeVisible()
})

test('GetStartedSection with heading is visible', async ({ page }) => {
Expand Down Expand Up @@ -112,11 +128,6 @@ test.describe('Homepage @smoke', () => {
expect(ctaBox).not.toBeNull()
expect(ctaBox!.y - (subBox!.y + subBox!.height)).toBeGreaterThanOrEqual(24)
})

test('BuildWhatSection is visible', async ({ page }) => {
// "DOESN'T EXIST" is the actual badge text rendered in the Build What section
await expect(page.getByText("DOESN'T EXIST")).toBeVisible()
})
})

test.describe('Product showcase accordion @interaction', () => {
Expand Down Expand Up @@ -151,6 +162,22 @@ test.describe('Product showcase accordion @interaction', () => {
await expect(firstFeature).not.toHaveClass(/bg-primary-comfy-yellow/)
await expect(secondFeature).toHaveClass(/bg-primary-comfy-yellow/)
})

test('third feature shows the mask scene on mobile @mobile', async ({
page
}) => {
const thirdFeature = page
.getByRole('button', { name: /Community Workflows/i })
.first()

await thirdFeature.scrollIntoViewIfNeeded()
await thirdFeature.click()

// The CSS-hidden desktop copy is also in the DOM; target the mobile one.
const maskScene = page.locator('.vms-stage:visible')
await expect(maskScene).toBeVisible()
await expect(maskScene.locator('video').first()).toBeAttached()
})
})

test.describe('Video player @interaction', () => {
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions apps/website/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"cva": "catalog:",
"gsap": "catalog:",
"lenis": "catalog:",
"lottie-web": "catalog:",
"posthog-js": "catalog:",
"reka-ui": "catalog:",
"three": "catalog:",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading