diff --git a/index.html b/index.html index dfb6513..0deeb53 100644 --- a/index.html +++ b/index.html @@ -527,37 +527,37 @@ cannot see the card move. Which of the two corner controls a screen gets is decided once, in - showPane(), rather than here as well: this rule used to hide #back on the + chromeFor(), rather than here as well: this rule used to hide #back on the card while showPane un-hid it, and two mechanisms for one fact is how they drift. */ - /* On the two screens the menu owns, it loses its disc and grows to the size of + /* Wherever the menu shows, it loses its disc and grows to the size of the two verdicts on the card, so the set reads as one set. A bordered pill over a room reads as a control panel bolted to the picture, and the same button two sizes on two consecutive screens reads as two buttons: Enes, "in the 3rd picture the hamburger icon like the 3 lines is different, make image 3 match image 2". The drop shadow is what the disc was for, and it - works over a photograph and a night map alike. */ - body.carding #menu, body.waying #menu, body.rooming #menu { + works over a photograph and a night map alike. + The arrow that takes the same corner on a phone is drawn the same way. As + a 44px disc at .6rem it sat 16px off the menu's centre, so going from the + card to a room moved the corner control and changed what it was. */ + body #back, body #menu { border: 0; background: none; padding: 0; min-width: 60px; min-height: 60px; width: 60px; height: 60px; top: calc(var(--safe-t) + 1.1rem); - /* The column rule below is (1,0,0) and this is (1,1,1), so writing a bare - 1.1rem here beat it on every window -- and these are the only two screens - the menu appears on, which made that rule dead. Measured at 1900px: the - hamburger sat at x=17 while the 512px column started at x=694. */ + /* The column rule below is (1,0,0) and this is (1,0,1), so writing a bare + 1.1rem here beat it on every window, which made that rule dead for the + menu. Measured at 1900px: the hamburger sat at x=17 while the 512px + column started at x=694. */ left: max(1.1rem, env(safe-area-inset-left, 0px), calc(50% - var(--col) / 2 + .5rem)); } - body.carding #menu .ico, body.waying #menu .ico, body.rooming #menu .ico { + #back .ico, #menu .ico { width: 40px; height: 40px; stroke-width: 2.1; filter: drop-shadow(0 1px 3px rgba(0,0,0,.9)) drop-shadow(0 0 10px rgba(0,0,0,.55)); } - body.carding .m-panel, body.waying .m-panel, body.rooming .m-panel { + body .m-panel { top: calc(var(--safe-t) + 4.6rem); left: max(1.1rem, env(safe-area-inset-left, 0px), calc(50% - var(--col) / 2 + .5rem)); } - /* The room keeps the established fixed Back arrow on a phone. Its menu and - panel-local Back control are the desktop pair below. */ - body.rooming #menu { display: none; } /* The way: the map with the room lit on it, one plate naming the room, and the ranking peeked underneath. Enes on the schedule, "the list of other classes @@ -568,6 +568,17 @@ pointer through: the map is meant to be panned, and the plate is a label rather than a control. */ #way { position: fixed; inset: 0; z-index: 2; pointer-events: none; } + /* The plate is a label and lets the map have the pointer; its Back is the one + control on it. Inset at both ends so the name stays centred on the plate. */ + #way-plate { padding-inline: 3rem; } + #way-back { + position: absolute; top: 50%; left: .35rem; transform: translateY(-50%); + pointer-events: auto; appearance: none; border: 0; background: none; + color: var(--fg); width: 44px; height: 44px; padding: 0; border-radius: 999px; + display: flex; align-items: center; justify-content: center; cursor: pointer; + } + #way-back:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } + #way-back .ico { width: 26px; height: 26px; stroke-width: 2.1; } /* --- the answer --- */ /* The sheet carries the column width itself, rather than running the full @@ -784,7 +795,6 @@ margin: 0; padding: .1rem 0 0; font-size: 1.05rem; letter-spacing: -.01em; } - .room-back { display: none; } .claim { margin: 0; padding: 0 1.1rem .35rem; font-weight: 650; } .claim .sub { display: block; font-weight: 400; color: var(--dim); font-size: .86rem; } .facts { @@ -948,9 +958,9 @@ .b-row:hover, .pick-row:hover { background: rgba(255,255,255,.05); } .bar-btn:hover { background: var(--card-hi); border-color: var(--line-hi); } .dstep:hover { color: var(--fg); } - /* The arrow is already a translucent pill over the map. Hovering makes it - opaque rather than lighter, so it does not read as a second state. */ - #back:hover { background: var(--bg); border-color: var(--line-hi); } + /* The arrow is a bare glyph like the menu beside it, so hovering dims the + glyph rather than growing a disc it does not otherwise have. */ + #back:hover .ico, #menu:hover .ico { opacity: .75; } } /* --- the display cutout, in landscape --- */ @@ -1028,21 +1038,12 @@ } body:is(.has-bar) #sheet { bottom: calc(var(--bar-h, 0px) + 1rem); } #sheet .handle { display: none; } - #back, #menu, body.carding #menu, body.waying #menu, body.rooming #menu { left: 1.5rem; } - /* The menu owns a 60px target while Back owns a 44px target. Offset Back - by half that 16px difference so their glyphs keep the same corner centre - when moving between desktop screens. */ - #back { - left: calc(1.5rem + 8px); - top: calc(var(--safe-t) + 1.1rem + 8px); - } - .m-panel, body.carding .m-panel, body.waying .m-panel, body.rooming .m-panel { left: 1.5rem; } + body #back, body #menu { left: 1.5rem; } + body .m-panel { left: 1.5rem; } #way-plate { left: 1.5rem; transform: none; width: min(30rem, calc(60vw - 3rem)); max-width: none; } - body.rooming #back { display: none; } - body.rooming #menu { display: flex; } #room .room-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; gap: .75rem; @@ -1055,6 +1056,10 @@ width: 44px; padding: 0; justify-content: center; } #room .claim { padding-top: .75rem; } + /* The same control and the same inset as the room's header, so Back sits + in one place in the panel whichever pane is under it. */ + #sheet-head { display: flex; flex: none; padding: 1rem 1.1rem .25rem; } + #sheet-back { display: flex; width: 44px; padding: 0; justify-content: center; } body.carding #sheet { left: 0; right: 0; top: 1.5rem; bottom: 1.5rem; @@ -1145,7 +1150,7 @@ -