c.stupid.cat/css/shared/nav.css

89 lines
1.8 KiB
CSS

/* ============================================================
5. PAGE NAV (shared, pinned top-left)
============================================================ */
.nav {
position: fixed;
left: 1rem;
top: 1rem;
z-index: 6;
}
.nav-links {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 0.4rem;
}
.nav-link {
position: relative;
display: inline-flex;
align-items: center;
padding: 0.3rem 0.7rem;
border-radius: 999px;
background: var(--surface-0);
border: 1px solid var(--surface-1);
color: var(--subtext-1);
font-size: 0.8rem;
text-decoration: none;
transition: transform 0.15s ease, border-color 0.15s ease,
background 0.15s ease, color 0.15s ease;
}
.nav-link:hover {
border-color: rgb(var(--accent-rgb));
color: var(--text);
transform: translateX(2px);
}
.nav-link.selected {
background: rgb(var(--accent-rgb));
border-color: rgb(var(--accent-rgb));
color: var(--crust);
font-weight: 700;
margin-left: 14px;
}
.nav-link.is-a-dev {
background: var(--surface-1);
border-color: var(--surface-2);
color: var(--text);
}
.nav-link.is-a-dev:hover {
border-color: var(--saphire);
transform: translateX(2px);
}
/* Triangle pointing at the selected item */
.nav-link.selected::before {
content: "";
position: absolute;
left: -14px;
top: 50%;
transform: translateY(-50%);
border: 6px solid transparent;
border-left-color: rgb(var(--accent-rgb));
}
/* ---- boot reveal of side chrome (set by terminal.js on the homepage,
but targets these shared .nav / .badges elements) ---- */
.nav,
.badges {
transition: opacity 0.6s ease, transform 0.6s ease;
}
body.term-booting .nav,
body.term-booting .badges {
opacity: 0;
transform: translateY(8px);
}
body.term-chrome-in .nav,
body.term-chrome-in .badges {
opacity: 1;
transform: none;
}