Layout : sidebar spans rows 1+2+3, health banner cantonné Col 1

Restructure visuelle pour que la sidebar reste le « chapeau de tout »
côté gauche, comme la top bar l'est en haut :

  ┌──────────────────────────────────────────┐
  │           Top bar (ColSpan 2)             │  Row 0
  ├─────────┬────────────────────────────────┤
  │         │  Health banner (Col 1)         │  Row 1
  │ Sidebar ├────────────────────────────────┤
  │ (Col 0  │  Content (Library / Rep / Doc) │  Row 2
  │  RowSpan│                                │
  │   = 3)  ├────────────────────────────────┤
  │         │  Footer (Col 1)                │  Row 3
  └─────────┴────────────────────────────────┘

Auparavant le health banner traversait toute la largeur (ColSpan=2),
donc la sidebar ne commençait qu'EN-DESSOUS — décalée verticalement
par rapport au logo PROSERVE de la top bar. Maintenant le banner est
cantonné à la colonne content (Col 1), la sidebar (Col 0, RowSpan=3)
court sur toute la hauteur sous la top bar.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 18:57:25 +02:00
parent 93f54d094a
commit 741e30b7ae

View File

@@ -341,14 +341,13 @@
</Grid> </Grid>
</Border> </Border>
<!-- ============== Health banner (Row 1, ColSpan 2) ============== <!-- ============== Health banner (Row 1, Col 1 uniquement) ==============
Pills colorées indiquant l'état des dépendances système (SteamVR, Pills colorées indiquant l'état des dépendances système (SteamVR,
Vive Streaming, ping casque…). Visible uniquement sur la page Vive Streaming, ping casque…). Le banner ne couvre QUE la colonne
Library — sur Reports/Documentation, les WebView prennent toute content — la sidebar à gauche s'étend du sous-topbar jusqu'en bas
la place et le bandeau n'a pas de sens fonctionnel. Cachée aussi en RowSpan=3 (banner + body + footer) pour rester visuellement le
si la config n'a aucun check (ShowHealthBanner = HasHealthIndicators chapeau de tout. Visible uniquement sur la page Library. -->
&& IsLibrary). Tooltip détaillé au survol de chaque pill. --> <Border Grid.Row="1" Grid.Column="1"
<Border Grid.Row="1" Grid.ColumnSpan="2"
Background="{StaticResource Brush.Bg.Sidebar}" Background="{StaticResource Brush.Bg.Sidebar}"
BorderBrush="{StaticResource Brush.Border}" BorderBrush="{StaticResource Brush.Border}"
BorderThickness="0,0,0,1" BorderThickness="0,0,0,1"
@@ -654,10 +653,11 @@
<!-- ============== END Content area ============== --> <!-- ============== END Content area ============== -->
<!-- ============== Left sidebar : nav buttons ============== <!-- ============== Left sidebar : nav buttons ==============
Row 2 + RowSpan=2 → la sidebar s'étend depuis le bas du health Row 1 + RowSpan=3 → la sidebar s'étend du bas du top bar jusqu'au
banner jusqu'en bas de la fenêtre, couvrant content + footer. bas de la fenêtre, couvrant les 3 rows (health banner, content,
(Row 0 = top bar, Row 1 = health banner full-width.) --> footer). Visuellement la sidebar reste le « chapeau de tout »
<Border Grid.Row="2" Grid.RowSpan="2" Grid.Column="0" côté gauche, peu importe ce qui se passe à droite. -->
<Border Grid.Row="1" Grid.RowSpan="3" Grid.Column="0"
Background="#0A0A0E" Background="#0A0A0E"
BorderBrush="{StaticResource Brush.Border}" BorderBrush="{StaticResource Brush.Border}"
BorderThickness="0,0,1,0"> BorderThickness="0,0,1,0">