refactor(styles): streamline transition properties and enhance accessibility support
This commit is contained in:
parent
09dbd77cc0
commit
6e2af5717e
1 changed files with 34 additions and 97 deletions
131
dist/css/styles.css
vendored
131
dist/css/styles.css
vendored
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue