QrRapido/Views/Shared/_CookieConsent.cshtml
2025-08-10 14:45:53 -03:00

152 lines
3.2 KiB
Plaintext

@using Microsoft.Extensions.Localization
@inject IStringLocalizer<QRRapidoApp.Resources.SharedResource> Localizer
<div id="cookie-consent-banner" class="cookie-consent-banner">
<div class="cookie-consent-content">
<div class="cookie-consent-text">
<h6 class="cookie-title">
<i class="fas fa-cookie-bite me-2"></i>
@Localizer["CookieConsentTitle"]
</h6>
<p class="cookie-message mb-3">
@Localizer["CookieConsentMessage"]
<a href="@Url.Action("Privacy", "Home")" class="text-primary text-decoration-none">
@Localizer["CookieLearnMore"]
</a>
</p>
</div>
<div class="cookie-consent-actions">
<button id="cookie-accept-essential" class="btn btn-outline-secondary btn-sm me-2">
@Localizer["CookieAcceptEssential"]
</button>
<button id="cookie-accept-all" class="btn btn-primary btn-sm">
@Localizer["CookieAcceptAll"]
</button>
</div>
</div>
</div>
<style>
.cookie-consent-banner {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: rgba(33, 37, 41, 0.95);
backdrop-filter: blur(10px);
color: white;
z-index: 9999;
border-top: 3px solid var(--bs-primary);
box-shadow: 0 -4px 15px rgba(0,0,0,0.3);
display: none;
animation: slideInUp 0.3s ease-out;
}
@@keyframes slideInUp {
from {
transform: translateY(100%);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.cookie-consent-content {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
display: flex;
align-items: center;
gap: 20px;
}
.cookie-consent-text {
flex: 1;
}
.cookie-title {
color: var(--bs-primary);
margin-bottom: 8px;
font-size: 1.1rem;
font-weight: 600;
}
.cookie-message {
font-size: 0.95rem;
line-height: 1.4;
color: #e9ecef;
}
.cookie-consent-actions {
display: flex;
gap: 10px;
flex-shrink: 0;
}
.cookie-consent-actions .btn {
border-radius: 25px;
padding: 8px 20px;
font-weight: 500;
transition: all 0.2s ease;
}
.cookie-consent-actions .btn:hover {
transform: translateY(-1px);
}
/* Responsive */
@@media (max-width: 768px) {
.cookie-consent-content {
flex-direction: column;
text-align: center;
padding: 15px;
}
.cookie-consent-actions {
flex-direction: column;
width: 100%;
gap: 8px;
}
.cookie-consent-actions .btn {
width: 100%;
}
.cookie-message {
font-size: 0.9rem;
}
}
@@media (max-width: 480px) {
.cookie-consent-content {
padding: 12px;
}
.cookie-title {
font-size: 1rem;
}
.cookie-message {
font-size: 0.85rem;
}
}
/* Animação de saída */
.cookie-consent-banner.hidden {
animation: slideOutDown 0.3s ease-in;
animation-fill-mode: forwards;
}
@@keyframes slideOutDown {
from {
transform: translateY(0);
opacity: 1;
}
to {
transform: translateY(100%);
opacity: 0;
}
}
</style>