Strip all box-shadow/text-shadow from hover states inside ascii-frame-outer

These non-composited properties force CPU repaints of the surrounding
paint region (the section itself) every time hover enters or exits.
With the fixed overlay (body::before scanline), each such repaint
requires the compositor to re-blend the layer, visible as a blink.

Removed from dashboard.css:
- btn/button/btn-base:hover: box-shadow + text-shadow
- th:hover: text-shadow
- ticket-link:hover: text-shadow
- pagination button:hover: box-shadow + transform + transition:all
- ticket-card-row:hover: box-shadow + transition:all -> background only
- .btn ripple rule: transition:all -> specific properties
- ascii-frame-outer: removed will-change/translateZ (GPU upload worse)

Removed from ticket.css:
- metadata-select:hover: box-shadow; transition:all -> border-color
- comment:hover: box-shadow
- btn:hover: box-shadow
- mention:hover: text-shadow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-19 11:50:06 -04:00
parent 368ad9b48e
commit 4ecd72bc04
2 changed files with 4 additions and 18 deletions

View File

@@ -317,7 +317,7 @@ tbody tr {
/* Button press effect */ /* Button press effect */
.btn { .btn {
transition: all 0.15s ease; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
@@ -594,12 +594,11 @@ h1 {
background: var(--bg-secondary); background: var(--bg-secondary);
border: 1px solid var(--terminal-green); border: 1px solid var(--terminal-green);
border-left: 4px solid var(--terminal-green); border-left: 4px solid var(--terminal-green);
transition: all 0.2s ease; transition: background 0.2s ease;
} }
.ticket-card-row:hover { .ticket-card-row:hover {
background: rgba(0, 255, 65, 0.1); background: rgba(0, 255, 65, 0.1);
box-shadow: var(--glow-green);
} }
.ticket-card-row.priority-1 { border-left-color: var(--priority-1); } .ticket-card-row.priority-1 { border-left-color: var(--priority-1); }
@@ -991,8 +990,6 @@ h1 {
padding: 0; padding: 0;
background: var(--bg-primary); background: var(--bg-primary);
margin-bottom: 2rem; margin-bottom: 2rem;
will-change: transform;
transform: translateZ(0);
} }
.ascii-frame-outer::before { .ascii-frame-outer::before {
@@ -1642,8 +1639,6 @@ button:hover {
background: rgba(0, 255, 65, 0.15); background: rgba(0, 255, 65, 0.15);
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(--glow-amber-intense);
} }
.btn:active, .btn:active,
@@ -1780,7 +1775,6 @@ th {
} }
th:hover { th:hover {
text-shadow: var(--glow-amber-intense);
background-color: rgba(255, 176, 0, 0.05); background-color: rgba(255, 176, 0, 0.05);
} }
@@ -2844,7 +2838,6 @@ input[type="checkbox"]:checked {
.ticket-link:hover { .ticket-link:hover {
background: rgba(0, 255, 65, 0.2); background: rgba(0, 255, 65, 0.2);
border-color: var(--terminal-green); border-color: var(--terminal-green);
text-shadow: var(--glow-green-intense);
} }
/* ===== PAGINATION STYLES ===== */ /* ===== PAGINATION STYLES ===== */
@@ -2861,15 +2854,12 @@ input[type="checkbox"]:checked {
color: var(--terminal-green); color: var(--terminal-green);
border-radius: 0; border-radius: 0;
cursor: pointer; cursor: pointer;
transition: all 0.3s ease; transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
font-family: var(--font-mono); font-family: var(--font-mono);
text-shadow: var(--glow-green);
} }
.pagination button:hover { .pagination button:hover {
background: rgba(0, 255, 65, 0.15); background: rgba(0, 255, 65, 0.15);
box-shadow: var(--glow-green);
transform: translateY(-1px);
} }
.pagination button.active { .pagination button.active {

View File

@@ -262,12 +262,11 @@
color: var(--terminal-green); color: var(--terminal-green);
font-family: var(--font-mono); font-family: var(--font-mono);
cursor: pointer; cursor: pointer;
transition: all 0.2s ease; transition: border-color 0.2s ease;
} }
.metadata-select:hover { .metadata-select:hover {
border-color: var(--terminal-amber); border-color: var(--terminal-amber);
box-shadow: var(--glow-amber);
} }
.metadata-select:focus { .metadata-select:focus {
@@ -564,7 +563,6 @@ textarea.editable {
} }
.btn:hover { .btn:hover {
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
} }
/* Comments Section - TERMINAL STYLE */ /* Comments Section - TERMINAL STYLE */
@@ -646,7 +644,6 @@ textarea.editable {
.comment:hover { .comment:hover {
border-color: var(--terminal-amber); border-color: var(--terminal-amber);
background: linear-gradient(135deg, var(--bg-primary) 0%, rgba(255, 176, 0, 0.03) 100%); background: linear-gradient(135deg, var(--bg-primary) 0%, rgba(255, 176, 0, 0.03) 100%);
box-shadow: 0 0 15px rgba(0, 255, 65, 0.1);
} }
.comment:hover::before, .comment:hover::before,
@@ -1790,7 +1787,6 @@ body.dark-mode .editable {
.mention:hover { .mention:hover {
background: rgba(0, 255, 255, 0.2); background: rgba(0, 255, 255, 0.2);
text-shadow: 0 0 5px var(--terminal-cyan);
} }
.mention::before { .mention::before {