From 6eca4aae861542d1182b0a8b113eb265fcb1010a Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Wed, 17 Dec 2025 13:25:14 +0900 Subject: [PATCH] [backport cloud/1.35] feat(cloud): yearly pricing (#7581) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of #7572 to `cloud/1.35` Automatically created by backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7581-backport-cloud-1-35-feat-cloud-yearly-pricing-2cc6d73d3650814296f1c41377746400) by [Unito](https://www.unito.io) Co-authored-by: Simula_r <18093452+simula-r@users.noreply.github.com> --- packages/design-system/src/css/style.css | 2 +- src/locales/en/main.json | 30 +- .../subscription/components/PricingTable.vue | 420 +++++++++++------- .../SubscriptionRequiredDialogContent.vue | 52 +-- .../composables/useSubscriptionDialog.ts | 7 +- 5 files changed, 314 insertions(+), 197 deletions(-) diff --git a/packages/design-system/src/css/style.css b/packages/design-system/src/css/style.css index 1153d4543..7fc951496 100644 --- a/packages/design-system/src/css/style.css +++ b/packages/design-system/src/css/style.css @@ -235,7 +235,7 @@ --brand-yellow: var(--color-electric-400); --brand-blue: var(--color-sapphire-700); --secondary-background: var(--color-smoke-200); - --secondary-background-hover: var(--color-smoke-200); + --secondary-background-hover: var(--color-smoke-400); --secondary-background-selected: var(--color-smoke-600); --base-background: var(--color-white); --primary-background: var(--color-azure-400); diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 8403c0205..97b9b83ed 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -1895,7 +1895,7 @@ "comfyCloudLogo": "Comfy Cloud Logo", "beta": "BETA", "perMonth": "/ month", - "usdPerMonth": "USD / month", + "usdPerMonth": "USD / mo", "renewsDate": "Renews {date}", "expiresDate": "Expires {date}", "manageSubscription": "Manage subscription", @@ -1917,16 +1917,21 @@ "yourPlanIncludes": "Your plan includes:", "viewMoreDetails": "View more details", "learnMore": "Learn more", + "billedMonthly": "Billed monthly", + "billedAnnually": "{total} Billed annually", + "monthly": "Monthly", + "yearly": "Yearly", "messageSupport": "Message support", "invoiceHistory": "Invoice history", "benefits": { "benefit1": "$10 in monthly credits for Partner Nodes — top up when needed", "benefit2": "Up to 30 min runtime per job" }, + "yearlyDiscount": "20% DISCOUNT", "tiers": { "founder": { "name": "Founder's Edition", - "price": "20.00", + "price": "20", "benefits": { "monthlyCredits": "5,460", "monthlyCreditsLabel": "monthly credits", @@ -1939,7 +1944,11 @@ }, "standard": { "name": "Standard", - "price": "20.00", + "price": { + "monthly": "20", + "yearly": "16", + "annualTotal": "$192" + }, "benefits": { "monthlyCredits": "4,200", "monthlyCreditsLabel": "monthly credits", @@ -1953,7 +1962,12 @@ }, "creator": { "name": "Creator", - "price": "35.00", + "price": { + "monthly": "35", + "yearly": "28", + "annualTotal": "$336" + }, + "benefits": { "monthlyCredits": "7,400", "monthlyCreditsLabel": "monthly credits", @@ -1967,7 +1981,11 @@ }, "pro": { "name": "Pro", - "price": "100.00", + "price": { + "monthly": "100", + "yearly": "80", + "annualTotal": "$960" + }, "benefits": { "monthlyCredits": "21,100", "monthlyCreditsLabel": "monthly credits", @@ -1998,7 +2016,7 @@ "description": "Choose the best plan for you", "haveQuestions": "Have questions or wondering about enterprise?", "contactUs": "Contact us", - "viewEnterprise": "view enterprise", + "viewEnterprise": "View enterprise", "partnerNodesCredits": "Partner nodes pricing", "mostPopular": "Most popular", "currentPlan": "Current Plan", diff --git a/src/platform/cloud/subscription/components/PricingTable.vue b/src/platform/cloud/subscription/components/PricingTable.vue index 119114ddb..47c1ac66a 100644 --- a/src/platform/cloud/subscription/components/PricingTable.vue +++ b/src/platform/cloud/subscription/components/PricingTable.vue @@ -1,171 +1,246 @@