237 lines
7.1 KiB
CSS
237 lines
7.1 KiB
CSS
/* Enhanced Glassmorphism Effects for MYP Application */
|
|
|
|
/* Base Glass Effects */
|
|
.glass-base {
|
|
backdrop-filter: blur(20px) saturate(180%) brightness(110%);
|
|
-webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%);
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.glass-strong {
|
|
backdrop-filter: blur(24px) saturate(200%) brightness(120%);
|
|
-webkit-backdrop-filter: blur(24px) saturate(200%) brightness(120%);
|
|
box-shadow: 0 35px 60px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.glass-subtle {
|
|
backdrop-filter: blur(16px) saturate(150%) brightness(105%);
|
|
-webkit-backdrop-filter: blur(16px) saturate(150%) brightness(105%);
|
|
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
/* Light Mode Glass */
|
|
.glass-light {
|
|
background: rgba(255, 255, 255, 0.7);
|
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
}
|
|
|
|
.glass-light-strong {
|
|
background: rgba(255, 255, 255, 0.6);
|
|
border: 1px solid rgba(255, 255, 255, 0.4);
|
|
}
|
|
|
|
/* Dark Mode Glass */
|
|
.glass-dark {
|
|
background: rgba(0, 0, 0, 0.7);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.glass-dark-strong {
|
|
background: rgba(0, 0, 0, 0.8);
|
|
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
box-shadow: 0 35px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08);
|
|
}
|
|
|
|
/* Interactive Glass Elements */
|
|
.glass-interactive {
|
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.glass-interactive:hover {
|
|
transform: translateY(-2px);
|
|
backdrop-filter: blur(28px) saturate(220%) brightness(125%);
|
|
-webkit-backdrop-filter: blur(28px) saturate(220%) brightness(125%);
|
|
box-shadow: 0 40px 80px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.15);
|
|
}
|
|
|
|
/* Glass Navigation */
|
|
.glass-nav {
|
|
background: rgba(255, 255, 255, 0.5);
|
|
backdrop-filter: blur(24px) saturate(200%) brightness(120%);
|
|
-webkit-backdrop-filter: blur(24px) saturate(200%) brightness(120%);
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.dark .glass-nav {
|
|
background: rgba(0, 0, 0, 0.5);
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
/* Glass Cards */
|
|
.glass-card-enhanced {
|
|
background: rgba(255, 255, 255, 0.7);
|
|
backdrop-filter: blur(20px) saturate(180%) brightness(110%);
|
|
-webkit-backdrop-filter: blur(20px) saturate(180%) brightness(110%);
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
border-radius: 16px;
|
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.dark .glass-card-enhanced {
|
|
background: rgba(0, 0, 0, 0.7);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.glass-card-enhanced:hover {
|
|
transform: translateY(-4px);
|
|
box-shadow: 0 35px 70px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.15);
|
|
}
|
|
|
|
.dark .glass-card-enhanced:hover {
|
|
box-shadow: 0 35px 70px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
/* Glass Buttons */
|
|
.glass-btn {
|
|
background: rgba(255, 255, 255, 0.8);
|
|
backdrop-filter: blur(16px) saturate(150%) brightness(110%);
|
|
-webkit-backdrop-filter: blur(16px) saturate(150%) brightness(110%);
|
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
border-radius: 12px;
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.dark .glass-btn {
|
|
background: rgba(0, 0, 0, 0.8);
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.08);
|
|
}
|
|
|
|
.glass-btn:hover {
|
|
transform: translateY(-1px);
|
|
backdrop-filter: blur(20px) saturate(170%) brightness(115%);
|
|
-webkit-backdrop-filter: blur(20px) saturate(170%) brightness(115%);
|
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.15);
|
|
}
|
|
|
|
/* Glass Modals */
|
|
.glass-modal {
|
|
background: rgba(255, 255, 255, 0.85);
|
|
backdrop-filter: blur(32px) saturate(200%) brightness(115%);
|
|
-webkit-backdrop-filter: blur(32px) saturate(200%) brightness(115%);
|
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
border-radius: 20px;
|
|
box-shadow: 0 50px 100px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
.dark .glass-modal {
|
|
background: rgba(0, 0, 0, 0.85);
|
|
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
box-shadow: 0 50px 100px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
/* Glass Form Elements */
|
|
.glass-input {
|
|
background: rgba(255, 255, 255, 0.6);
|
|
backdrop-filter: blur(16px) saturate(150%);
|
|
-webkit-backdrop-filter: blur(16px) saturate(150%);
|
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
border-radius: 8px;
|
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.05);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.dark .glass-input {
|
|
background: rgba(0, 0, 0, 0.6);
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.glass-input:focus {
|
|
backdrop-filter: blur(20px) saturate(180%);
|
|
-webkit-backdrop-filter: blur(20px) saturate(180%);
|
|
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15), 0 0 0 2px rgba(59, 130, 246, 0.5);
|
|
}
|
|
|
|
/* Glass Dropdown */
|
|
.glass-dropdown {
|
|
background: rgba(255, 255, 255, 0.8);
|
|
backdrop-filter: blur(24px) saturate(200%) brightness(120%);
|
|
-webkit-backdrop-filter: blur(24px) saturate(200%) brightness(120%);
|
|
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
border-radius: 12px;
|
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.dark .glass-dropdown {
|
|
background: rgba(0, 0, 0, 0.8);
|
|
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.08);
|
|
}
|
|
|
|
/* Animation for glass elements */
|
|
@keyframes glassFloat {
|
|
0%, 100% {
|
|
transform: translateY(0px);
|
|
}
|
|
50% {
|
|
transform: translateY(-2px);
|
|
}
|
|
}
|
|
|
|
.glass-float {
|
|
animation: glassFloat 3s ease-in-out infinite;
|
|
}
|
|
|
|
/* Glass overlay for backgrounds */
|
|
.glass-overlay {
|
|
background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
|
|
backdrop-filter: blur(40px) saturate(200%);
|
|
-webkit-backdrop-filter: blur(40px) saturate(200%);
|
|
}
|
|
|
|
.dark .glass-overlay {
|
|
background: linear-gradient(135deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.1) 100%);
|
|
}
|
|
|
|
/* Responsive glass effects */
|
|
@media (max-width: 768px) {
|
|
.glass-base,
|
|
.glass-strong,
|
|
.glass-card-enhanced {
|
|
backdrop-filter: blur(16px) saturate(150%);
|
|
-webkit-backdrop-filter: blur(16px) saturate(150%);
|
|
}
|
|
}
|
|
|
|
/* High contrast mode adjustments */
|
|
@media (prefers-contrast: high) {
|
|
.glass-base,
|
|
.glass-strong,
|
|
.glass-card-enhanced {
|
|
border-width: 2px;
|
|
backdrop-filter: blur(12px);
|
|
-webkit-backdrop-filter: blur(12px);
|
|
}
|
|
}
|
|
|
|
/* Reduced motion support */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.glass-interactive,
|
|
.glass-card-enhanced,
|
|
.glass-btn {
|
|
transition: none;
|
|
}
|
|
|
|
.glass-float {
|
|
animation: none;
|
|
}
|
|
} |