fit web section nav without horizontal scroll on phones

This commit is contained in:
Martin Dvořák 2026-09-30 13:20:00 +00:00
commit f72415f464
2 changed files with 28 additions and 0 deletions

View file

@ -175,6 +175,10 @@ Themes: `web` = default frosted-glass website (sidebar + content, light/dark),
- The sidebar foot (`.web-side-foot` — the live clock + contact email and its - The sidebar foot (`.web-side-foot` — the live clock + contact email and its
top divider) is hidden on phones under `max-width: 640px`. In the collapsed top divider) is hidden on phones under `max-width: 640px`. In the collapsed
top panel it's just noise; the desktop/tablet sidebar keeps it. top panel it's just noise; the desktop/tablet sidebar keeps it.
- On phones (`max-width: 640px`) the section nav (`.web-nav`) stops being the
sideways-scrolling row it is on tablets and becomes a wrapping **grid**
(3-up, 2-up below `375px`) of button tiles, so every section fits with no
horizontal scroll — the collapsed top panel must never scroll sideways.
- Under `max-width: 640px` the year-grid heatmap (`.heatmap-container`) and its - Under `max-width: 640px` the year-grid heatmap (`.heatmap-container`) and its
legend/hover row (`.heatmap-status-row`) are `display: none` — the grid is legend/hover row (`.heatmap-status-row`) are `display: none` — the grid is
unreadable at phone widths. The contribution total and the commit history unreadable at phone widths. The contribution total and the commit history

View file

@ -1114,6 +1114,22 @@ html[data-theme="web"][data-scheme="dark"] .heatmap-legend-cell[data-level="4"]
.web-title { .web-title {
font-size: 1.7rem; font-size: 1.7rem;
} }
/* Section nav: fit every link on screen instead of a sideways-scrolling row,
so the collapsed top panel never scrolls horizontally — a 3-up button
grid (2-up on very narrow phones, see the 374px block below). */
.web-nav {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 6px;
overflow: visible;
padding-bottom: 0;
}
.web-nav a {
justify-content: center;
padding: 9px 8px;
border: 1px solid var(--btn-border, var(--glass-border));
background: var(--btn-bg, var(--glass-lo));
}
.project-grid { .project-grid {
columns: 1; columns: 1;
} }
@ -1149,6 +1165,14 @@ html[data-theme="web"][data-scheme="dark"] .heatmap-legend-cell[data-level="4"]
} }
} }
/* Very narrow phones: 3-up is too tight for the longest labels ("Overview",
"Hardware"), so fall back to a 2-up grid — still no horizontal scrolling. */
@media (max-width: 374px) {
.web-nav {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
html[data-theme="web"] *, html[data-theme="web"] *,
html[data-theme="web"] *::before, html[data-theme="web"] *::before,