mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-07-03 05:38:26 +00:00
## Summary - Migrate the website's top nav from bespoke components (`SiteNav`, `MobileMenu`, `NavDesktopLink`, `PillButton`, `MaskRevealButton`) to shadcn-vue primitives (`NavigationMenu`, `Sheet`, `Button`), split into `HeaderMain` → `HeaderMainDesktop` + `HeaderMainMobile`. - Mobile nav becomes a `Sheet` with drill-down sub-navigation, scroll lock, sticky CTAs, sr-only i18n title/description, and a back-to-home logo. - Desktop nav uses `NavigationMenu` with shared viewport, featured cards, `NavColumn` extraction, and centralized nav data in `data/mainNavigation.ts`. - Adds i18n strings for nav labels, dropdown column headers, close/back affordances, and the mobile menu description. ## Test plan - [ ] Desktop: hover PRODUCTS / COMMUNITY / COMPANY — dropdowns open with featured card + columns, NEW badges render, external links show the arrow-up-right icon, viewport is shared between triggers. - [ ] Mobile (<lg): open hamburger sheet — verify logo + close, body scroll is locked while open, top-level nav scrolls if it overflows, CTAs stay pinned at bottom. - [ ] Tap COMMUNITY / PRODUCTS / COMPANY — sub-panel slides over root nav, in-sheet BACK returns to root, links navigate correctly. - [ ] Reload `?locale=zh-CN`: dropdown labels, sheet title/description, BACK / close affordances all localized. - [ ] No regressions on `/cloud`, `/cloud/pricing`, `/customers`, etc. — pages that swap CTAs (`BrandButton` → shadcn `Button`) still render at every breakpoint. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: GitHub Action <action@github.com> Co-authored-by: github-actions <github-actions@github.com> Co-authored-by: Alexander Brown <drjkl@comfy.org>
54 lines
1.7 KiB
JSON
54 lines
1.7 KiB
JSON
{
|
|
"name": "@comfyorg/website",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "astro dev",
|
|
"dev:no-toolbar": "cross-env NO_TOOLBAR=1 astro dev",
|
|
"build": "astro build",
|
|
"preview": "astro preview",
|
|
"typecheck": "astro check",
|
|
"test:unit": "vitest run",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:local": "cross-env PLAYWRIGHT_LOCAL=1 playwright test",
|
|
"test:visual": "playwright test --project visual",
|
|
"test:visual:update": "playwright test --project visual --update-snapshots",
|
|
"ashby:refresh-snapshot": "tsx ./scripts/refresh-ashby-snapshot.ts",
|
|
"cloud-nodes:refresh-snapshot": "tsx ./scripts/refresh-cloud-nodes-snapshot.ts",
|
|
"generate:models": "tsx ./scripts/generate-models.ts"
|
|
},
|
|
"dependencies": {
|
|
"@astrojs/sitemap": "catalog:",
|
|
"@comfyorg/design-system": "workspace:*",
|
|
"@comfyorg/object-info-parser": "workspace:*",
|
|
"@comfyorg/shared-frontend-utils": "workspace:*",
|
|
"@comfyorg/tailwind-utils": "workspace:*",
|
|
"@lucide/vue": "catalog:",
|
|
"@vercel/analytics": "catalog:",
|
|
"@vueuse/core": "catalog:",
|
|
"class-variance-authority": "catalog:",
|
|
"cva": "catalog:",
|
|
"gsap": "catalog:",
|
|
"lenis": "catalog:",
|
|
"posthog-js": "catalog:",
|
|
"reka-ui": "catalog:",
|
|
"three": "catalog:",
|
|
"vue": "catalog:",
|
|
"zod": "catalog:"
|
|
},
|
|
"devDependencies": {
|
|
"@astrojs/check": "catalog:",
|
|
"@astrojs/vue": "catalog:",
|
|
"@playwright/test": "catalog:",
|
|
"@tailwindcss/vite": "catalog:",
|
|
"astro": "catalog:",
|
|
"tailwindcss": "catalog:",
|
|
"tsx": "catalog:",
|
|
"tw-animate-css": "catalog:",
|
|
"typescript": "catalog:",
|
|
"vitest": "catalog:"
|
|
}
|
|
}
|