Mobile: tour bottom-sheet + measured sizing; tidy profile tab-grid tiles

Onboarding tour (tourEngine.js):
- On narrow viewports (<640px) dock the popover as a fixed BOTTOM SHEET
  instead of anchoring it — kills the off-screen/jump-to-center glitches
  caused by short viewports, wrapping buttons and URL-bar resize. The
  spotlight still highlights the target, scrolled to center so it sits above
  the sheet.
- On desktop, measure the ACTUAL popover size (getBoundingClientRect) and
  feed it to computeTourPlacement, instead of the fixed 240/336 guesses that
  pushed tall popovers off-screen.

Profile modal mobile tab grid (CSS):
- Equal-height tiles via a min-height token + centered content, so long
  labels no longer leave a ragged grid.
- Move the unread dot to the tile's top-right corner (was landing in the
  grid gutter at the vertical-nav left edge).
- Tighter line-height/padding + non-shrinking glyph.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
thePR0M3TH3ANandClaude Opus 4.8 committed 2026-07-08 06:34:44 -04:00
1 parent 55db677637
commit 0e2f81d222
3 files changed
+54 -4

No files matched your search

+17 -3
View File
@@ -3668,12 +3668,16 @@
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
justify-content: center;
text-align: center;
gap: var(--space-2xs);
width: 100%;
padding-block: var(--space-sm);
padding-inline: var(--space-2xs);
/* equal-height tiles: a consistent floor so short and 2-line labels align
(grid rows stretch to the tallest tile, so within a row they match) */
min-block-size: var(--profile-modal-nav-tile-min-height);
padding-block: var(--space-xs);
padding-inline: var(--space-3xs);
line-height: 1.15;
/* wrap labels at spaces, not mid-word */
overflow-wrap: break-word;
word-break: normal;
@@ -3684,6 +3688,16 @@
.profile-modal__nav > button svg {
width: var(--space-lg);
height: var(--space-lg);
flex-shrink: 0;
}
/* In the tile grid the unread dot rides the tile's top-right corner instead
of the vertical-nav left edge (where it landed in the grid gutter). */
.profile-modal__nav > button .profile-nav__unread-dot {
top: var(--space-2xs);
left: auto;
right: var(--space-2xs);
transform: none;
}
}