From fa37112cafd92e8430a65990d9c84605641ae422 Mon Sep 17 00:00:00 2001 From: Simula_r <18093452+simula-r@users.noreply.github.com> Date: Tue, 16 Dec 2025 18:20:11 -0800 Subject: [PATCH] feat(cloud): yearly pricing (#7572) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Add support for yearly/annual billing. Implement new Figma design. Add new yearly tier params to api. ## Changes - **What**: Mostly PricingTable.vue, SubscriptionRequiredDialogContent.vue, - **Breaking**: - **Dependencies**: ## Screenshots (if applicable) https://github.com/user-attachments/assets/06545dca-95a4-43ce-a128-2e45bb44f132 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7572-feat-yearly-pricing-2cb6d73d365081c68802f2beb47a312e) by [Unito](https://www.unito.io) --- 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 2bcff2e64..7a54deb5a 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -1907,7 +1907,7 @@ "comfyCloudLogo": "Comfy Cloud Logo", "beta": "BETA", "perMonth": "/ month", - "usdPerMonth": "USD / month", + "usdPerMonth": "USD / mo", "renewsDate": "Renews {date}", "expiresDate": "Expires {date}", "manageSubscription": "Manage subscription", @@ -1929,16 +1929,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", @@ -1951,7 +1956,11 @@ }, "standard": { "name": "Standard", - "price": "20.00", + "price": { + "monthly": "20", + "yearly": "16", + "annualTotal": "$192" + }, "benefits": { "monthlyCredits": "4,200", "monthlyCreditsLabel": "monthly credits", @@ -1965,7 +1974,12 @@ }, "creator": { "name": "Creator", - "price": "35.00", + "price": { + "monthly": "35", + "yearly": "28", + "annualTotal": "$336" + }, + "benefits": { "monthlyCredits": "7,400", "monthlyCreditsLabel": "monthly credits", @@ -1979,7 +1993,11 @@ }, "pro": { "name": "Pro", - "price": "100.00", + "price": { + "monthly": "100", + "yearly": "80", + "annualTotal": "$960" + }, "benefits": { "monthlyCredits": "21,100", "monthlyCreditsLabel": "monthly credits", @@ -2004,7 +2022,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 @@