Kanbante 0.45.4 : logo officiel, board clair, badge d'âge lisible #76
@@ -1,3 +1,12 @@
|
||||
## 0.45.4 — 2026-10-30 — Logo officiel en barre latérale, board clair, badge d'âge lisible
|
||||
|
||||
Retours de Bruno (captures du 2026-10-30), trois correctifs :
|
||||
|
||||
- **Logo de la barre latérale** : le pictogramme « 3 barres » est remplacé par le logo officiel de Kanbante — `static/img/logos/kanbante.png`, le même que l'onglet Kanbante de la barre d'apps commune. Le conteneur `.logo-mark` devient neutre (le PNG porte son propre fond vert) ; l'assertion du test d'identité suit.
|
||||
- **Board en thème clair** : les colonnes et le panneau « Notes du projet » gardaient le fond sombre codé en dur (`rgba(20, 24, 34, .72)`) — surcharges `html[data-theme="light"]` en blanc translucide (0.85), comme la barre latérale et l'en-tête. Le thème sombre est inchangé.
|
||||
- **Badge d'âge illisible en clair** (page En vol, Focus) : le texte jaune pâle `#fcd34d` sur fond jaune translucide passe en ambre foncé `#b45309` en thème clair ; même famille de contraste pour l'état « très vieux » et le compteur de colonne au-delà de sa limite WIP (`#dc2626`).
|
||||
- **Vérifié en navigateur réel** (styles calculés + captures relues) : colonnes blanches et badge ambre lisible en clair, aucune régression en sombre. 367 tests verts (4 nouveaux, `tests/test_logo_et_contrastes.py`).
|
||||
|
||||
## 0.45.3 — 2026-10-29 — Barre commune v0.1.11 : marque monochrome, anneau rouge de l'avatar
|
||||
|
||||
- **Barre d'apps v0.1.11 vendangée (dracodev-commons)** : `draco-barre.css` remplacé verbatim (le JS Kanbante est déjà identique à celui de commons, inchangé en v0.1.11) ; fragment `_draco_bar.html` porté à la v0.1.11, le reste de l'intégration Kanbante (URL Jinja `draco_urls` / `agent_url`, `onAction` complet y compris profil/déconnexion, compteurs) est inchangé. Les surcharges Kanbante dans `style.css` ne sont pas touchées.
|
||||
|
||||
+1
-1
@@ -177,7 +177,7 @@ from urllib.parse import urlparse
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
|
||||
APP_VERSION = "0.45.3"
|
||||
APP_VERSION = "0.45.4"
|
||||
|
||||
|
||||
def _env_bool(name: str, default: bool) -> bool:
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
<aside class="sidebar" id="sidebar" aria-label="Navigation principale">
|
||||
<div class="side-head">
|
||||
<a href="/" class="side-logo" aria-label="Kanbante — accueil">
|
||||
<span class="logo-mark"><svg viewBox="0 0 24 24" fill="#fff" aria-hidden="true"><rect x="3" y="4" width="5" height="16" rx="1"/><rect x="9.5" y="4" width="5" height="10" rx="1"/><rect x="16" y="4" width="5" height="13" rx="1"/></svg></span>
|
||||
<span class="logo-mark"><img src="/static/img/logos/kanbante.png" alt="Kanbante" width="34" height="34"></span>
|
||||
<span class="side-label gradient-text">Kanbante</span>
|
||||
</a>
|
||||
<button type="button" class="side-search palette-trigger" title="Recherche & commandes (Ctrl+K)" aria-label="Recherche et commandes (Ctrl+K)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="M20 20l-4-4"/></svg></button>
|
||||
|
||||
+18
-2
@@ -136,7 +136,9 @@ button, input, select, textarea { font: inherit; }
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
border-radius: 10px;
|
||||
background: linear-gradient(135deg, var(--accent), var(--accent-2));
|
||||
/* Le logo officiel (kanbante.png, le même que la barre
|
||||
d'apps commune) porte son propre fond : conteneur neutre. */
|
||||
background: transparent;
|
||||
box-shadow: var(--shadow-sm);
|
||||
font-size: 1rem;
|
||||
}
|
||||
@@ -1394,7 +1396,7 @@ body.nav-closed-admin [data-group="admin"] .side-chevron { transform: rotate(-90
|
||||
}
|
||||
.side-ico { font-size: 1.05rem; width: 22px; text-align: center; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; }
|
||||
.side-ico svg { width: 20px; height: 20px; display: block; }
|
||||
.logo-mark svg { width: 20px; height: 20px; display: block; }
|
||||
.logo-mark img { width: 34px; height: 34px; display: block; border-radius: 10px; }
|
||||
.side-search svg { width: 19px; height: 19px; display: block; }
|
||||
/* Bouton thème dans la section Administration (#55) : même
|
||||
gabarit qu'un lien de navigation, mais c'est un <button>. */
|
||||
@@ -1980,3 +1982,17 @@ html[data-theme="light"] .draco-bar {
|
||||
sombres par défaut — ils suivent html[data-theme]. */
|
||||
html[data-theme="light"] .wall-body { background: #f2f2f0; color: #1b1d1a; }
|
||||
html[data-theme="light"] .login-body { background: #f2f2f0; }
|
||||
|
||||
/* Thème clair (retour de Bruno, 2026-10-30) : le board gardait
|
||||
ses colonnes et son panneau Notes sur le fond sombre codé en
|
||||
dur (rgba(20,24,34,.72)) — surfaces claires, comme la barre
|
||||
latérale et l'en-tête. */
|
||||
html[data-theme="light"] .kanban-column { background: rgba(255, 255, 255, 0.85); }
|
||||
html[data-theme="light"] .notes-panel { background: rgba(255, 255, 255, 0.85); }
|
||||
/* Badge d'âge des cartes (En vol, Focus) : le jaune pâle
|
||||
#fcd34d sur fond jaune translucide était illisible en clair —
|
||||
ambre et rouge foncés, contraste vérifié. Même famille :
|
||||
le compteur de colonne au-delà de sa limite WIP. */
|
||||
html[data-theme="light"] .age-badge { color: #b45309; }
|
||||
html[data-theme="light"] .age-badge.stale { color: #dc2626; }
|
||||
html[data-theme="light"] .column-count.over { color: #dc2626; }
|
||||
|
||||
@@ -16,8 +16,10 @@ def test_sidebar_charbon_et_accent_vert(client, fake_gitea):
|
||||
def test_nav_icons_sont_des_svg(client, fake_gitea):
|
||||
page = client.get("/")
|
||||
assert 'class="side-ico"><svg' in page.text
|
||||
# Le logo Kanbante est aussi un SVG (colonnes blanches).
|
||||
assert 'class="logo-mark"><svg' in page.text
|
||||
# Le logo de la barre latérale est le logo officiel
|
||||
# (kanbante.png, celui de la barre d'apps commune) —
|
||||
# remplacement demandé par Bruno le 2026-10-30.
|
||||
assert 'class="logo-mark"><img src="/static/img/logos/kanbante.png"' in page.text
|
||||
|
||||
|
||||
def test_theme_toggle_dans_admin_pas_dans_en_tete(client, fake_gitea):
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
"""Retours de Bruno (2026-10-30) : logo de la barre latérale,
|
||||
board en thème clair, badge d'âge illisible en clair.
|
||||
|
||||
1. La barre latérale montrait un pictogramme « 3 barres » ;
|
||||
le logo doit être celui de la barre d'apps commune
|
||||
(static/img/logos/kanbante.png).
|
||||
2. En thème clair, les colonnes du board et le panneau Notes
|
||||
gardaient le fond sombre codé en dur rgba(20,24,34,.72).
|
||||
3. Le badge d'âge (En vol, Focus) : texte jaune pâle sur
|
||||
fond jaune translucide — illisible en thème clair.
|
||||
"""
|
||||
|
||||
|
||||
def test_sidebar_logo_officiel(client, fake_gitea):
|
||||
page = client.get("/")
|
||||
assert 'src="/static/img/logos/kanbante.png"' in page.text
|
||||
# L'ancien pictogramme à barres blanches a disparu.
|
||||
assert '<rect x="3" y="4" width="5" height="16"' not in page.text
|
||||
|
||||
|
||||
def test_logo_officiel_servi(client, fake_gitea):
|
||||
r = client.get("/static/img/logos/kanbante.png")
|
||||
assert r.status_code == 200
|
||||
assert r.content[:4] == b"\x89PNG"
|
||||
|
||||
|
||||
def test_board_clair_surfaces_eclaircies(client, fake_gitea):
|
||||
css = client.get("/static/css/style.css").text
|
||||
assert (
|
||||
'html[data-theme="light"] .kanban-column '
|
||||
'{ background: rgba(255, 255, 255, 0.85); }'
|
||||
) in css
|
||||
assert (
|
||||
'html[data-theme="light"] .notes-panel '
|
||||
'{ background: rgba(255, 255, 255, 0.85); }'
|
||||
) in css
|
||||
|
||||
|
||||
def test_badge_age_lisible_en_clair(client, fake_gitea):
|
||||
css = client.get("/static/css/style.css").text
|
||||
assert 'html[data-theme="light"] .age-badge { color: #b45309; }' in css
|
||||
assert (
|
||||
'html[data-theme="light"] .age-badge.stale { color: #dc2626; }'
|
||||
) in css
|
||||
assert (
|
||||
'html[data-theme="light"] .column-count.over { color: #dc2626; }'
|
||||
) in css
|
||||
Reference in New Issue
Block a user