diff --git a/docs/app/components/Banner.vue b/docs/app/components/Banner.vue index 93658bb6..c2175a3c 100644 --- a/docs/app/components/Banner.vue +++ b/docs/app/components/Banner.vue @@ -1,7 +1,17 @@ - + - Nuxt UI v3 is officially released! + Nuxt UI v3 is officially released. diff --git a/docs/app/pages/figma/.figma.yml b/docs/app/pages/figma/.figma.yml index 473e5a7d..e78d6de9 100644 --- a/docs/app/pages/figma/.figma.yml +++ b/docs/app/pages/figma/.figma.yml @@ -178,6 +178,7 @@ pricing: - title: Solo License description: Design faster with all Nuxt UI Pro components. price: $149 + discount: $119 billing_period: one-time payment billing_cycle: plus local taxes class: bg-(--ui-bg-elevated)/50 @@ -199,6 +200,7 @@ pricing: - title: Team License description: Everything you need to deliver faster as a team. price: $349 + discount: $279 billing_period: one-time payment billing_cycle: plus local taxes class: bg-(--ui-bg-elevated)/50 diff --git a/docs/app/pages/figma/index.vue b/docs/app/pages/figma/index.vue index 22e83223..de9065cc 100644 --- a/docs/app/pages/figma/index.vue +++ b/docs/app/pages/figma/index.vue @@ -233,6 +233,7 @@ onMounted(async () => { :title="plan.title" :description="plan.description" :price="plan.price" + :discount="plan.discount" :billing-period="plan.billing_period" :billing-cycle="plan.billing_cycle" :highlight="plan.highlight" diff --git a/docs/app/pages/index.vue b/docs/app/pages/index.vue index f91e7767..9ae38525 100644 --- a/docs/app/pages/index.vue +++ b/docs/app/pages/index.vue @@ -76,7 +76,7 @@ useIntersectionObserver(contributorsRef, ([entry]) => { :key="feature.title" as-child :initial="{ opacity: 0, transform: 'translateX(-10px)' }" - :in-view="{ opacity: 1, transform: 'translateX(0)' }" + :while-in-view="{ opacity: 1, transform: 'translateX(0)' }" :transition="{ delay: 0.2 + 0.4 * index }" :in-view-options="{ once: true }" > @@ -147,7 +147,7 @@ useIntersectionObserver(contributorsRef, ([entry]) => { :key="feature.title" as="li" :initial="{ opacity: 0, transform: 'translateY(10px)' }" - :in-view="{ opacity: 1, transform: 'translateY(0)' }" + :while-in-view="{ opacity: 1, transform: 'translateY(0)' }" :transition="{ delay: 0.1 * index }" :in-view-options="{ once: true }" class="flex items-start gap-x-3 relative group" diff --git a/docs/app/pages/pro/.content/pricing.yml b/docs/app/pages/pro/.content/pricing.yml index c72439ec..d654e413 100644 --- a/docs/app/pages/pro/.content/pricing.yml +++ b/docs/app/pages/pro/.content/pricing.yml @@ -17,7 +17,10 @@ pricing: title: Figma Kit Pro description: Get all Nuxt UI Pro components in a Figma kit to design your next application before coding. Everything you need, from wire-framing to high-fidelity web integration. orientation: horizontal - price: $149 - $349 + price: $149 + discount: $119 + billing_period: one-time payment + billing_cycle: plus local taxes terms: Solo & Team licenses available. features: - 1700+ components & variants from Nuxt UI & UI Pro @@ -36,6 +39,7 @@ pricing: - title: Solo description: Tailored for indie hackers, freelancers and solo founders. price: $249 + discount: $199 billing_period: one-time payment billing_cycle: plus local taxes features: @@ -50,6 +54,7 @@ pricing: - title: Startup description: Best suited for small teams, startups and agencies. price: $499 + discount: $399 billing_period: one-time payment billing_cycle: plus local taxes features: @@ -65,6 +70,7 @@ pricing: - title: Organization description: Ideal for larger teams and organizations. price: $999 + discount: $799 billing_period: one-time payment billing_cycle: plus local taxes features: diff --git a/docs/app/pages/pro/index.vue b/docs/app/pages/pro/index.vue index 55c7df5e..d3c2eaae 100644 --- a/docs/app/pages/pro/index.vue +++ b/docs/app/pages/pro/index.vue @@ -82,11 +82,11 @@ useSeoMeta({ }" > - + - + - + diff --git a/docs/app/pages/pro/pricing.vue b/docs/app/pages/pro/pricing.vue index 2bd6f039..fa18c0ab 100644 --- a/docs/app/pages/pro/pricing.vue +++ b/docs/app/pages/pro/pricing.vue @@ -12,6 +12,37 @@ useSeoMeta({ ogDescription: page.description, ogImage: joinURL(url, '/pro/og-image.png') }) + +const endDate = new Date('2025-03-14T23:59:59Z') +const second = 1000 +const minute = second * 60 +const hour = minute * 60 +const day = hour * 24 + +function getCountdown() { + const distance = Math.floor((endDate.getTime() - Date.now())) + return { + day: Math.floor(distance / day), + hour: Math.floor((distance % (day)) / (hour)), + minute: Math.floor((distance % (hour)) / (minute)), + second: Math.floor((distance % (minute)) / (second)), + distance + } +} +const countdown = ref(getCountdown()) +let interval: any +if (countdown.value.distance > 0) { + onMounted(() => { + interval = setInterval(() => { + countdown.value = getCountdown() + if (countdown.value.distance <= 0) { + clearInterval(interval) + } + }, 1000) + }) +} +const plural = (value: number) => (value === 1 ? '' : 's') +const double = (value: number) => (value < 10 ? `0${value}` : value) @@ -23,6 +54,25 @@ useSeoMeta({ container: 'relative lg:!pb-0' }" > + + + + Nuxt UI v3 launch offer ends in: + + + + + + + {{ double(value) }} + + {{ key }}{{ plural(value) }} + + + + + + @@ -42,6 +92,7 @@ useSeoMeta({ :title="plan.title" :description="plan.description" :price="plan.price" + :discount="plan.discount" :billing-period="plan.billing_period" :billing-cycle="plan.billing_cycle" :variant="plan.highlight ? 'soft' : 'outline'" @@ -53,6 +104,8 @@ useSeoMeta({ diff --git a/docs/app/pages/pro/templates.vue b/docs/app/pages/pro/templates.vue index 49bc4760..07d7ba29 100644 --- a/docs/app/pages/pro/templates.vue +++ b/docs/app/pages/pro/templates.vue @@ -50,7 +50,7 @@ useSeoMeta({ - +
+ Nuxt UI v3 launch offer ends in: +