fix: planos
All checks were successful
BCards Multi-Tenant Deployment Pipeline / Run Tests (push) Successful in 9s
BCards Multi-Tenant Deployment Pipeline / PR Validation (push) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Build and Push Image (push) Successful in 13m1s
BCards Multi-Tenant Deployment Pipeline / Deploy to Release Swarm (ARM) (push) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deploy bcards.site (push) Successful in 1m4s
BCards Multi-Tenant Deployment Pipeline / Deploy spicylinks.site (push) Successful in 1m5s
BCards Multi-Tenant Deployment Pipeline / Deploy luslinks.site (push) Successful in 1m3s
BCards Multi-Tenant Deployment Pipeline / Cleanup Old Resources (push) Has been skipped
BCards Multi-Tenant Deployment Pipeline / Deployment Summary (push) Successful in 1s

This commit is contained in:
Ricardo Carneiro 2026-04-30 19:51:05 -03:00
parent be4e766f9b
commit 917fef3f71

View File

@ -7,29 +7,75 @@
Layout = "_Layout"; Layout = "_Layout";
} }
<div class="container py-5"> <div class="container-fluid px-3 px-lg-5 py-5">
<div class="text-center mb-5"> <div class="text-center mb-5">
<h1 class="display-5 fw-bold mb-3">Escolha o plano ideal para você</h1> <h1 class="display-5 fw-bold mb-3">Escolha o plano ideal para você</h1>
<p class="lead text-muted">Comece grátis e faça upgrade quando precisar de mais recursos</p> <p class="lead text-muted">Comece grátis e faça upgrade quando precisar de mais recursos</p>
<!-- Toggle Mensal/Anual --> <!-- Toggle Mensal/Anual -->
<div class="d-flex justify-content-center mb-4"> <div class="d-flex justify-content-center mb-4 mt-3">
<div class="btn-group" role="group" aria-label="Período de cobrança"> <div class="pricing-toggle-wrapper">
<input type="radio" class="btn-check" name="billingPeriod" id="monthly" autocomplete="off" checked> <span class="pricing-savings-chip">🎁 2 meses grátis</span>
<label class="btn btn-outline-primary" for="monthly">Mensal</label> <div class="pricing-pill">
<button type="button" class="pill-btn pill-active" id="btnMonthly">Mensal</button>
<input type="radio" class="btn-check" name="billingPeriod" id="yearly" autocomplete="off"> <button type="button" class="pill-btn" id="btnYearly">Anual</button>
<label class="btn btn-outline-primary" for="yearly">
Anual
<span class="badge bg-success ms-1">2 meses grátis</span>
</label>
</div> </div>
</div> </div>
</div> </div>
<style>
.pricing-toggle-wrapper {
position: relative;
display: inline-block;
}
.pricing-savings-chip {
position: absolute;
top: -24px;
right: -4px;
background: #198754;
color: #fff;
font-size: 0.68rem;
font-weight: 700;
padding: 2px 9px;
border-radius: 20px;
white-space: nowrap;
letter-spacing: 0.02em;
}
.pricing-pill {
display: inline-flex;
background: #ededf3;
border-radius: 50px;
padding: 4px;
gap: 2px;
}
.pill-btn {
padding: 8px 32px;
border-radius: 50px;
border: none;
background: transparent;
color: #555;
font-weight: 600;
font-size: 0.95rem;
cursor: pointer;
transition: background 0.18s, color 0.18s, box-shadow 0.18s;
white-space: nowrap;
}
.pill-btn.pill-active {
background: var(--tenant-primary, #667eea);
color: #fff;
box-shadow: 0 2px 10px rgba(0,0,0,.18);
}
.pricing-cards .card-body {
font-size: 0.875rem;
}
.pricing-cards .card-header h5 {
font-size: 0.95rem;
}
</style>
</div>
<div class="row g-3 justify-content-center pricing-cards"> <div class="row g-4 row-cols-1 row-cols-md-2 row-cols-lg-3 row-cols-xl-5 pricing-cards">
<!-- Plano Trial --> <!-- Plano Trial -->
<div class="col-xl-2 col-lg-4 col-md-6"> <div class="col">
<div class="card h-100 border-0 shadow-sm"> <div class="card h-100 border-0 shadow-sm">
<div class="card-header bg-success bg-opacity-10 text-center py-4"> <div class="card-header bg-success bg-opacity-10 text-center py-4">
<h5 class="mb-0">Trial Gratuito</h5> <h5 class="mb-0">Trial Gratuito</h5>
@ -76,7 +122,7 @@
</div> </div>
<!-- Plano Básico --> <!-- Plano Básico -->
<div class="col-xl-2 col-lg-4 col-md-6"> <div class="col">
<div class="card h-100 border-0 shadow-sm"> <div class="card h-100 border-0 shadow-sm">
<div class="card-header bg-light text-center py-4"> <div class="card-header bg-light text-center py-4">
<h5 class="mb-0">Básico</h5> <h5 class="mb-0">Básico</h5>
@ -150,7 +196,7 @@
</div> </div>
<!-- Plano Profissional (Decoy) --> <!-- Plano Profissional (Decoy) -->
<div class="col-xl-2 col-lg-4 col-md-6"> <div class="col">
<div class="card h-100 border-0 shadow-sm"> <div class="card h-100 border-0 shadow-sm">
<div class="card-header bg-warning bg-opacity-10 text-center py-4"> <div class="card-header bg-warning bg-opacity-10 text-center py-4">
<h5 class="mb-0">Profissional</h5> <h5 class="mb-0">Profissional</h5>
@ -224,12 +270,10 @@
</div> </div>
<!-- Plano Premium (Mais Popular) --> <!-- Plano Premium (Mais Popular) -->
<div class="col-xl-2 col-lg-4 col-md-6"> <div class="col">
<div class="card h-100 border-primary shadow position-relative"> <div class="card h-100 border-primary shadow">
<div class="position-absolute top-0 start-50 translate-middle"> <div class="card-header bg-primary text-white text-center pt-3 pb-4">
<span class="badge bg-primary px-3 py-2">Mais Popular</span> <span class="badge bg-white text-primary px-3 py-1 mb-2 d-inline-block" style="font-size:0.7rem;letter-spacing:.04em;">⭐ Mais Popular</span>
</div>
<div class="card-header bg-primary text-white text-center py-4">
<h5 class="mb-0">Premium</h5> <h5 class="mb-0">Premium</h5>
<div class="mt-3"> <div class="mt-3">
<div class="pricing-monthly"> <div class="pricing-monthly">
@ -309,12 +353,10 @@
</div> </div>
<!-- Plano Premium + Afiliados --> <!-- Plano Premium + Afiliados -->
<div class="col-xl-2 col-lg-4 col-md-6"> <div class="col">
<div class="card h-100 border-success shadow"> <div class="card h-100 border-success shadow">
<div class="position-absolute top-0 start-50 translate-middle pricing-premium-badge"> <div class="card-header bg-success text-white text-center pt-3 pb-4">
<span class="badge bg-success px-3 py-2">Novo!</span> <span class="badge bg-white text-success px-3 py-1 mb-2 d-inline-block" style="font-size:0.7rem;letter-spacing:.04em;">🆕 Novo!</span>
</div>
<div class="card-header bg-success text-white text-center py-4">
<h5 class="mb-0">Premium + Afiliados</h5> <h5 class="mb-0">Premium + Afiliados</h5>
<div class="mt-3"> <div class="mt-3">
<div class="pricing-monthly"> <div class="pricing-monthly">
@ -394,6 +436,7 @@
</div> </div>
</div> </div>
<div class="container">
<!-- Comparação de recursos --> <!-- Comparação de recursos -->
<div class="mt-5 pt-5"> <div class="mt-5 pt-5">
<h2 class="text-center mb-4">Compare todos os recursos</h2> <h2 class="text-center mb-4">Compare todos os recursos</h2>
@ -535,6 +578,7 @@
</div> </div>
</div> </div>
</div> </div>
</div><!-- /container inner -->
</div> </div>
@if (TempData["Success"] != null) @if (TempData["Success"] != null)
@ -587,22 +631,20 @@
<script> <script>
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
const monthlyRadio = document.getElementById('monthly'); const btnMonthly = document.getElementById('btnMonthly');
const yearlyRadio = document.getElementById('yearly'); const btnYearly = document.getElementById('btnYearly');
const monthlyElements = document.querySelectorAll('.pricing-monthly'); const monthlyElements = document.querySelectorAll('.pricing-monthly');
const yearlyElements = document.querySelectorAll('.pricing-yearly'); const yearlyElements = document.querySelectorAll('.pricing-yearly');
function togglePricing() { function setPricing(period) {
if (yearlyRadio.checked) { const isYearly = period === 'yearly';
monthlyElements.forEach(el => el.classList.add('d-none')); btnMonthly.classList.toggle('pill-active', !isYearly);
yearlyElements.forEach(el => el.classList.remove('d-none')); btnYearly.classList.toggle('pill-active', isYearly);
} else { monthlyElements.forEach(el => el.classList.toggle('d-none', isYearly));
monthlyElements.forEach(el => el.classList.remove('d-none')); yearlyElements.forEach(el => el.classList.toggle('d-none', !isYearly));
yearlyElements.forEach(el => el.classList.add('d-none'));
}
} }
monthlyRadio.addEventListener('change', togglePricing); btnMonthly.addEventListener('click', () => setPricing('monthly'));
yearlyRadio.addEventListener('change', togglePricing); btnYearly.addEventListener('click', () => setPricing('yearly'));
}); });
</script> </script>