# Pricing Table Seven
URL: /docs/components/pricing-table/pricing-table-seven
The Pricing Table Seven component provides a feature-comparison pricing table with aligned cards and user slider for comprehensive plan comparison.
***
title: Pricing Table Seven
description: The Pricing Table Seven component provides a feature-comparison pricing table with aligned cards and user slider for comprehensive plan comparison.
----------------------------------------------------------------------------------------------------------------------------------------------------------------
## Classic Theme
```tsx title="src/components/pricing-table-seven-demo.tsx"
"use client";
import { PricingTableSeven } from "@/components/billingsdk/pricing-table-seven";
const plans = [
{
id: "basic",
name: "Basic plan",
description: "Our most popular plan.",
price: 10,
popular: false,
users: 5,
},
{
id: "business",
name: "Business plan",
description: "Best for growing teams.",
price: 20,
popular: true,
users: 15,
},
{
id: "enterprise",
name: "Enterprise plan",
description: "Best for large teams.",
price: 40,
popular: false,
users: 25,
},
];
const features = [
{
category: "Overview",
items: [
{
name: "Basic features",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Users",
tooltip: true,
basic: "10",
business: "20",
enterprise: "Unlimited",
},
{
name: "Individual data",
tooltip: true,
basic: "20GB",
business: "40GB",
enterprise: "Unlimited",
},
{
name: "Support",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Automated workflows",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "200+ integrations",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
],
},
{
category: "Reporting and analytics",
items: [
{
name: "Analytics",
tooltip: true,
basic: "Basic",
business: "Advanced",
enterprise: "Advanced",
},
{
name: "Export reports",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Scheduled reports",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "API access",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Advanced reports",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Saved reports",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Customer properties",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
{
name: "Custom fields",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
],
},
{
category: "User access",
items: [
{
name: "SSO/SAML authentication",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Advanced permissions",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Audit log",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
{
name: "Data history",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
],
},
];
export function PricingTableSevenDemo() {
return (
console.log("Selected plan:", planId)}
size="medium"
theme="classic"
className="w-full"
/>
);
}
```
## Minimal Theme
```tsx title="src/components/pricing-table-seven-minimal-demo.tsx"
"use client";
import { PricingTableSeven } from "@/components/billingsdk/pricing-table-seven";
const plans = [
{
id: "basic",
name: "Basic plan",
description: "Our most popular plan.",
price: 10,
popular: false,
users: 5,
},
{
id: "business",
name: "Business plan",
description: "Best for growing teams.",
price: 20,
popular: true,
users: 15,
},
{
id: "enterprise",
name: "Enterprise plan",
description: "Best for large teams.",
price: 40,
popular: false,
users: 25,
},
];
const features = [
{
category: "Overview",
items: [
{
name: "Basic features",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Users",
tooltip: true,
basic: "10",
business: "20",
enterprise: "Unlimited",
},
{
name: "Individual data",
tooltip: true,
basic: "20GB",
business: "40GB",
enterprise: "Unlimited",
},
{
name: "Support",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Automated workflows",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "200+ integrations",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
],
},
{
category: "Reporting and analytics",
items: [
{
name: "Analytics",
tooltip: true,
basic: "Basic",
business: "Advanced",
enterprise: "Advanced",
},
{
name: "Export reports",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Scheduled reports",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "API access",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Advanced reports",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Saved reports",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Customer properties",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
{
name: "Custom fields",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
],
},
{
category: "User access",
items: [
{
name: "SSO/SAML authentication",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Advanced permissions",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Audit log",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
{
name: "Data history",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
],
},
];
export function PricingTableSevenMinimalDemo() {
return (
console.log("Selected plan:", planId)}
size="medium"
theme="minimal"
className="w-full"
/>
);
}
```
## Installation
```bash
npx shadcn@latest add @billingsdk/pricing-table-seven
```
```bash
pnpm dlx shadcn@latest add @billingsdk/pricing-table-seven
```
```bash
yarn dlx shadcn@latest add @billingsdk/pricing-table-seven
```
```bash
bunx shadcn@latest add @billingsdk/pricing-table-seven
```
## Usage
```tsx
import { PricingTableSeven } from "@/components/billingsdk/pricing-table-seven";
const plans = [
{
id: "basic",
name: "Basic plan",
description: "Our most popular plan.",
price: 10,
popular: false,
users: 5,
},
{
id: "business",
name: "Business plan",
description: "Best for growing teams.",
price: 20,
popular: true,
users: 15,
},
{
id: "enterprise",
name: "Enterprise plan",
description: "Best for large teams.",
price: 40,
popular: false,
users: 25,
},
];
const features = [
{
category: "Overview",
items: [
{
name: "Basic features",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Users",
tooltip: true,
basic: "10",
business: "20",
enterprise: "Unlimited",
},
],
},
];
```
```tsx
console.log('Selected plan:', planId)}
size="medium" // small, medium, large
theme="classic" // minimal or classic
/>
```
## Props
| Prop | Type | Description |
| -------------- | -------------------------------- | ---------------------------------------------------------- |
| `plans` | `PricingTableSevenPlan[]` | Array of pricing plans |
| `features` | `FeatureCategory[]` | Array of feature categories with items |
| `title` | `string` | Page title (default: "Choose a plan that's right for you") |
| `description` | `string` | Page description |
| `onPlanSelect` | `(planId: string) => void` | Callback when a plan is selected |
| `size` | `"small" \| "medium" \| "large"` | Component size variant |
| `theme` | `"minimal" \| "classic"` | Theme variant |
| `className` | `string` | Additional CSS classes |
## Data Types
### PricingTableSevenPlan
```tsx
interface PricingTableSevenPlan {
id: string; // Unique identifier for the plan
name: string; // Display name of the plan
description: string; // Plan description
price: number; // Price in dollars
users: number | string; // Number of users (can be "25+" for unlimited)
popular?: boolean; // Whether this plan is marked as popular
}
```
### FeatureCategory
```tsx
interface FeatureCategory {
category: string; // Category name (e.g., "Overview", "Reporting")
items: FeatureItemRecord[]; // Array of features in this category
}
```
### FeatureItemRecord
```tsx
interface FeatureItemRecord {
name: string; // Feature name
tooltip?: boolean; // Whether to show tooltip icon
[planId: string]: boolean | string | undefined; // Feature value per plan
}
```
## Features
* **Dual Theme Support**: Choose between minimal and classic themes
* **Interactive Plan Selection**: Users can click on pricing cards to select plans
* **Feature Comparison Table**: Detailed feature comparison across all plans
* **User Slider**: Interactive slider showing current plan's user count with real-time plan updates
* **Responsive Design**: Mobile-first approach with responsive grid layouts
* **Accessibility**: ARIA labels, keyboard navigation, and screen reader support
* **Customizable Sizing**: Small, medium, and large size variants
* **TypeScript Support**: Full type safety with comprehensive interfaces
* **Smooth Animations**: Transitions and hover effects using Framer Motion
## Theming
The pricing table component supports two themes:
* **Minimal**: Clean, simple design with subtle styling
* **Classic**: Enhanced design with gradients and visual effects
You can customize the colors and fonts by overriding the CSS variables. You can also get the theme from the [Theming](/docs/theming) page.
## Example
```tsx title="src/components/pricing-table-seven-demo.tsx"
"use client";
import { PricingTableSeven } from "@/components/billingsdk/pricing-table-seven";
const plans = [
{
id: "basic",
name: "Basic plan",
description: "Our most popular plan.",
price: 10,
popular: false,
users: 5,
},
{
id: "business",
name: "Business plan",
description: "Best for growing teams.",
price: 20,
popular: true,
users: 15,
},
{
id: "enterprise",
name: "Enterprise plan",
description: "Best for large teams.",
price: 40,
popular: false,
users: 25,
},
];
const features = [
{
category: "Overview",
items: [
{
name: "Basic features",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Users",
tooltip: true,
basic: "10",
business: "20",
enterprise: "Unlimited",
},
{
name: "Individual data",
tooltip: true,
basic: "20GB",
business: "40GB",
enterprise: "Unlimited",
},
{
name: "Support",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Automated workflows",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "200+ integrations",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
],
},
{
category: "Reporting and analytics",
items: [
{
name: "Analytics",
tooltip: true,
basic: "Basic",
business: "Advanced",
enterprise: "Advanced",
},
{
name: "Export reports",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Scheduled reports",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "API access",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Advanced reports",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Saved reports",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Customer properties",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
{
name: "Custom fields",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
],
},
{
category: "User access",
items: [
{
name: "SSO/SAML authentication",
tooltip: true,
basic: true,
business: true,
enterprise: true,
},
{
name: "Advanced permissions",
tooltip: true,
basic: false,
business: true,
enterprise: true,
},
{
name: "Audit log",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
{
name: "Data history",
tooltip: true,
basic: false,
business: false,
enterprise: true,
},
],
},
];
export function PricingTableSevenDemo() {
return (
console.log("Selected plan:", planId)}
size="medium"
theme="classic"
className="w-full"
/>
);
}
```