gdg-build / app /static /feedback.css
AnkitKolhe149's picture
deploy-to-hug-face
652aca5
/* ===============================
FEEDBACK PAGE STYLES - ENHANCED 3D
=============================== */
.feedback-header-badge {
width: 100px;
height: 100px;
margin: 0 auto;
border-radius: 50%;
background: linear-gradient(135deg, var(--primary-color) 0%, #2563eb 100%);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 8px 32px rgba(59, 130, 246, 0.4);
animation: pulse 2s infinite;
}
.feedback-header-badge i {
color: white;
}
@keyframes pulse {
0%, 100% {
transform: scale(1);
box-shadow: 0 8px 32px rgba(59, 130, 246, 0.4);
}
50% {
transform: scale(1.05);
box-shadow: 0 12px 48px rgba(59, 130, 246, 0.6);
}
}
/* ===============================
STATS BOX
=============================== */
.stat-box {
background: linear-gradient(135deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.4) 100%);
border: 1.5px solid rgba(59, 130, 246, 0.15);
border-radius: 1rem;
padding: 1.5rem;
text-align: center;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
backdrop-filter: blur(12px);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}
.stat-number {
font-size: 2rem;
font-weight: 700;
color: var(--primary-color);
margin-bottom: 0.5rem;
}
.stat-label {
font-size: 0.85rem;
color: var(--text-color);
font-weight: 500;
}
[data-theme="dark"] .stat-box {
background: linear-gradient(135deg, rgba(26, 40, 71, 0.8) 0%, rgba(20, 27, 47, 0.6) 100%);
border-color: rgba(100, 150, 255, 0.2);
}
.stat-box:hover {
transform: translateY(-5px);
border-color: rgba(59, 130, 246, 0.4);
box-shadow: 0 12px 32px rgba(59, 130, 246, 0.2);
}
/* ===============================
IMPORTANCE CARD
=============================== */
.importance-card {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.08) 0%, rgba(16, 185, 129, 0.06) 100%);
border: 1.5px solid rgba(59, 130, 246, 0.2);
border-radius: 1.5rem;
padding: 2.5rem;
backdrop-filter: blur(12px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
}
[data-theme="dark"] .importance-card {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.12) 0%, rgba(16, 185, 129, 0.08) 100%);
border-color: rgba(100, 150, 255, 0.25);
}
.impact-item {
display: flex;
align-items: center;
font-weight: 500;
color: var(--text-color);
font-size: 0.95rem;
}
.impact-item i {
font-size: 1.1rem;
}
/* ===============================
FORM CONTROLS
=============================== */
.feedback-card {
background: linear-gradient(135deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.4) 100%);
border: 1.5px solid rgba(59, 130, 246, 0.15);
border-radius: 1.5rem;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255,255,255,0.6);
backdrop-filter: blur(12px);
padding: 0;
position: relative;
overflow: hidden;
}
.feedback-card::before {
content: '';
position: absolute;
top: -50%;
right: -50%;
width: 250px;
height: 250px;
background: radial-gradient(circle, var(--primary-color) 0%, transparent 70%);
opacity: 0.05;
border-radius: 50%;
transition: all 0.6s ease;
z-index: 0;
}
[data-theme="dark"] .feedback-card {
background: linear-gradient(135deg, rgba(26, 40, 71, 0.8) 0%, rgba(20, 27, 47, 0.6) 100%);
border-color: rgba(100, 150, 255, 0.2);
box-shadow: 0 8px 32px rgba(59, 130, 246, 0.12), inset 0 1px 0 rgba(96, 165, 250, 0.1);
}
.feedback-card .card-body {
position: relative;
z-index: 1;
}
/* ===============================
FORM CONTROLS
=============================== */
.form-control,
.form-select {
border: 1.5px solid rgba(59, 130, 246, 0.2);
border-radius: 0.875rem;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
background-color: rgba(255, 255, 255, 0.95);
color: var(--text-color);
font-weight: 500;
}
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
background-color: rgba(26, 40, 71, 0.6);
border-color: rgba(100, 150, 255, 0.2);
color: var(--text-color);
}
.form-control:focus,
.form-select:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1), 0 0 0 1.5px var(--primary-color);
background-color: white;
}
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
background-color: rgba(26, 40, 71, 0.8);
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15), 0 0 0 1.5px var(--primary-color);
}
.form-control::placeholder {
color: rgba(0, 0, 0, 0.5);
font-weight: 400;
}
[data-theme="dark"] .form-control::placeholder {
color: rgba(232, 238, 247, 0.5);
}
/* ===============================
FORM LABELS
=============================== */
.form-label {
color: var(--heading-color);
font-size: 0.95rem;
font-weight: 600;
margin-bottom: 0.75rem;
letter-spacing: 0.3px;
}
small.text-muted {
display: block;
margin-top: 0.4rem;
font-weight: 400;
opacity: 0.8;
}
/* ===============================
RATING STARS
=============================== */
.rating-stars {
padding: 1.25rem 0;
}
.star-group {
display: flex;
gap: 0.75rem;
font-size: 2rem;
}
.star-group i {
cursor: pointer;
color: #d1d5db;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.05));
}
[data-theme="dark"] .star-group i {
color: #4b5563;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.star-group i:hover {
color: #fbbf24;
transform: scale(1.25) rotateZ(-10deg);
filter: drop-shadow(0 4px 8px rgba(251, 191, 36, 0.3));
}
.star-group i.fas {
color: #fbbf24;
text-shadow: 0 2px 8px rgba(251, 191, 36, 0.3);
}
/* ===============================
BUTTONS
=============================== */
.btn-primary {
background: linear-gradient(135deg, var(--primary-color) 0%, #2563eb 100%);
border: none;
border-radius: 0.875rem;
font-weight: 600;
letter-spacing: 0.5px;
padding: 0.875rem 2rem;
transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3);
position: relative;
overflow: hidden;
}
.btn-primary::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
transition: left 0.5s ease;
}
.btn-primary:hover {
transform: translateY(-3px);
box-shadow: 0 8px 32px rgba(59, 130, 246, 0.4);
background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
}
.btn-primary:hover::before {
left: 100%;
}
.btn-primary:active {
transform: translateY(-1px);
}
/* ===============================
ALERTS
=============================== */
.alert {
border: 1.5px solid;
border-radius: 0.875rem;
backdrop-filter: blur(12px);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
animation: slideInUp 0.4s ease-out;
}
.alert-success {
background: linear-gradient(135deg, rgba(34, 197, 94, 0.1) 0%, rgba(34, 197, 94, 0.05) 100%);
border-color: rgba(34, 197, 94, 0.3);
color: #166534;
}
[data-theme="dark"] .alert-success {
background: linear-gradient(135deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.08) 100%);
border-color: rgba(34, 197, 94, 0.4);
color: #86efac;
}
.alert-danger {
background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, rgba(239, 68, 68, 0.05) 100%);
border-color: rgba(239, 68, 68, 0.3);
color: #7f1d1d;
}
[data-theme="dark"] .alert-danger {
background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(239, 68, 68, 0.08) 100%);
border-color: rgba(239, 68, 68, 0.4);
color: #fca5a5;
}
/* ===============================
INFO BOXES
=============================== */
.info-box {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.08) 0%, rgba(16, 185, 129, 0.06) 100%);
border: 1.5px solid rgba(59, 130, 246, 0.15);
border-radius: 1.25rem;
padding: 2rem;
transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
box-shadow: 0 4px 16px rgba(59, 130, 246, 0.08);
}
.info-box::before {
content: '';
position: absolute;
top: -50%;
right: -50%;
width: 150px;
height: 150px;
background: radial-gradient(circle, var(--primary-color) 0%, transparent 70%);
opacity: 0.03;
border-radius: 50%;
transition: all 0.6s ease;
z-index: 0;
}
[data-theme="dark"] .info-box {
background: linear-gradient(135deg, rgba(59, 130, 246, 0.12) 0%, rgba(16, 185, 129, 0.08) 100%);
border-color: rgba(100, 150, 255, 0.2);
box-shadow: 0 4px 16px rgba(59, 130, 246, 0.12);
}
.info-box:hover {
border-color: rgba(59, 130, 246, 0.3);
transform: translateY(-6px);
box-shadow: 0 12px 32px rgba(59, 130, 246, 0.15);
}
[data-theme="dark"] .info-box:hover {
border-color: rgba(100, 150, 255, 0.35);
box-shadow: 0 12px 32px rgba(59, 130, 246, 0.2);
}
.info-box h5 {
color: var(--heading-color);
font-weight: 700;
margin-bottom: 1rem;
position: relative;
z-index: 1;
}
.info-box p {
color: var(--text-color);
position: relative;
z-index: 1;
line-height: 1.6;
}
/* ===============================
PAGE HEADER
=============================== */
.container > .row:first-child h1 {
font-weight: 700;
letter-spacing: -0.5px;
margin-bottom: 1rem;
animation: slideInUp 0.6s ease-out 0.1s both;
}
.container > .row:first-child .lead {
font-weight: 500;
animation: slideInUp 0.6s ease-out 0.2s both;
}
/* ===============================
TEXTAREA
=============================== */
textarea.form-control {
font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
line-height: 1.6;
resize: vertical;
min-height: 150px;
}
textarea.form-control:focus {
resize: vertical;
}
/* ===============================
FORM CHECKBOX
=============================== */
.form-check-input {
width: 1.25rem;
height: 1.25rem;
border: 1.5px solid rgba(59, 130, 246, 0.4);
border-radius: 0.4rem;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
background-color: white;
}
[data-theme="dark"] .form-check-input {
background-color: rgba(26, 40, 71, 0.6);
border-color: rgba(100, 150, 255, 0.3);
}
.form-check-input:checked {
background: linear-gradient(135deg, var(--primary-color) 0%, #2563eb 100%);
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}
.form-check-input:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}
.form-check-label {
cursor: pointer;
user-select: none;
color: var(--text-color);
font-weight: 500;
margin-left: 0.5rem;
}
/* ===============================
ANIMATIONS
=============================== */
@keyframes slideInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.feedback-card {
animation: slideInUp 0.6s ease-out;
}
.info-box {
animation: slideInUp 0.6s ease-out backwards;
}
.info-box:nth-child(1) { animation-delay: 0.3s; }
.info-box:nth-child(2) { animation-delay: 0.4s; }
/* ===============================
RESPONSIVE DESIGN
=============================== */
@media (max-width: 992px) {
.feedback-card .card-body {
padding: 2.25rem;
}
}
@media (max-width: 768px) {
.feedback-card {
border-radius: 1.25rem;
}
.feedback-card .card-body {
padding: 1.75rem;
}
.star-group {
font-size: 1.75rem;
gap: 0.5rem;
}
h1.display-4 {
font-size: 2rem !important;
}
.form-control-lg,
.form-select-lg {
font-size: 1rem;
padding: 0.75rem 1rem;
}
.info-box {
padding: 1.5rem;
}
}
@media (max-width: 576px) {
.feedback-card .card-body {
padding: 1.5rem 1rem;
}
h1.display-4 {
font-size: 1.5rem !important;
}
.lead {
font-size: 0.95rem !important;
}
.star-group {
font-size: 1.5rem;
gap: 0.4rem;
}
.form-label {
font-size: 0.9rem;
}
.info-box {
padding: 1.25rem;
}
.info-box h5 {
font-size: 1rem;
}
}