Fusion d'origin/main dans match-et-reglages
Conflits résolus dans web/app.css (styles ajoutés des deux côtés) et app/src/ui/help.ts (commentaire de main, fiche de la branche). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+85
-20
@@ -363,6 +363,8 @@ button {
|
||||
border: 2px solid var(--accent);
|
||||
border-radius: var(--radius-pill);
|
||||
cursor: pointer;
|
||||
/* Un bouton tient sur une ligne (charte). */
|
||||
white-space: nowrap;
|
||||
/* Pas de délai ni de zoom sur un double toucher. */
|
||||
touch-action: manipulation;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
@@ -1317,16 +1319,36 @@ html.rotated .banner {
|
||||
-webkit-user-select: text;
|
||||
}
|
||||
|
||||
#help-back {
|
||||
margin-top: var(--space-4);
|
||||
/* La barre haute de l'aide (« Retour » et onglets) reste en vue quand la
|
||||
* page défile. Sa hauteur est fixe (12 + 48 + 8 + 44 + 1 px de filet) : une
|
||||
* question ou un terme ouvert par son adresse s'arrête 12 px sous elle. */
|
||||
.help {
|
||||
--help-bar-height: 113px;
|
||||
}
|
||||
|
||||
/* Les onglets de l'aide : des liens, l'onglet courant souligné en brique. */
|
||||
.help-bar {
|
||||
position: sticky;
|
||||
top: env(safe-area-inset-top);
|
||||
z-index: 3;
|
||||
height: var(--help-bar-height);
|
||||
margin-inline: calc(-1 * var(--space-4));
|
||||
padding: var(--space-3) var(--space-4) 0;
|
||||
background: var(--background);
|
||||
}
|
||||
|
||||
.help .question,
|
||||
.glossary dt {
|
||||
scroll-margin-top: calc(var(--help-bar-height) + 12px + env(safe-area-inset-top));
|
||||
}
|
||||
|
||||
/* Les onglets de l'aide : des liens, l'onglet courant souligné en brique ;
|
||||
* sur une ligne, qui défile si l'écran est trop étroit. */
|
||||
.help-tabs {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: var(--space-1);
|
||||
margin-top: var(--space-4);
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
margin-top: var(--space-2);
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
@@ -1402,6 +1424,12 @@ html.rotated .banner {
|
||||
margin-inline: calc(-1 * var(--space-4));
|
||||
padding-inline: var(--space-4);
|
||||
background: var(--accent-soft);
|
||||
/* Le surlignage montre où l'on arrive, puis s'efface après 2 s. */
|
||||
animation: term-fade var(--duration-moderate) var(--easing-exit) 2s forwards;
|
||||
}
|
||||
|
||||
@keyframes term-fade {
|
||||
to { background-color: transparent; }
|
||||
}
|
||||
|
||||
/* -------------------------------------------------- Liens et boutons */
|
||||
@@ -1420,6 +1448,7 @@ a.button {
|
||||
background: var(--accent);
|
||||
border: 2px solid var(--accent);
|
||||
border-radius: var(--radius-pill);
|
||||
white-space: nowrap;
|
||||
touch-action: manipulation;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
@@ -1483,14 +1512,6 @@ a.link-button {
|
||||
margin: var(--space-2) 0;
|
||||
}
|
||||
|
||||
/* En paysage, le plateau tient dans la hauteur de l'écran. */
|
||||
html.landscape .position-board {
|
||||
width: min(100%, calc(80vh * 640 / 520));
|
||||
height: auto;
|
||||
margin-inline: auto;
|
||||
aspect-ratio: 640 / 520;
|
||||
}
|
||||
|
||||
.position-detail {
|
||||
margin: var(--space-2) 0 var(--space-4);
|
||||
font-size: 15px;
|
||||
@@ -1498,26 +1519,25 @@ html.landscape .position-board {
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
/* Les actions empilées sur toute la largeur, la principale en premier. */
|
||||
.position-actions {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1.6fr;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--space-2);
|
||||
}
|
||||
|
||||
.position-actions > * {
|
||||
min-width: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.position-copy {
|
||||
#position-copy {
|
||||
display: inline-flex;
|
||||
gap: 6px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
margin-top: var(--space-3);
|
||||
}
|
||||
|
||||
.position-copy .icon {
|
||||
#position-copy .icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
@@ -2367,3 +2387,48 @@ html.landscape .welcome {
|
||||
text-align: center;
|
||||
color: var(--muted);
|
||||
}
|
||||
|
||||
/* En paysage, comme l'écran de jeu : le plateau à gauche sur toute la
|
||||
* hauteur (colonne gauche du cadre avec le videau seul), le titre, le contexte et les actions
|
||||
* dans une colonne à droite. */
|
||||
html.landscape .position-view.with-board {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) 288px;
|
||||
grid-template-rows: auto auto auto auto 1fr;
|
||||
max-width: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow-y: auto;
|
||||
background: var(--background);
|
||||
}
|
||||
|
||||
html.landscape .position-view.with-board > * {
|
||||
grid-column: 2;
|
||||
margin-inline: 0;
|
||||
padding-inline: var(--space-4) calc(var(--space-4) + env(safe-area-inset-right));
|
||||
}
|
||||
|
||||
html.landscape .position-view.with-board .position-title {
|
||||
margin-top: var(--space-4);
|
||||
}
|
||||
|
||||
html.landscape .position-view.with-board .position-board {
|
||||
grid-row: 1 / -1;
|
||||
grid-column: 1;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
aspect-ratio: auto;
|
||||
background: var(--frame);
|
||||
}
|
||||
|
||||
html.landscape .position-view.with-board .position-actions {
|
||||
padding-bottom: var(--space-4);
|
||||
}
|
||||
|
||||
html.landscape .position-view.with-board .position-actions > * {
|
||||
padding-inline: 16px;
|
||||
}
|
||||
|
||||
+13
-9
@@ -99,27 +99,31 @@
|
||||
|
||||
<!-- L'aide : un onglet par adresse (#/aide, #/glossaire, #/a-propos). -->
|
||||
<section id="help" class="help page" hidden>
|
||||
<a id="help-back" href="#/" class="button secondary"></a>
|
||||
<nav id="help-tabs" class="help-tabs">
|
||||
<a href="#/aide" data-screen="help"></a>
|
||||
<a href="#/glossaire" data-screen="glossary"></a>
|
||||
<a href="#/a-propos" data-screen="about"></a>
|
||||
</nav>
|
||||
<!-- La barre haute de l'aide reste en vue quand la page défile. -->
|
||||
<div id="help-bar" class="help-bar">
|
||||
<a id="help-back" href="#/" class="button secondary"></a>
|
||||
<nav id="help-tabs" class="help-tabs">
|
||||
<a href="#/aide" data-screen="help"></a>
|
||||
<a href="#/glossaire" data-screen="glossary"></a>
|
||||
<a href="#/a-propos" data-screen="about"></a>
|
||||
</nav>
|
||||
</div>
|
||||
<div id="help-content"></div>
|
||||
</section>
|
||||
|
||||
<!-- Une position partagée (#/position/<Position ID>/<Match ID>), non
|
||||
jouable. -->
|
||||
jouable. En portrait, de haut en bas ; en paysage, le plateau à gauche
|
||||
sur toute la hauteur, le reste dans une colonne à droite. -->
|
||||
<section id="position-view" class="position-view page" aria-labelledby="position-title" hidden>
|
||||
<h2 id="position-title" class="position-title"></h2>
|
||||
<p id="position-message" class="position-message" role="status"></p>
|
||||
<svg id="position-board" class="board position-board" role="img" xmlns="http://www.w3.org/2000/svg"></svg>
|
||||
<p id="position-detail" class="position-detail"></p>
|
||||
<div class="position-actions">
|
||||
<a id="position-back" href="#/" class="button secondary"></a>
|
||||
<button id="position-play" type="button"></button>
|
||||
<button id="position-copy" type="button" class="secondary"></button>
|
||||
<a id="position-back" href="#/" class="button secondary"></a>
|
||||
</div>
|
||||
<button id="position-copy" type="button" class="secondary position-copy"></button>
|
||||
</section>
|
||||
|
||||
<!-- Menu : une feuille qui monte du bas. -->
|
||||
|
||||
Reference in New Issue
Block a user