Version 2026.5.36 — Sidebar verticale en vue horizontale (#horizontal-wrapper)

[code interpolé entre v2026.5.35 et v2026.5.37]
This commit is contained in:
2026-04-25 14:00:00 +02:00
parent a92e3429b2
commit cd54764dd5
3 changed files with 163 additions and 13 deletions
+137 -12
View File
@@ -3586,35 +3586,160 @@ html.view-classic .tech-row-stats {
/* ==========================================================================
v2026.5.35 : en vue horizontale, stats globales sur le CÔTÉ GAUCHE
(colonne verticale fixe) au lieu d'être au-dessus des cartes.
Libère de la hauteur verticale pour les 8 techs.
v2026.5.36 : REFONTE — les stats (et tout le reste) sont maintenant déplacés
physiquement dans .horizontal-sidebar (via JS _moveElementsToSidebar).
Le CSS ci-dessous est conservé au cas où une ancienne instance
ait encore .stats dans <main>, mais il ne devrait plus s'appliquer.
========================================================================== */
html.view-horizontal main {
html.view-horizontal main#main.legacy-stats-layout {
display: flex;
flex-direction: row;
align-items: stretch;
}
html.view-horizontal .stats {
/* ==========================================================================
v2026.5.36 : Vue horizontale — sidebar verticale à gauche
Contient (haut → bas) : nav date, horloge, stats, boutons actions.
Seuls restent en haut : user-badge, titre "Planification", bouton thème.
========================================================================== */
/* Topbar en vue horizontale : minimaliste */
html.view-horizontal .topbar {
padding: 6px 12px !important;
gap: 8px;
}
/* Cacher la zone centrale (déplacée vers sidebar) */
html.view-horizontal .topbar .app-clock,
html.view-horizontal .topbar .capture-info,
html.view-horizontal .topbar .app-session {
display: none !important;
}
/* topbar-left ne contient plus que user-badge + titre */
html.view-horizontal .topbar-left {
gap: 10px;
}
/* topbar-right ne contient plus que le theme-toggle */
html.view-horizontal .topbar-right {
gap: 4px;
}
/* Sidebar verticale à gauche */
.horizontal-sidebar {
flex: 0 0 auto;
width: 200px;
flex-direction: column !important;
align-items: flex-start !important;
gap: 8px !important;
padding: 12px 16px !important;
border-right: 1px solid var(--border);
min-width: 200px;
max-width: 200px;
background: var(--bg-muted);
border-right: 1px solid var(--border);
padding: 10px 12px;
display: flex;
flex-direction: column;
gap: 8px;
overflow-y: auto;
position: sticky;
top: 0;
align-self: flex-start;
min-height: calc(100vh - 80px);
max-height: calc(100vh - 48px); /* topbar ~48px */
font-size: 12px;
box-sizing: border-box;
}
/* Cacher la sidebar en vue classique (au cas où elle existe encore) */
html.view-classic .horizontal-sidebar {
display: none !important;
}
/* Layout main avec sidebar */
html.view-horizontal main#main {
display: flex;
flex-direction: row;
align-items: stretch;
}
/* Groupe navigation date dans la sidebar — v2026.5.36 (OBSOLÈTE v2026.5.37)
v2026.5.37 : date-nav devient display: contents pour que ses enfants
soient directement positionnables dans la sidebar (btn-today
en haut, app-clock intercalé, flèches groupées dans wrapper).
Les anciennes règles ci-dessous sont conservées pour compat
mais neutralisées par les overrides v5.37 plus bas. */
html.view-horizontal .horizontal-sidebar .date-nav {
/* v5.37 override via display: contents ci-dessous */
}
html.view-horizontal .horizontal-sidebar .date-nav .btn-nav {
/* v5.37 : ces règles sont conservées au cas où flèches restent dans date-nav
(pas censé arriver puisque JS les sort dans #sidebar-arrows). */
padding: 4px 8px;
}
html.view-horizontal .horizontal-sidebar .date-nav .date-custom {
width: 100%;
justify-content: flex-start;
padding: 6px 8px;
font-size: 12px !important;
}
html.view-horizontal .horizontal-sidebar .date-nav .btn-today {
padding: 4px 10px;
font-size: 12px !important;
}
html.view-horizontal .stats .global-stat {
/* Horloge dans la sidebar */
html.view-horizontal .horizontal-sidebar .app-clock {
position: static !important;
transform: none !important;
left: auto !important;
top: auto !important;
display: flex;
flex-direction: column;
align-items: flex-start;
width: 100%;
gap: 2px;
padding: 6px 8px;
background: var(--bg);
border: 1px solid var(--border);
border-radius: 4px;
}
html.view-horizontal .horizontal-sidebar .app-clock-date {
font-size: 11px !important;
color: var(--text-muted) !important;
font-weight: 500 !important;
}
html.view-horizontal .horizontal-sidebar .app-clock-date::after {
content: "" !important; /* supprimer le gros point · */
display: none !important;
}
html.view-horizontal .horizontal-sidebar .app-clock-time {
font-size: 20px !important;
font-weight: 700 !important;
color: var(--text) !important;
font-variant-numeric: tabular-nums;
}
/* Info capture (Synchronisé à...) */
html.view-horizontal .horizontal-sidebar .capture-info {
display: block !important;
font-size: 11px !important;
color: var(--text-muted);
padding: 2px 4px;
}
/* Stats globales dans la sidebar (séparateurs cachés) */
html.view-horizontal .horizontal-sidebar #stats {
display: flex !important;
flex-direction: column !important;
gap: 4px !important;
padding: 6px 4px !important;
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
margin: 2px 0;
background: transparent !important;
width: 100%;
box-sizing: border-box;
}
html.view-horizontal .horizontal-sidebar #stats .global-stat {
display: block;
width: 100%;
padding: 4px 0;
padding: 2px 0;
font-size: 11px;
color: var(--text-muted);
}
html.view-horizontal .stats .global-stat-main b {
font-size: 18px !important;