All Prompts
All Prompts

pricingsectionresponsiveinteractivegridtailwind
Interactive Pricing Grid with Billing Toggle
Интерактивная сетка цен с переключением оплаты. Адаптивный раздел с тарифами для SaaS и подписок. Показывает планы, функции и кнопки CTA.
Prompt
<!-- PRICING -->
<section class="md:py-32 text-white bg-black mt-0 mb-0 pt-24 pb-24 relative" id="pricing">
<div class="lg:px-8 max-w-6xl mr-auto ml-auto pr-6 pl-6">
<!-- Header -->
<div class="text-center mb-12 md:mb-16 reveal">
<p class="text-xs font-semibold tracking-[0.25em] uppercase text-orange-400 mb-3">
#PRICING
</p>
<h2 class="text-3xl md:text-5xl font-semibold leading-tight text-neutral-50">
Pricing that grows with your content
</h2>
<p class="mt-3 text-sm md:text-base text-neutral-400 max-w-2xl mx-auto">
Start small, scale when your publishing cadence and team grow. Every
plan includes the Lexora editor and AI engine.
</p>
</div>
<!-- Billing toggle -->
<div class="flex justify-center mb-14">
<div class="inline-flex items-center rounded-full bg-neutral-900/80 border border-neutral-700/70 px-1 py-1 text-sm shadow-[0_18px_60px_rgba(0,0,0,0.85)]">
<button type="button" class="billing-toggle rounded-full px-6 py-2 bg-orange-500 text-black font-medium shadow-[0_0_0_1px_rgba(248,250,252,0.1)]" data-billing-toggle="monthly">
Monthly
</button>
<button type="button" class="billing-toggle rounded-full px-6 py-2 text-neutral-300/80" data-billing-toggle="yearly">
<span class="mr-2">Yearly</span>
<span class="inline-flex items-center rounded-full bg-orange-500/10 px-2 py-0.5 text-[11px] font-semibold text-orange-400 border border-orange-500/30">
30% OFF
</span>
</button>
</div>
</div>
<!-- Cards -->
<div class="grid gap-6 md:gap-8 md:grid-cols-[minmax(0,1fr)_minmax(0,1.1fr)_minmax(0,1fr)]">
<!-- Starter -->
<div class="rounded-[32px] bg-neutral-950/70 border border-neutral-800 shadow-[0_26px_80px_rgba(0,0,0,0.9)] px-8 py-10 flex flex-col justify-between reveal">
<div>
<h3 class="text-xl mb-2 font-medium">Starter</h3>
<p class="text-sm text-neutral-400 mb-8">
For independent writers who want Lexora’s help on every draft
without the team features.
</p>
<div class="mb-6">
<div class="flex items-baseline gap-1">
<div class="relative h-12 overflow-hidden">
<div class="price-stack flex flex-col transition-transform duration-300 ease-out" data-price-stack="starter" style="transform: translateY(0%);">
<!-- Monthly price row -->
<span class="h-12 flex items-center leading-none text-4xl tracking-tight font-medium">
$19
</span>
<!-- Yearly price row -->
<span class="h-12 flex items-center leading-none text-4xl tracking-tight font-medium">
$13
</span>
</div>
</div>
<span class="text-sm text-neutral-400">/month</span>
</div>
<p class="mt-1 text-xs text-neutral-500">
Billed
<span class="billing-label">monthly</span>
.
</p>
</div>
</div>
<div class="space-y-6">
<button class="w-full rounded-full bg-neutral-800/80 hover:bg-neutral-700 transition-colors px-6 py-3 text-sm font-medium">
Get started with Starter
</button>
<ul class="space-y-2 text-sm text-neutral-300">
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-neutral-500"></span>
<span>
Lexora editor with AI suggestions on every section.
</span>
</li>
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-neutral-500"></span>
<span>Up to 8 active projects at a time.</span>
</li>
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-neutral-500"></span>
<span>25,000 AI-generated words each month.</span>
</li>
</ul>
</div>
</div>
<!-- Pro (highlighted) -->
<div class="relative rounded-[32px] bg-gradient-to-b from-orange-500/10 via-orange-500/5 to-black border border-orange-500/70 shadow-[0_30px_110px_rgba(249,115,22,0.6)] px-8 py-10 flex flex-col justify-between overflow-hidden reveal delay-100">
<div class="pointer-events-none absolute inset-0 opacity-60 mix-blend-screen" style="background-image: radial-gradient(circle at 0 0,rgba(249,115,22,0.16),transparent 55%), radial-gradient(circle at 100% 100%,rgba(249,115,22,0.16),transparent 55%), repeating-linear-gradient(0deg,rgba(249,115,22,0.08),rgba(249,115,22,0.08) 1px,transparent 1px,transparent 3px);"></div>
<div class="relative">
<div class="flex items-center justify-between mb-3">
<h3 class="text-xl font-medium">Pro</h3>
<span class="rounded-full border border-orange-500/60 bg-orange-500/15 px-3 py-1 text-[11px] tracking-[0.16em] uppercase text-orange-400 font-medium">
Most popular
</span>
</div>
<p class="text-sm text-neutral-100/80 mb-8">
Built for content teams that publish often and need shared
workspaces, approvals, and more control.
</p>
<div class="mb-6">
<div class="flex items-baseline gap-1">
<div class="relative h-12 overflow-hidden">
<div class="price-stack flex flex-col transition-transform duration-300 ease-out" data-price-stack="pro" style="transform: translateY(0%);">
<!-- Monthly price row -->
<span class="h-12 flex items-center leading-none text-4xl tracking-tight font-medium">
$49
</span>
<!-- Yearly price row -->
<span class="h-12 flex items-center leading-none text-4xl tracking-tight font-medium">
$39
</span>
</div>
</div>
<span class="text-sm text-neutral-400">/month</span>
</div>
<p class="mt-1 text-xs text-neutral-500">
Billed
<span class="billing-label">monthly</span>
, per workspace.
</p>
</div>
</div>
<div class="relative space-y-6">
<button class="w-full rounded-full bg-orange-500 hover:bg-orange-400 transition-colors px-6 py-3 text-sm font-semibold text-black">
Upgrade to Pro
</button>
<ul class="space-y-2 text-sm text-neutral-50/90">
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-orange-400"></span>
<span class="">
Unlimited projects and brand spaces for your team.
</span>
</li>
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-orange-400"></span>
<span class="">
Up to 100,000 AI-generated words per month.
</span>
</li>
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-orange-400"></span>
<span class="">
Advanced tone controls, templates, and content presets.
</span>
</li>
</ul>
</div>
</div>
<!-- Enterprise -->
<div class="rounded-[32px] bg-neutral-950/70 border border-neutral-800 shadow-[0_26px_80px_rgba(0,0,0,0.9)] px-8 py-10 flex flex-col justify-between reveal delay-200">
<div class="">
<h3 class="text-xl mb-2 font-medium">Enterprise</h3>
<p class="text-sm text-neutral-400 mb-8">
For organizations that need custom workflows, tighter security,
and a partner on the Lexora side.
</p>
<div class="mb-6">
<p class="text-3xl md:text-4xl font-semibold tracking-tight mb-1">
Contact us
</p>
<p class="text-xs text-neutral-500">
We’ll design a plan that matches your volume, stack, and
review process.
</p>
</div>
</div>
<div class="space-y-6">
<button class="w-full rounded-full bg-neutral-800/80 hover:bg-neutral-700 transition-colors px-6 py-3 text-sm font-medium">
Talk to sales
</button>
<ul class="space-y-2 text-sm text-neutral-300">
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-neutral-500"></span>
<span class="">
Unlimited workspaces, users, and documents.
</span>
</li>
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-neutral-500"></span>
<span class="">
Single sign-on (SSO) and security review.
</span>
</li>
<li class="flex items-start gap-2">
<span class="mt-[3px] h-1.5 w-1.5 rounded-full bg-neutral-500"></span>
<span class="">
Custom integrations, API access, and SLAs.
</span>
</li>
</ul>
</div>
</div>
</div>
<!-- Full pricing button -->
<div class="mt-12 flex justify-center">
<button class="hover:bg-neutral-800 md:px-10 [--fx-filter:blur(10px)_liquid-glass(5,10)_saturate(1.25)_noise(0.5,1,0)] text-sm font-medium text-neutral-100 bg-neutral-900/90 border-neutral-700 border rounded-full pt-3.5 pr-8 pb-3.5 pl-8 shadow-[0_20px_70px_rgba(0,0,0,0.85)]">
View all billing details
</button>
</div>
</div>
</section>
<script>
// Billing toggle + sliding prices
(function () {
const section = document.getElementById('pricing');
if (!section) return;
const toggles = section.querySelectorAll('.billing-toggle');
const labels = section.querySelectorAll('.billing-label');
const priceStacks = section.querySelectorAll('.price-stack');
function setBilling(mode) {
// 1) Update toggle button visuals
toggles.forEach((btn) => {
const isActive = btn.dataset.billingToggle === mode;
if (isActive) {
btn.classList.add(
'bg-orange-500',
'text-black',
'font-medium',
'shadow-[0_0_0_1px_rgba(248,250,252,0.1)]'
);
btn.classList.remove('text-neutral-300/80');
} else {
btn.classList.remove(
'bg-orange-500',
'text-black',
'font-medium',
'shadow-[0_0_0_1px_rgba(248,250,252,0.1)]'
);
btn.classList.add('text-neutral-300/80');
}
});
// 2) Slide prices (0% = monthly, -50% = yearly)
const offset = mode === 'monthly' ? '0%' : '-50%';
priceStacks.forEach((stack) => {
stack.style.transform = `translateY(${offset})`;
});
// 3) Update small "Billed monthly/yearly" labels
labels.forEach((el) => {
el.textContent = mode === 'monthly' ? 'monthly' : 'yearly';
});
}
// Click handlers
toggles.forEach((btn) => {
btn.addEventListener('click', () => {
setBilling(btn.dataset.billingToggle);
});
});
// Default state
setBilling('monthly');
})();
</script>