refactor(styles): streamline transition properties and enhance accessibility support

This commit is contained in:
fynks 2026-03-09 11:26:36 +05:00
parent 09dbd77cc0
commit 6e2af5717e

131
dist/css/styles.css vendored
View file

@ -137,7 +137,6 @@
box-shadow: 0 0 0 6px rgba(99, 102, 241, .25); box-shadow: 0 0 0 6px rgba(99, 102, 241, .25);
} }
.nav-link,
.btn, .btn,
.status-card, .status-card,
.benefit-card { .benefit-card {
@ -145,18 +144,6 @@
} }
} }
/* ===== REDUCED MOTION SUPPORT ===== */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important
}
}
@supports (content-visibility:auto) { @supports (content-visibility:auto) {
.section, .section,
@ -337,7 +324,7 @@ button:focus-visible {
backdrop-filter: blur(12px) saturate(140%); backdrop-filter: blur(12px) saturate(140%);
-webkit-backdrop-filter: blur(12px) saturate(140%); -webkit-backdrop-filter: blur(12px) saturate(140%);
border-bottom: 1px solid var(--border-primary); border-bottom: 1px solid var(--border-primary);
transition: all var(--transition-normal); transition: background var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal), backdrop-filter var(--transition-normal), -webkit-backdrop-filter var(--transition-normal);
z-index: -1; z-index: -1;
will-change: backdrop-filter, background, border-bottom; will-change: backdrop-filter, background, border-bottom;
} }
@ -578,7 +565,7 @@ button:focus-visible {
color: var(--text-secondary); color: var(--text-secondary);
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
white-space: nowrap; white-space: nowrap;
transition: all var(--transition-fast); transition: color var(--transition-fast), background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
text-decoration: none; text-decoration: none;
overflow: hidden; overflow: hidden;
} }
@ -670,7 +657,7 @@ button:focus-visible {
color: var(--text-primary); color: var(--text-primary);
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
transition: all var(--transition-fast); transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
position: relative; position: relative;
overflow: hidden; overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, .05); box-shadow: 0 2px 8px rgba(0, 0, 0, .05);
@ -707,7 +694,7 @@ button:focus-visible {
width: 24px; width: 24px;
height: 24px; height: 24px;
position: absolute; position: absolute;
transition: all var(--transition-normal); transition: opacity var(--transition-normal), transform var(--transition-normal);
} }
.sun-icon { .sun-icon {
@ -740,7 +727,7 @@ button:focus-visible {
border-radius: var(--radius-full); border-radius: var(--radius-full);
background: var(--bg-primary); background: var(--bg-primary);
cursor: pointer; cursor: pointer;
transition: all var(--transition-fast); transition: background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
flex-shrink: 0; flex-shrink: 0;
box-shadow: 0 2px 8px rgba(0, 0, 0, .05); box-shadow: 0 2px 8px rgba(0, 0, 0, .05);
} }
@ -776,7 +763,7 @@ button:focus-visible {
height: 2px; height: 2px;
background: var(--text-primary); background: var(--text-primary);
border-radius: var(--radius-full); border-radius: var(--radius-full);
transition: all var(--transition-fast); transition: transform var(--transition-fast), opacity var(--transition-fast), background-color var(--transition-fast);
transform-origin: center; transform-origin: center;
} }
@ -902,7 +889,7 @@ button:focus-visible {
color: var(--text-secondary); color: var(--text-secondary);
text-decoration: none; text-decoration: none;
border-radius: var(--radius-md); border-radius: var(--radius-md);
transition: all var(--transition-fast); transition: background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
font-size: var(--text-sm); font-size: var(--text-sm);
font-weight: var(--font-medium); font-weight: var(--font-medium);
white-space: nowrap; white-space: nowrap;
@ -2557,7 +2544,7 @@ th {
font-weight: var(--font-semibold); font-weight: var(--font-semibold);
font-size: var(--text-sm); font-size: var(--text-sm);
cursor: pointer; cursor: pointer;
transition: all 0.2s ease; transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
margin-top: var(--space-sm); margin-top: var(--space-sm);
} }
@ -2737,7 +2724,7 @@ select:hover {
color: var(--text-secondary) color: var(--text-secondary)
} }
.loading-spinner { .loading-state .loading-spinner {
width: 32px; width: 32px;
height: 32px; height: 32px;
border: 3px solid var(--border-primary); border: 3px solid var(--border-primary);
@ -3291,7 +3278,7 @@ select:hover {
font-size: var(--text-xs); font-size: var(--text-xs);
font-weight: var(--font-semibold); font-weight: var(--font-semibold);
color: var(--text-secondary); color: var(--text-secondary);
transition: all var(--transition-fast); transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
} }
.footer-stat:hover { .footer-stat:hover {
@ -3340,7 +3327,7 @@ select:hover {
font-size: var(--text-sm); font-size: var(--text-sm);
line-height: 1.5; line-height: 1.5;
padding: var(--space-xs) 0; padding: var(--space-xs) 0;
transition: all var(--transition-fast); transition: color var(--transition-fast), transform var(--transition-fast);
position: relative; position: relative;
} }
@ -3481,7 +3468,7 @@ select:hover {
border: 1px solid var(--border-primary); border: 1px solid var(--border-primary);
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
color: var(--text-secondary); color: var(--text-secondary);
transition: all var(--transition-fast); transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
} }
.github-link:hover { .github-link:hover {
@ -3588,10 +3575,6 @@ select:hover {
} }
@media (max-width:768px) { @media (max-width:768px) {
.header-nav {
display:flex
}
.hero-actions { .hero-actions {
flex-direction:column; align-items:center flex-direction:column; align-items:center
} }
@ -3764,14 +3747,6 @@ select:hover {
min-width:auto min-width:auto
} }
.header-nav .nav-link.active {
color:var(--primary)
}
.header-nav .nav-link.active::after {
content:''; display:block; height:2px; background:currentColor; border-radius:2px; margin-top:6px
}
.comparison-header { .comparison-header {
padding:var(--space-md) padding:var(--space-md)
} }
@ -3997,10 +3972,6 @@ select:hover {
font-size:var(--text-lg); padding:var(--space-xs) var(--space-md) font-size:var(--text-lg); padding:var(--space-xs) var(--space-md)
} }
.nav-link {
padding:var(--space-sm) var(--space-md); font-size:.75rem
}
.dark-mode-toggle { .dark-mode-toggle {
width:38px; height:38px width:38px; height:38px
} }
@ -4112,22 +4083,12 @@ select:hover {
} }
@media (pointer:coarse) { @media (pointer:coarse) {
.nav-link:hover, .btn:hover, .status-card:hover, .benefit-card:hover, .speed-card:hover, .referral-card:hover, .note-card:hover, .resource-item:hover { .btn:hover, .status-card:hover, .benefit-card:hover, .speed-card:hover, .referral-card:hover, .note-card:hover, .resource-item:hover {
transform:none transform:none
} }
}/* ===== ACCESSIBILITY ENHANCEMENTS ===== */ }
.visually-hidden {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}
/* ===== ACCESSIBILITY ENHANCEMENTS ===== */
#a11y-announcer { #a11y-announcer {
position: absolute; position: absolute;
left: -10000px; left: -10000px;
@ -4136,24 +4097,6 @@ select:hover {
overflow: hidden; overflow: hidden;
} }
/* Enhanced focus styles for keyboard navigation */
*:focus-visible {
outline: 3px solid var(--primary);
outline-offset: 2px;
border-radius: var(--radius-sm);
transition: outline-offset 0.15s ease;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
outline: 3px solid var(--primary);
outline-offset: 3px;
box-shadow: 0 0 0 6px rgba(99, 102, 241, 0.15);
}
/* Keyboard navigation for tables */ /* Keyboard navigation for tables */
table tbody tr:focus { table tbody tr:focus {
outline: 3px solid var(--primary); outline: 3px solid var(--primary);
@ -4247,6 +4190,25 @@ table tbody tr[tabindex="0"] {
.table-wrapper.mobile-view .status-indicator { .table-wrapper.mobile-view .status-indicator {
font-size: var(--text-xl); font-size: var(--text-xl);
} }
.comparison-table {
font-size: var(--text-sm);
}
.comparison-header {
flex-direction: column;
text-align: center;
}
.comparison-stats {
flex-direction: column;
width: 100%;
}
.stat {
width: 100%;
padding: var(--space-md);
}
} }
/* Tablet optimizations */ /* Tablet optimizations */
@ -4276,10 +4238,6 @@ table tbody tr[tabindex="0"] {
min-width: 44px; min-width: 44px;
} }
.nav-link {
padding: var(--space-lg) var(--space-xl);
}
.btn { .btn {
padding: var(--space-lg) var(--space-2xl); padding: var(--space-lg) var(--space-2xl);
} }
@ -4363,24 +4321,3 @@ table tbody tr[tabindex="0"] {
margin-top: var(--space-lg); margin-top: var(--space-lg);
} }
/* ===== COMPARISON TABLE MOBILE IMPROVEMENTS ===== */
@media (max-width: 767px) {
.comparison-table {
font-size: var(--text-sm);
}
.comparison-header {
flex-direction: column;
text-align: center;
}
.comparison-stats {
flex-direction: column;
width: 100%;
}
.stat {
width: 100%;
padding: var(--space-md);
}
}