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
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:
parent
be4e766f9b
commit
917fef3f71
@ -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">
|
</div>
|
||||||
Anual
|
|
||||||
<span class="badge bg-success ms-1">2 meses grátis</span>
|
|
||||||
</label>
|
|
||||||
</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>
|
||||||
|
|
||||||
<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>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user