Fix persistent blink: scanline animation still active via base.css cascade
Root cause: removing 'animation' from dashboard.css body::before did NOT disable the scanline — it just stopped overriding base.css which still had 'animation: scanline 8s linear infinite'. CSS cascade means the base.css value remained active. Fixed by setting 'animation: none' explicitly in dashboard.css. Also fix base.css (used by all pages including ticket page): - Set body::before animation: none (removes GPU compositing layer from scanline) - Change corner-pulse/subtle-pulse/pulse-glow/pulse-red keyframes from text-shadow and box-shadow animations to opacity (GPU composited, zero CPU repaint overhead) - Change exec-running-pulse from box-shadow to opacity - Remove box-shadow from .lt-table tr:hover, .lt-card:hover, .lt-stat-card:hover - Remove text-shadow/box-shadow/transform from .lt-btn:hover and variants - Remove text-shadow from a:hover Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -175,7 +175,6 @@ a {
|
|||||||
}
|
}
|
||||||
a:hover {
|
a:hover {
|
||||||
color: var(--terminal-amber);
|
color: var(--terminal-amber);
|
||||||
text-shadow: var(--glow-amber);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ul, ol { list-style: none; }
|
ul, ol { list-style: none; }
|
||||||
@@ -200,7 +199,7 @@ body::before {
|
|||||||
);
|
);
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
z-index: var(--z-overlay);
|
z-index: var(--z-overlay);
|
||||||
animation: scanline 8s linear infinite;
|
animation: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Binary data-stream watermark — bottom-right corner */
|
/* Binary data-stream watermark — bottom-right corner */
|
||||||
@@ -650,7 +649,6 @@ pre {
|
|||||||
}
|
}
|
||||||
.lt-card:hover {
|
.lt-card:hover {
|
||||||
border-color: var(--terminal-green);
|
border-color: var(--terminal-green);
|
||||||
box-shadow: var(--box-glow-green);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.lt-card-title {
|
.lt-card-title {
|
||||||
@@ -701,13 +699,9 @@ pre {
|
|||||||
background: var(--terminal-green-dim);
|
background: var(--terminal-green-dim);
|
||||||
color: var(--terminal-amber);
|
color: var(--terminal-amber);
|
||||||
border-color: var(--terminal-amber);
|
border-color: var(--terminal-amber);
|
||||||
text-shadow: var(--glow-amber-intense);
|
|
||||||
box-shadow: var(--box-glow-amber);
|
|
||||||
transform: translateY(-2px);
|
|
||||||
}
|
}
|
||||||
.lt-btn:active {
|
.lt-btn:active {
|
||||||
transform: translateY(0);
|
opacity: 0.85;
|
||||||
box-shadow: var(--box-glow-green);
|
|
||||||
}
|
}
|
||||||
.lt-btn:disabled {
|
.lt-btn:disabled {
|
||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
@@ -725,7 +719,6 @@ pre {
|
|||||||
.lt-btn-primary::before { content: '> '; }
|
.lt-btn-primary::before { content: '> '; }
|
||||||
.lt-btn-primary:hover {
|
.lt-btn-primary:hover {
|
||||||
background: var(--terminal-amber-dim);
|
background: var(--terminal-amber-dim);
|
||||||
box-shadow: var(--box-glow-amber);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Red (destructive / danger) */
|
/* Red (destructive / danger) */
|
||||||
@@ -737,8 +730,6 @@ pre {
|
|||||||
background: var(--terminal-red-dim);
|
background: var(--terminal-red-dim);
|
||||||
color: var(--terminal-red);
|
color: var(--terminal-red);
|
||||||
border-color: var(--terminal-red);
|
border-color: var(--terminal-red);
|
||||||
text-shadow: var(--glow-red);
|
|
||||||
box-shadow: var(--box-glow-red);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Small variant */
|
/* Small variant */
|
||||||
@@ -899,7 +890,6 @@ pre {
|
|||||||
}
|
}
|
||||||
.lt-table tbody tr:hover {
|
.lt-table tbody tr:hover {
|
||||||
background: rgba(0, 255, 65, 0.06);
|
background: rgba(0, 255, 65, 0.06);
|
||||||
box-shadow: inset 0 0 20px rgba(0, 255, 65, 0.05);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Data table — compact, row-only separators, good for dense data */
|
/* Data table — compact, row-only separators, good for dense data */
|
||||||
@@ -1357,8 +1347,6 @@ pre {
|
|||||||
}
|
}
|
||||||
.lt-stat-card:hover {
|
.lt-stat-card:hover {
|
||||||
border-color: var(--terminal-amber);
|
border-color: var(--terminal-amber);
|
||||||
box-shadow: var(--box-glow-amber);
|
|
||||||
transform: translateY(-2px);
|
|
||||||
}
|
}
|
||||||
.lt-stat-card.active {
|
.lt-stat-card.active {
|
||||||
background: var(--terminal-amber-dim);
|
background: var(--terminal-amber-dim);
|
||||||
@@ -1560,23 +1548,23 @@ pre {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@keyframes corner-pulse {
|
@keyframes corner-pulse {
|
||||||
0%, 100% { text-shadow: var(--glow-green); }
|
0%, 100% { opacity: 0.7; }
|
||||||
50% { text-shadow: var(--glow-green-intense); }
|
50% { opacity: 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes subtle-pulse {
|
@keyframes subtle-pulse {
|
||||||
0%, 100% { text-shadow: var(--glow-amber); }
|
0%, 100% { opacity: 0.75; }
|
||||||
50% { text-shadow: var(--glow-amber-intense); }
|
50% { opacity: 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes pulse-glow {
|
@keyframes pulse-glow {
|
||||||
0%, 100% { text-shadow: 0 0 5px currentColor, 0 0 10px currentColor; }
|
0%, 100% { opacity: 0.7; }
|
||||||
50% { text-shadow: 0 0 10px currentColor, 0 0 20px currentColor, 0 0 30px currentColor; }
|
50% { opacity: 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes pulse-red {
|
@keyframes pulse-red {
|
||||||
0%, 100% { box-shadow: 0 0 0 0 rgba(255, 68, 68, 0.5); }
|
0%, 100% { opacity: 0.6; }
|
||||||
50% { box-shadow: 0 0 6px 3px rgba(255, 68, 68, 0.2); }
|
50% { opacity: 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes focus-pulse {
|
@keyframes focus-pulse {
|
||||||
@@ -1615,8 +1603,8 @@ pre {
|
|||||||
|
|
||||||
/* Item pulse for actively running tasks */
|
/* Item pulse for actively running tasks */
|
||||||
@keyframes exec-running-pulse {
|
@keyframes exec-running-pulse {
|
||||||
0%, 100% { border-color: var(--terminal-green); }
|
0%, 100% { border-color: var(--terminal-green); opacity: 0.7; }
|
||||||
50% { border-color: var(--status-running); box-shadow: 0 0 8px rgba(255, 193, 7, 0.35); }
|
50% { border-color: var(--status-running); opacity: 1; }
|
||||||
}
|
}
|
||||||
.lt-item-running { animation: exec-running-pulse 2s ease-in-out infinite; }
|
.lt-item-running { animation: exec-running-pulse 2s ease-in-out infinite; }
|
||||||
|
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ body::before {
|
|||||||
);
|
);
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
z-index: var(--z-overlay);
|
z-index: var(--z-overlay);
|
||||||
|
animation: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Screen Flicker Effect */
|
/* Screen Flicker Effect */
|
||||||
|
|||||||
Reference in New Issue
Block a user