181 lines
3.4 KiB
CSS
181 lines
3.4 KiB
CSS
/* Footer */
|
|
footer {
|
|
background: var(--bg-primary);
|
|
border-top: 1px solid var(--border-color);
|
|
padding: var(--space-xl) 0;
|
|
margin-top: var(--space-2xl);
|
|
}
|
|
|
|
/* Footer Content */
|
|
.footer-content {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: var(--space-md);
|
|
}
|
|
|
|
/* Footer Left */
|
|
.footer-left {
|
|
color: var(--text-color);
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* Footer Right */
|
|
.footer-right {
|
|
display: flex;
|
|
gap: var(--space-lg);
|
|
}
|
|
|
|
/* Footer Links */
|
|
.footer-link {
|
|
color: var(--text-color);
|
|
text-decoration: none;
|
|
padding: var(--space-xs) var(--space-sm);
|
|
border-radius: var(--border-radius-sm);
|
|
transition: all var(--transition-base);
|
|
position: relative;
|
|
}
|
|
|
|
.footer-link::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: var(--space-sm);
|
|
right: var(--space-sm);
|
|
height: 2px;
|
|
background: var(--accent-color);
|
|
transform: scaleX(0);
|
|
transform-origin: center;
|
|
transition: transform var(--transition-base);
|
|
}
|
|
|
|
.footer-link:hover {
|
|
color: var(--accent-color);
|
|
}
|
|
|
|
.footer-link:hover::after {
|
|
transform: scaleX(1);
|
|
}
|
|
|
|
/* Social Links */
|
|
.social-links {
|
|
display: flex;
|
|
gap: var(--space-md);
|
|
margin-top: var(--space-lg);
|
|
}
|
|
|
|
.social-link {
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: var(--border-radius-full);
|
|
background: var(--card-bg);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
color: var(--text-color);
|
|
text-decoration: none;
|
|
transition: all var(--transition-base);
|
|
}
|
|
|
|
.social-link:hover {
|
|
background: var(--accent-color);
|
|
color: white;
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
/* Back to Top Button */
|
|
.back-to-top {
|
|
position: fixed;
|
|
bottom: var(--space-lg);
|
|
right: var(--space-lg);
|
|
width: 44px;
|
|
height: 44px;
|
|
background: var(--accent-color);
|
|
color: white;
|
|
border: none;
|
|
border-radius: var(--border-radius-full);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
cursor: pointer;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transform: translateY(10px);
|
|
transition: all var(--transition-base);
|
|
z-index: var(--z-sticky);
|
|
}
|
|
|
|
.back-to-top.visible {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.back-to-top:hover {
|
|
background: var(--accent-blue);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
/* Responsive Design */
|
|
@media (max-width: 768px) {
|
|
.footer-content {
|
|
flex-direction: column;
|
|
text-align: center;
|
|
gap: var(--space-lg);
|
|
}
|
|
|
|
.footer-right {
|
|
flex-direction: column;
|
|
gap: var(--space-md);
|
|
}
|
|
|
|
.back-to-top {
|
|
bottom: var(--space-md);
|
|
right: var(--space-md);
|
|
}
|
|
}
|
|
|
|
/* High Contrast Mode */
|
|
@media (forced-colors: active) {
|
|
footer {
|
|
border-top: 1px solid CanvasText;
|
|
}
|
|
|
|
.footer-link::after {
|
|
background: CanvasText;
|
|
}
|
|
|
|
.social-link {
|
|
border: 1px solid CanvasText;
|
|
}
|
|
}
|
|
|
|
/* Reduced Motion */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.footer-link,
|
|
.social-link,
|
|
.back-to-top {
|
|
transition: none;
|
|
}
|
|
|
|
.footer-link:hover::after {
|
|
transition: none;
|
|
}
|
|
|
|
.social-link:hover,
|
|
.back-to-top:hover {
|
|
transform: none;
|
|
}
|
|
}
|
|
|
|
/* Dark Theme Specific */
|
|
.dark-theme footer {
|
|
background: var(--dark-main);
|
|
}
|
|
|
|
/* Light Theme Specific */
|
|
.light-theme footer {
|
|
background: var(--light-main);
|
|
}
|