Files
Emil_Shanayev_Resume/components/topbar.module.css
T
EmilandClaude Sonnet 5 04c1cc5877
Deploy to GitHub Pages / build (push) Canceled after 0s
Deploy to GitHub Pages / deploy (push) Canceled after 0s
Make the resume bilingual and part of the shared site chrome
Adds a Russian version (data/resume.ru.json, default language) with an RU/EN
switch stored under the key shared with the front page and the portfolio.
The top bar becomes the site-wide one (brand, Resume, Portfolio, Gitea,
Contact, language, theme) with a second row of anchors for this page's
sections, and the fonts move to Unbounded and Onest so the three pages share
one type system. Portfolio links now point at /portfolio/.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XtcZtnG4GQA1d6mW5PNrS9
2026-09-20 23:48:38 +03:00

141 lines
2.3 KiB
CSS

.bar {
position: fixed;
z-index: 50;
inset: 0 0 auto 0;
border-bottom: 1px solid transparent;
transition: background-color 0.25s, border-color 0.25s;
}
.solid {
background: var(--topbar-bg);
border-bottom-color: var(--line);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
}
.inner {
width: var(--shell);
height: 68px;
margin: 0 auto;
display: flex;
align-items: center;
gap: 14px;
}
.brand {
display: flex;
align-items: center;
gap: 10px;
margin-right: auto;
text-decoration: none;
font: 700 18px/1 var(--font-head);
letter-spacing: -0.03em;
}
.nav {
display: flex;
gap: 28px;
margin-right: 10px;
font-size: 15px;
font-weight: 500;
}
.nav a {
padding: 6px 0;
text-decoration: none;
background: linear-gradient(currentColor, currentColor) left bottom / 0 1.5px no-repeat;
transition: background-size 0.25s;
}
.nav a:hover {
background-size: 100% 1.5px;
}
.nav a[aria-current='page'] {
font-weight: 700;
background-size: 100% 2px;
}
.seg {
display: flex;
padding: 3px;
border-radius: var(--radius-control);
box-shadow: inset 0 0 0 1px var(--line);
}
.seg button {
padding: 6px 10px;
border: 0;
border-radius: 7px;
background: transparent;
color: var(--muted);
font: 600 13px/1.2 var(--font-body);
letter-spacing: 0.02em;
cursor: pointer;
}
.seg button[aria-pressed='true'] {
background: var(--ink);
color: var(--paper);
}
.toggle {
display: grid;
place-items: center;
width: 40px;
height: 40px;
padding: 0;
border: 0;
border-radius: var(--radius-control);
background: transparent;
color: var(--ink);
box-shadow: inset 0 0 0 1px var(--line);
cursor: pointer;
transition: box-shadow 0.2s;
}
.toggle:hover {
box-shadow: inset 0 0 0 1.5px var(--ink);
}
.toggle svg {
width: 20px;
height: 20px;
fill: none;
stroke: currentColor;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round;
}
/* Second row: anchors for the sections of this page. */
.subwrap {
width: var(--shell);
margin: 0 auto;
}
.sub {
display: flex;
gap: 22px;
height: 34px;
align-items: flex-start;
font-size: 14px;
color: var(--muted);
}
.sub a {
text-decoration: none;
transition: color 0.2s;
}
.sub a:hover {
color: var(--ink);
}
@media (max-width: 860px) {
.nav,
.subwrap {
display: none;
}
}