Recette design des adresses : barre de l'aide collée, boutons sur une ligne, position en paysage
Barre haute de l'aide en position sticky ; question ou terme ouvert par son adresse arrêté 12 px sous elle ; surlignage du terme effacé après 2 s. Boutons en white-space: nowrap ; actions de la position empilées (Jouer, Copier, Retour). En paysage, plateau à gauche sur toute la hauteur avec la géométrie du jeu (videau entier, sans menu ni annuler), colonne de 288 px à droite. Test navigateur : aucun bouton sur deux lignes, barre de l'aide en vue, actions visibles sans défiler, videau entier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d1db2b33c8
commit
2b8fa1a0b0
+12
-2
@@ -1264,6 +1264,7 @@ export function startApp(options: AppOptions): void {
|
||||
? TEXTS.unreadablePosition
|
||||
: "";
|
||||
ui.positionBoard.toggleAttribute("hidden", !shown);
|
||||
ui.position.classList.toggle("with-board", shown);
|
||||
ui.positionDetail.hidden = !shown;
|
||||
ui.positionCopy.hidden = !shown;
|
||||
ui.positionPlay.hidden = state.kind !== "shown" || state.shared.result !== null;
|
||||
@@ -1271,11 +1272,20 @@ export function startApp(options: AppOptions): void {
|
||||
return;
|
||||
}
|
||||
const shared = state.shared;
|
||||
const width = ui.positionBoard.clientWidth || Math.min(window.innerWidth, 640);
|
||||
// En paysage, le plateau occupe toute la hauteur, à gauche de la
|
||||
// colonne du titre et des actions (app.css), avec la géométrie du
|
||||
// jeu : la colonne gauche du cadre garde le videau, sans menu ni
|
||||
// bouton annuler (il ne se joue pas).
|
||||
const landscape = layout() === "landscape";
|
||||
const box = ui.positionBoard.getBoundingClientRect();
|
||||
const width = box.width || Math.min(window.innerWidth, 640);
|
||||
const height = box.height || window.innerHeight;
|
||||
const model = boardModel(shared.sides);
|
||||
renderBoard(
|
||||
ui.positionBoard,
|
||||
boardGeometry("portrait", PORTRAIT_ASPECT, width / 640),
|
||||
landscape
|
||||
? boardGeometry("landscape", width / height, height / 520)
|
||||
: boardGeometry("portrait", PORTRAIT_ASPECT, width / 640),
|
||||
model,
|
||||
{
|
||||
dice: [],
|
||||
|
||||
@@ -231,6 +231,8 @@ export function createHelpView(container: HTMLElement, tabs: HTMLElement): HelpV
|
||||
const opened = questions.find((q) => q.id === question) ?? null;
|
||||
const closed = route.screen === "help" && opened === null ? lastOpen : null;
|
||||
lastOpen = opened;
|
||||
// La barre haute de l'aide reste en vue (app.css) : ce qu'on
|
||||
// amène en haut s'arrête 12 px sous elle (scroll-margin-top).
|
||||
const target = opened?.section ?? (term === null ? undefined : terms.get(term));
|
||||
if (target !== undefined) {
|
||||
target.scrollIntoView({ block: "start" });
|
||||
|
||||
Reference in New Issue
Block a user