Geizkragen/assets/css/catbar.css

155 lines
3.5 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ==========================================================
CATEGORY BAR Animated Pill Navigation
========================================================== */
.home-nav {
width: 100%;
background: rgba(20, 28, 43, 0.6);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border-bottom: 1px solid var(--border-subtle);
padding: 0;
position: relative;
z-index: 1;
animation: fadeIn 0.6s ease 0.2s both;
}
.home-nav__inner {
flex: 1;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
padding: 0.6rem 1rem;
}
.home-nav__list {
width: 100%;
display: flex;
list-style: none;
margin: 0;
padding: 0;
gap: 0.3rem;
justify-content: center;
}
.home-nav__list li {
flex: 0 1 auto;
position: relative;
}
.home-nav__list li a {
padding: 0.5rem 1.4rem;
background: transparent;
color: var(--text-muted);
font-weight: 500;
font-size: 0.85rem;
font-family: var(--font-family);
text-decoration: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
border-radius: var(--radius-full);
transition: all var(--transition-smooth);
white-space: nowrap;
position: relative;
letter-spacing: 0.2px;
}
/* Animated underline on hover */
.home-nav__list li a::after {
content: "";
position: absolute;
bottom: 4px;
left: 50%;
width: 0;
height: 2px;
background: var(--color-primary);
border-radius: var(--radius-full);
transition: all var(--transition-smooth);
transform: translateX(-50%);
}
.home-nav__list li a:hover {
color: var(--text-invert);
background: rgba(255, 255, 255, 0.05);
transform: translateY(-1px);
}
.home-nav__list li a:hover::after {
width: 50%;
}
.home-nav__list li a:active {
transform: scale(0.97);
}
.home-nav__list li a:focus-visible {
outline: none;
box-shadow: 0 0 0 2px var(--color-primary);
}
.home-nav__list li a.active {
color: var(--color-primary);
background: var(--color-primary-soft);
font-weight: 600;
box-shadow: 0 0 16px rgba(59, 130, 246, 0.1);
}
.home-nav__list li a.active::after {
width: 60%;
background: var(--color-primary);
}
/* ─── Responsive: horizontal scroll on mobile ─── */
@media (max-width: 768px) {
.home-nav__inner {
justify-content: flex-start;
padding: 0.4rem 0.5rem;
}
.home-nav__list {
overflow-x: auto;
overflow-y: hidden;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
gap: 0.2rem;
flex-wrap: nowrap;
justify-content: flex-start;
/* Fade edges */
mask-image: linear-gradient(90deg, transparent, black 0.5rem, black calc(100% - 0.5rem), transparent);
-webkit-mask-image: linear-gradient(90deg, transparent, black 0.5rem, black calc(100% - 0.5rem), transparent);
}
.home-nav__list::-webkit-scrollbar { display: none; }
.home-nav__list li {
flex: 0 0 auto;
scroll-snap-align: start;
}
.home-nav__list li a {
padding: 0.5rem 1rem;
font-size: 0.82rem;
min-height: 40px;
}
}
@media (max-width: 480px) {
.home-nav__inner {
padding: 0.35rem 0.25rem;
}
.home-nav__list li a {
padding: 0.45rem 0.8rem;
font-size: 0.78rem;
min-height: 36px;
}
.home-nav__list li a::after {
display: none; /* Simpler on tiny screens */
}
}