Pricing

ConvertPricing — comparison pricing grids with external CTAs.

Basic Usage

Display a pricing comparison grid:

<ConvertPricing :options="pricingOptions" />

Props

PropTypeDescription
optionsBookingOption[]required — Array of pricing tier objects

BookingOption Shape

FieldTypeRequiredDescription
urlstringYesExternal payment/booking URL
titlestringYesTier name
pricestringYesDisplay price (e.g., "$49")
originalPricestringNoStrikethrough price
priceNotestringNoPrice annotation (e.g., "per month")
priceIntervalstringNoBilling interval
descriptionstringYesShort tier description
badgestringNoBadge text (e.g., "Popular")
locationstringYesTracking location identifier
buttonLabelstringNoCTA button text
buttonVariantstringNo'solid', 'outline', 'soft', 'subtle'
buttonColorstringNo'primary', 'secondary', 'neutral'
highlightedbooleanNoEmphasize this tier
featuresstring[] | object[]NoFeature list items

Example

<ConvertPricing
  :options="[
    {
      url: 'https://buy.stripe.com/basic',
      title: 'Basic',
      price: '$29',
      description: 'Perfect for getting started.',
      location: 'pricing-basic',
      features: ['Email capture', 'Landing page', 'Webhook delivery'],
    },
    {
      url: 'https://buy.stripe.com/pro',
      title: 'Pro',
      price: '$79',
      originalPrice: '$149',
      priceNote: 'one-time',
      description: 'Everything you need to validate.',
      badge: 'Best Value',
      location: 'pricing-pro',
      highlighted: true,
      buttonColor: 'primary',
      features: [
        'Everything in Basic',
        '1-on-1 mentorship session',
        'Custom analytics setup',
        'Priority support',
      ],
    },
  ]"
/>

How It Works

ConvertPricing wraps Nuxt UI's UPricingPlans and UPricingPlan components, with each tier's CTA rendered as a ConvertExternal button. This means every tier click:

  • Opens the external payment URL
  • Fires an offer_click event with the tier's location
  • Is tracked independently from other tiers

Features List

Features can be simple strings or objects with icons:

// Simple strings
features: ['Feature one', 'Feature two']

// With icons
features: [
  { title: 'Unlimited projects', icon: 'i-lucide-infinity' },
  { title: '24/7 support', icon: 'i-lucide-headphones' },
]