All Prompts
All Prompts

pricingtailwindresponsiveinteractiveanimatedcta
Interactive Pricing Plan Card with Billing Toggle
Интерактивная карточка тарифа с переключателем оплаты (месяц/проект). Адаптивный UI-компонент на Tailwind для SaaS и агентств.
Prompt
<div class="relative max-w-6xl sm:px-6 lg:px-8 bg-neutral-950 border-gray-800 border rounded-3xl mr-auto ml-auto pt-20 pr-20 pb-10 pl-20">
<!-- Header -->
<div class="flex flex-col sm:flex-row sm:items-end sm:justify-between animate-[slideUp_0.6s_ease-out] mb-12">
<div class="mb-6 sm:mb-0">
<h2 class="sm:text-7xl text-4xl font-light text-white tracking-tighter font-geist mb-6" style="">Pricing Plans</h2>
<p class="text-lg max-w-2xl font-geist text-neutral-400" style="">Flexible options that match your pace. Built for startups, growing brands, and teams that value thoughtful design.</p>
</div>
<!-- Billing toggle -->
<div id="billingToggle" class="inline-flex items-center rounded-full ring-1 ring-white/10 bg-white/5 p-1 gap-1">
<button type="button" data-billing="monthly" aria-pressed="true" class="px-3.5 py-1.5 rounded-full text-xs sm:text-sm font-geist bg-neutral-100 text-black transition-colors" style="">Monthly</button>
<button type="button" data-billing="project" aria-pressed="false" class="px-3.5 py-1.5 rounded-full text-xs sm:text-sm font-geist text-neutral-300 hover:text-neutral-100 transition-colors" style="">Project based</button>
</div>
</div>
<!-- Plan card -->
<div class="rounded-2xl border overflow-hidden border-white/10 bg-neutral-900/40 animate-[slideUp_0.6s_ease-out_0.1s_both]">
<div class="grid grid-cols-1 lg:grid-cols-2 items-center">
<!-- Left: Plan summary (light card) -->
<div class="sm:p-6 lg:p-8 pt-5 pr-5 pb-5 pl-5">
<div class="relative rounded-2xl border border-white/10 bg-neutral-100 text-neutral-900 p-5 sm:p-6 lg:p-7">
<div class="absolute top-4 right-5 text-xs font-geist text-neutral-500 select-none" style="">Lumina®</div>
<div class="flex items-center justify-between">
<div class="">
<div id="planTitle" class="text-sm font-geist font-medium tracking-tight text-neutral-700" style="">Subscription</div>
<div class="mt-3 flex items-baseline gap-2">
<span class="text-3xl sm:text-4xl font-geist font-medium tracking-tight" style="">$<span id="price" style="">2500</span></span>
<span class="text-neutral-500 font-geist text-base" style="">/<span id="priceUnit" style="">month</span></span>
</div>
</div>
</div>
<p id="planDesc" class="mt-4 text-sm leading-6 font-geist text-neutral-600" style="">Ongoing support and flexible design when you need it. Ideal for startups, growing brands, and marketing teams needing consistent creative momentum.</p>
<div class="mt-8 flex items-center justify-between">
<div class="inline-flex items-center gap-2 text-[11px] font-geist text-neutral-500">
<span class="h-2 w-2 rounded-full bg-neutral-400/50"></span>
<span id="addonNote" style="">Optional SEO add‑on ($800/m)</span>
</div>
<!-- Decorative toggle knob (non-functional) -->
<div class="h-5 w-9 rounded-full bg-neutral-200 relative">
<div class="absolute top-[2px] left-[2px] h-4 w-4 rounded-full bg-neutral-500"></div>
</div>
</div>
</div>
</div>
<!-- Right: Features + CTA -->
<div class="lg:p-8 flex flex-col bg-gradient-to-br from-black/30 to-black/10 pt-6 pr-6 pb-6 pl-6 justify-between">
<div class="">
<div class="text-sm font-geist text-neutral-400 mb-4" style="">What's included:</div>
<ul class="space-y-3">
<li class="flex items-center gap-3 text-sm font-geist text-neutral-200">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="check-circle-2" class="lucide lucide-check-circle-2 text-blue-500"><circle cx="12" cy="12" r="10" class=""></circle><path d="m9 12 2 2 4-4" class=""></path></svg>
<span class="text-neutral-100" style="">Unlimited design requests</span>
</li>
<li class="flex items-center gap-3 text-sm font-geist text-neutral-200">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="check-circle-2" class="lucide lucide-check-circle-2 text-fuchsia-500"><circle cx="12" cy="12" r="10" class=""></circle><path d="m9 12 2 2 4-4" class=""></path></svg>
<span id="featureScope" class="text-neutral-100" style="">One active task at a time</span>
</li>
<li class="flex items-center gap-3 text-sm font-geist text-neutral-200" style="">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="check-circle-2" class="lucide lucide-check-circle-2 text-violet-500"><circle cx="12" cy="12" r="10" class=""></circle><path d="m9 12 2 2 4-4" class=""></path></svg>
Weekly progress calls
</li>
<li class="flex items-center gap-3 text-sm font-geist text-neutral-200" style="">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="check-circle-2" class="lucide lucide-check-circle-2 text-blue-500"><circle cx="12" cy="12" r="10" class=""></circle><path d="m9 12 2 2 4-4" class=""></path></svg>
Fast turnaround times
</li>
<li class="flex items-center gap-3 text-sm font-geist text-neutral-200" style="">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="check-circle-2" class="lucide lucide-check-circle-2 text-fuchsia-500"><circle cx="12" cy="12" r="10" class=""></circle><path d="m9 12 2 2 4-4" class=""></path></svg>
Brand consistency across deliverables
</li>
<li class="flex items-center gap-3 text-sm font-geist text-neutral-200" style="">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="check-circle-2" class="lucide lucide-check-circle-2 text-violet-500"><circle cx="12" cy="12" r="10" class=""></circle><path d="m9 12 2 2 4-4" class=""></path></svg>
Priority support
</li>
<li class="flex items-center gap-3 text-sm font-geist text-neutral-200" style="">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="check-circle-2" class="lucide lucide-check-circle-2 text-blue-500"><circle cx="12" cy="12" r="10" class=""></circle><path d="m9 12 2 2 4-4" class=""></path></svg>
Pause or cancel anytime
</li>
</ul>
</div>
<div class="mt-8 flex items-center justify-between gap-6">
<div class="">
<div class="text-sm font-geist text-neutral-400" style="">Estimated kickoff</div>
<div id="etaValue" class="text-neutral-100 font-geist" style="">48 hours</div>
</div>
<button class="flex gap-2 ring-1 ring-white/20 hover:bg-white/15 transition-colors text-sm text-neutral-100 font-geist bg-white/10 rounded-full pt-3 pr-6 pb-3 pl-6 items-center justify-center" style="">
Get started
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="arrow-right" class="lucide lucide-arrow-right"><path d="M5 12h14" class=""></path><path d="m12 5 7 7-7 7" class=""></path></svg>
</button>
</div>
</div>
</div>
</div>
<!-- Micro-copy -->
<div class="mt-6 text-[11px] font-geist text-neutral-500 flex items-center gap-2" style="">
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-lucide="info" class="lucide lucide-info text-neutral-400"><circle cx="12" cy="12" r="10" class=""></circle><path d="M12 16v-4" class=""></path><path d="M12 8h.01" class=""></path></svg>
No hidden fees. Transparent, collaborative process from day one.
</div>
<script>
(function () {
const el = document.getElementById('aura-emf5jfuh5');
const toggle = el.querySelector('#billingToggle');
const price = el.querySelector('#price');
const unit = el.querySelector('#priceUnit');
const desc = el.querySelector('#planDesc');
const title = el.querySelector('#planTitle');
const addon = el.querySelector('#addonNote');
const scope = el.querySelector('#featureScope');
const eta = el.querySelector('#etaValue');
const states = {
monthly: {
price: '2500',
unit: 'month',
title: 'Subscription',
desc: 'Ongoing support and flexible design when you need it. Ideal for startups, growing brands, and marketing teams needing consistent creative momentum.',
addon: 'Optional SEO add‑on ($800/m)',
scope: 'One active task at a time',
eta: '48 hours'
},
project: {
price: '4800',
unit: 'project',
title: 'Project Sprint',
desc: 'Focused, milestone‑driven engagement for a defined scope. Perfect for launches, rebrands, or site upgrades.',
addon: 'Add‑ons available by scope',
scope: 'Scoped deliverables & milestones',
eta: '1–2 weeks'
}
};
function setBilling(mode) {
const s = states[mode];
if (!s) return;
price.textContent = s.price;
unit.textContent = s.unit;
title.textContent = mode === 'monthly' ? 'Subscription' : 'Project Sprint';
desc.textContent = s.desc;
addon.textContent = s.addon;
scope.textContent = s.scope;
eta.textContent = s.eta;
// Toggle button styles and aria
toggle.querySelectorAll('[data-billing]').forEach(btn => {
const active = btn.getAttribute('data-billing') === mode;
btn.setAttribute('aria-pressed', String(active));
btn.classList.toggle('bg-neutral-100', active);
btn.classList.toggle('text-black', active);
btn.classList.toggle('text-neutral-300', !active);
});
if (window.lucide) lucide.createIcons();
}
toggle.addEventListener('click', (e) => {
const btn = e.target.closest('[data-billing]');
if (!btn) return;
setBilling(btn.getAttribute('data-billing'));
});
if (window.lucide) lucide.createIcons();
})();
</script>
</div>