SiteShell.module.css
.shell {
max-width: var(--page-width);
margin: 0 auto;
padding: var(--page-top) var(--page-gutter) var(--page-bottom);
}
.header {
display: flex;
flex-direction: column;
align-items: center;
gap: var(--space-related);
text-align: center;
padding-bottom: var(--space-section);
}
.photo {
display: block;
width: 48px;
height: 48px;
margin: 0;
object-fit: cover;
border-radius: 50%;
}
.name { margin: 0; font-weight: 500; color: var(--ink-strong); }
.divider { margin: 0; border: 0; border-top: 1px solid var(--hairline); }
.navigation { position: relative; display: flex; margin: var(--space-detail) 0; }
.activeSegment {
position: absolute;
inset: 0 auto 0 0;
width: calc(100% / 3);
border-radius: 4px;
background: rgb(0 0 0 / 2%);
pointer-events: none;
transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}
.navigation .navLink {
position: relative;
display: flex;
align-items: center;
justify-content: center;
flex: 1;
min-width: 44px;
height: 44px;
color: rgb(0 0 0 / 20%);
text-decoration: none;
border-radius: 3px;
}
.navigation .navLink:hover,
.navigation .navLink:focus-visible { color: var(--caption); }
.navigation .navLink[aria-current="page"] { color: var(--ink-strong); }
.navLink svg { stroke-width: 2.2; }
@media (prefers-reduced-motion: reduce) {
.activeSegment, .navLink { transition: none; }
}
.main {
display: flex;
flex-direction: column;
gap: var(--space-related);
min-width: 0;
padding-top: var(--space-section);
}
.main > * { margin-block: 0; }
.intro { display: flex; flex-direction: column; align-items: center; gap: var(--space-related); }
.intro > * { margin: 0; }
.intro img { display: block; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.intro > p { font-weight: 500; }