Your Name
feat: UI improvements and error suppression - Enhanced dashboard and market pages with improved header buttons, logo, and currency symbol display - Stopped animated ticker - Removed pie chart legends - Added error suppressor for external service errors (SSE, Permissions-Policy warnings) - Improved header button prominence and icon appearance - Enhanced logo with glow effects and better design - Fixed currency symbol visibility in market tables
8b7b267
| /** | |
| * UI Enhancements V2 - Modern Improvements | |
| * Advanced visual effects, micro-interactions, and polish | |
| */ | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π¨ GLASSMORPHISM EFFECTS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .glass-card { | |
| background: rgba(255, 255, 255, 0.7); | |
| backdrop-filter: blur(20px) saturate(180%); | |
| -webkit-backdrop-filter: blur(20px) saturate(180%); | |
| border: 1px solid rgba(20, 184, 166, 0.18); | |
| box-shadow: | |
| 0 8px 32px rgba(13, 115, 119, 0.08), | |
| inset 0 1px 0 rgba(255, 255, 255, 0.5); | |
| } | |
| .glass-card-dark { | |
| background: rgba(19, 46, 42, 0.7); | |
| backdrop-filter: blur(20px) saturate(180%); | |
| -webkit-backdrop-filter: blur(20px) saturate(180%); | |
| border: 1px solid rgba(45, 212, 191, 0.25); | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β¨ GRADIENT ANIMATIONS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .gradient-animated { | |
| background: linear-gradient( | |
| 135deg, | |
| var(--teal-light), | |
| var(--cyan), | |
| var(--teal), | |
| var(--cyan-light) | |
| ); | |
| background-size: 300% 300%; | |
| animation: gradientShift 8s ease infinite; | |
| } | |
| @keyframes gradientShift { | |
| 0%, 100% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| } | |
| .gradient-border { | |
| position: relative; | |
| background: var(--bg-card); | |
| border-radius: var(--radius-lg); | |
| } | |
| .gradient-border::before { | |
| content: ''; | |
| position: absolute; | |
| inset: -2px; | |
| background: linear-gradient(135deg, var(--teal-light), var(--cyan), var(--teal)); | |
| border-radius: inherit; | |
| z-index: -1; | |
| opacity: 0; | |
| transition: opacity 0.3s; | |
| } | |
| .gradient-border:hover::before { | |
| opacity: 1; | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π― MICRO-INTERACTIONS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .hover-lift { | |
| transition: transform 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .hover-lift:hover { | |
| transform: translateY(-4px); | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .hover-scale { | |
| transition: transform 0.2s ease; | |
| } | |
| .hover-scale:hover { | |
| transform: scale(1.05); | |
| } | |
| .hover-glow { | |
| position: relative; | |
| transition: all 0.3s ease; | |
| } | |
| .hover-glow::after { | |
| content: ''; | |
| position: absolute; | |
| inset: -4px; | |
| background: radial-gradient(circle, rgba(20, 184, 166, 0.3), transparent 70%); | |
| border-radius: inherit; | |
| opacity: 0; | |
| z-index: -1; | |
| transition: opacity 0.3s; | |
| } | |
| .hover-glow:hover::after { | |
| opacity: 1; | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π ENHANCED STATS CARDS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .stat-card-enhanced { | |
| position: relative; | |
| padding: var(--space-4); | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-light); | |
| border-radius: var(--radius-lg); | |
| overflow: hidden; | |
| transition: all 0.3s ease; | |
| } | |
| .stat-card-enhanced::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 3px; | |
| background: var(--gradient-primary); | |
| transform: scaleX(0); | |
| transform-origin: left; | |
| transition: transform 0.3s ease; | |
| } | |
| .stat-card-enhanced:hover::before { | |
| transform: scaleX(1); | |
| } | |
| .stat-card-enhanced:hover { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-md); | |
| border-color: var(--teal-light); | |
| } | |
| .stat-icon-wrapper { | |
| width: 48px; | |
| height: 48px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: linear-gradient(135deg, rgba(45, 212, 191, 0.1), rgba(34, 211, 238, 0.1)); | |
| border-radius: var(--radius-md); | |
| margin-bottom: var(--space-3); | |
| } | |
| .stat-value-animated { | |
| font-size: var(--text-3xl); | |
| font-weight: 700; | |
| background: var(--gradient-primary); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π ENHANCED BUTTONS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .btn-gradient { | |
| position: relative; | |
| background: var(--gradient-primary); | |
| color: white; | |
| border: none; | |
| padding: var(--space-3) var(--space-5); | |
| border-radius: var(--radius-md); | |
| font-weight: 600; | |
| overflow: hidden; | |
| transition: all 0.3s ease; | |
| } | |
| .btn-gradient::before { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: linear-gradient(135deg, var(--cyan-light), var(--teal-light)); | |
| opacity: 0; | |
| transition: opacity 0.3s; | |
| } | |
| .btn-gradient:hover::before { | |
| opacity: 1; | |
| } | |
| .btn-gradient:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 20px rgba(20, 184, 166, 0.3); | |
| } | |
| .btn-gradient span { | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .btn-outline-gradient { | |
| position: relative; | |
| background: transparent; | |
| color: var(--teal); | |
| border: 2px solid transparent; | |
| padding: var(--space-2) var(--space-4); | |
| border-radius: var(--radius-md); | |
| font-weight: 600; | |
| background-clip: padding-box; | |
| transition: all 0.3s ease; | |
| } | |
| .btn-outline-gradient::before { | |
| content: ''; | |
| position: absolute; | |
| inset: -2px; | |
| background: var(--gradient-primary); | |
| border-radius: inherit; | |
| z-index: -1; | |
| } | |
| .btn-outline-gradient:hover { | |
| color: white; | |
| background: var(--gradient-primary); | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π ANIMATED CHARTS & GRAPHS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .chart-container { | |
| position: relative; | |
| background: var(--bg-card); | |
| border: 1px solid var(--border-light); | |
| border-radius: var(--radius-lg); | |
| padding: var(--space-4); | |
| overflow: hidden; | |
| } | |
| .chart-container::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| height: 100%; | |
| background: linear-gradient( | |
| 180deg, | |
| rgba(45, 212, 191, 0.03) 0%, | |
| transparent 100% | |
| ); | |
| pointer-events: none; | |
| } | |
| .sparkline { | |
| display: inline-block; | |
| width: 60px; | |
| height: 24px; | |
| } | |
| .sparkline path { | |
| stroke: var(--teal); | |
| stroke-width: 2; | |
| fill: none; | |
| stroke-linecap: round; | |
| stroke-linejoin: round; | |
| animation: drawLine 1s ease-out; | |
| } | |
| @keyframes drawLine { | |
| from { | |
| stroke-dasharray: 1000; | |
| stroke-dashoffset: 1000; | |
| } | |
| to { | |
| stroke-dasharray: 1000; | |
| stroke-dashoffset: 0; | |
| } | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π LOADING STATES | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .skeleton-enhanced { | |
| background: linear-gradient( | |
| 90deg, | |
| var(--mint) 0%, | |
| var(--aqua-light) 50%, | |
| var(--mint) 100% | |
| ); | |
| background-size: 200% 100%; | |
| animation: shimmerEnhanced 1.5s ease-in-out infinite; | |
| border-radius: var(--radius-sm); | |
| } | |
| @keyframes shimmerEnhanced { | |
| 0% { background-position: -200% 0; } | |
| 100% { background-position: 200% 0; } | |
| } | |
| .pulse-dot { | |
| width: 8px; | |
| height: 8px; | |
| background: var(--teal); | |
| border-radius: 50%; | |
| animation: pulse 2s ease-in-out infinite; | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| transform: scale(1.2); | |
| } | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π·οΈ ENHANCED BADGES | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .badge-gradient { | |
| background: var(--gradient-primary); | |
| color: white; | |
| padding: 4px 12px; | |
| border-radius: var(--radius-full); | |
| font-size: var(--text-xs); | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| box-shadow: 0 2px 8px rgba(20, 184, 166, 0.3); | |
| } | |
| .badge-pulse { | |
| position: relative; | |
| animation: badgePulse 2s ease-in-out infinite; | |
| } | |
| @keyframes badgePulse { | |
| 0%, 100% { | |
| box-shadow: 0 0 0 0 rgba(20, 184, 166, 0.7); | |
| } | |
| 50% { | |
| box-shadow: 0 0 0 8px rgba(20, 184, 166, 0); | |
| } | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π± MOBILE OPTIMIZATIONS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width: 768px) { | |
| .glass-card { | |
| backdrop-filter: blur(10px); | |
| -webkit-backdrop-filter: blur(10px); | |
| } | |
| .hover-lift:hover { | |
| transform: none; | |
| } | |
| .stat-card-enhanced:hover { | |
| transform: none; | |
| } | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| π DARK MODE ENHANCEMENTS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| [data-theme="dark"] .glass-card { | |
| background: rgba(19, 46, 42, 0.7); | |
| border-color: rgba(45, 212, 191, 0.25); | |
| box-shadow: | |
| 0 8px 32px rgba(0, 0, 0, 0.3), | |
| inset 0 1px 0 rgba(45, 212, 191, 0.1); | |
| } | |
| [data-theme="dark"] .stat-icon-wrapper { | |
| background: linear-gradient(135deg, rgba(45, 212, 191, 0.15), rgba(34, 211, 238, 0.15)); | |
| } | |
| [data-theme="dark"] .chart-container::before { | |
| background: linear-gradient( | |
| 180deg, | |
| rgba(45, 212, 191, 0.05) 0%, | |
| transparent 100% | |
| ); | |
| } | |
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β‘ PERFORMANCE OPTIMIZATIONS | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (prefers-reduced-motion: reduce) { | |
| .gradient-animated, | |
| .hover-lift, | |
| .hover-scale, | |
| .hover-glow, | |
| .skeleton-enhanced, | |
| .pulse-dot, | |
| .badge-pulse, | |
| .sparkline path { | |
| animation: none ; | |
| transition: none ; | |
| } | |
| } | |
| /* GPU acceleration for smooth animations */ | |
| .hover-lift, | |
| .hover-scale, | |
| .stat-card-enhanced, | |
| .btn-gradient { | |
| will-change: transform; | |
| transform: translateZ(0); | |
| backface-visibility: hidden; | |
| } | |