trihub-ernaehrung-advinters/css/navigation.css

247 lines
5.4 KiB
CSS

/* Shahnam und Vincent: Gemeinsame Navigation für US 04-05. */
:root {
--navigation-height: 99px;
scroll-padding-top: calc(var(--navigation-offset, var(--navigation-height)) + 16px);
}
.site-navigation {
color-scheme: dark;
--background: #071419;
--background-panel: #152027;
--accent: #4597a3;
--accent-soft: rgb(69 151 163 / 14%);
--text-primary: #fff;
--text-muted: #b7bec2;
--border: rgb(255 255 255 / 16%);
/* Bleibt beim Scrollen sichtbar und behält ihren Platz im Layout. */
position: sticky;
top: 0;
z-index: 100;
border-top: 3px solid var(--background);
background: var(--background);
color: var(--text-primary);
font-family: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
line-height: 1.6;
box-shadow: 0 4px 16px rgb(0 0 0 / 16%);
}
.site-navigation,
.site-navigation * {
box-sizing: border-box;
}
.site-navigation__bar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
width: min(1680px, calc(100% - clamp(40px, 10vw, 192px)));
margin-inline: auto;
}
.site-navigation .brand {
display: flex;
align-items: center;
gap: 20px;
min-width: 0;
min-height: calc(var(--navigation-height) - 3px);
padding-block: 8px;
}
.site-navigation__links ul {
display: flex;
align-items: center;
gap: clamp(16px, 2.5vw, 32px);
margin: 0;
padding: 0;
list-style: none;
}
.site-navigation__links a,
.site-navigation .navigation-disabled {
display: block;
padding-block: 10px;
color: var(--text-muted);
font-size: 15px;
font-weight: 600;
text-decoration: none;
white-space: nowrap;
}
.site-navigation__links a:hover,
.site-navigation__links a:focus-visible {
color: var(--text-primary);
}
.site-navigation__links a:focus-visible,
.site-navigation .menu-toggle:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 4px;
border-radius: 4px;
}
.site-navigation .navigation-disabled {
opacity: 0.5;
cursor: default;
}
.site-navigation .brand__logo {
display: grid;
place-items: center;
flex-shrink: 0;
width: 60px;
height: 60px;
border-radius: 22px;
overflow: hidden;
background: var(--text-primary);
}
.site-navigation .brand__logo img {
display: block;
width: 60px;
height: 60px;
object-fit: contain;
border-radius: inherit;
}
.site-navigation .brand__logo:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 4px;
}
.site-navigation .brand__text {
display: flex;
flex-direction: column;
gap: 4px;
min-width: 0;
}
.site-navigation .brand__name {
color: var(--text-muted);
font-size: 14px;
font-weight: 650;
line-height: 1.4;
letter-spacing: 0.25em;
}
.site-navigation .brand__label {
color: var(--text-muted);
font-size: 17px;
font-weight: 600;
line-height: 1.4;
}
.site-navigation .menu-toggle {
display: none;
flex-shrink: 0;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
padding: 0;
border: 1px solid var(--border);
border-radius: 10px;
background: transparent;
color: var(--text-primary);
font: inherit;
font-size: 26px;
line-height: 1;
cursor: pointer;
}
.site-navigation .menu-toggle:hover {
background: var(--accent-soft);
}
.site-navigation__backdrop {
display: none;
}
/* Der gleiche Grenzwert wird in navigation.js verwendet. */
@media (max-width: 1100px) {
.site-navigation .menu-toggle {
display: inline-flex;
}
.site-navigation__links {
display: none;
position: absolute;
z-index: 2;
top: 100%;
right: 0;
width: min(360px, 100%);
max-height: calc(100vh - var(--navigation-offset, var(--navigation-height)));
max-height: calc(100dvh - var(--navigation-offset, var(--navigation-height)));
overflow-y: auto;
overscroll-behavior: contain;
padding: 16px 24px 24px;
border: 1px solid var(--border);
border-top: 0;
border-radius: 0 0 0 16px;
background: var(--background);
box-shadow: -8px 12px 24px rgb(0 0 0 / 20%);
}
.site-navigation__links ul {
align-items: stretch;
flex-direction: column;
gap: 4px;
}
.site-navigation__links a,
.site-navigation .navigation-disabled {
padding: 12px 16px;
border-radius: 8px;
}
.site-navigation__links a:hover {
background: var(--accent-soft);
}
.site-navigation.is-open .site-navigation__links,
.site-navigation.is-open .site-navigation__backdrop {
display: block;
}
.site-navigation__backdrop {
position: fixed;
z-index: 1;
inset: var(--navigation-offset, var(--navigation-height)) 0 0;
background: rgb(0 0 0 / 45%);
}
}
@media (max-width: 700px) {
:root {
--navigation-height: 81px;
}
.site-navigation__bar {
gap: 12px;
}
.site-navigation .brand {
gap: 12px;
}
.site-navigation .brand__logo {
width: 66px;
height: 62px;
border-radius: 17px;
}
.site-navigation .brand__logo img {
width: 46px;
height: 46px;
}
.site-navigation .brand__name {
font-size: 12px;
}
.site-navigation .brand__label {
font-size: 13px;
}
}