From 2381ae0b3580edbf87f17dd8ce1bbb196951c527 Mon Sep 17 00:00:00 2001 From: Spark Date: Wed, 21 Oct 2026 21:30:43 -0400 Subject: [PATCH] fix(0.24.2): base sombre pour tous les champs de saisie (#29) --- CHANGELOG.md | 23 +++++++++++++++++++++++ app/config.py | 2 +- pyproject.toml | 2 +- static/css/style.css | 22 ++++++++++++++++++++++ tests/test_v242.py | 20 ++++++++++++++++++++ 5 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 tests/test_v242.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 59f0a89..a9b0a91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## 0.24.2 — 2026-10-21 + +### Corrigé — boîtes d'édition blanches dans l'administration (#29) + +Signalé par Bruno (captures) : le champ « Nouveau mot de passe » +(Administration), la zone « Sélection de projets » (Espaces) et +les champs « Valeur du panneau » (Paramètres) s'affichaient en +**blanc**. Il n'existait aucune règle de base pour les champs de +saisie : seuls les champs couverts par un contexte précis +(`.login-form`, `.capture-form`, `.admin-form` pour text/password/ +select seulement) étaient sombres — les textarea et tout champ +hors de ces contextes gardaient le fond du navigateur. + +Correctif dans `style.css` : une **règle de base unique en +spécificité zéro** (`:where(...)`) — fond `--surface-2`, texte +`--text`, bordure `--border` — pour `input`, `textarea` et +`select`, qui comble les vides sans jamais écraser les règles de +contexte existantes ; plus `color-scheme: dark` pour les +contrôles natifs. Styles calculés vérifiés sur les trois pages +(fond identique aux champs de référence, palette de commandes +inchangée). + + ## 0.24.0 — 2026-10-21 ### Ajouté — multi-utilisateurs, multi-forges, espaces, archives diff --git a/app/config.py b/app/config.py index b102948..6406065 100644 --- a/app/config.py +++ b/app/config.py @@ -104,7 +104,7 @@ from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent -APP_VERSION = "0.24.1" +APP_VERSION = "0.24.2" def _env_bool(name: str, default: bool) -> bool: diff --git a/pyproject.toml b/pyproject.toml index d2b7a03..889fd96 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "kanbante" -version = "0.24.0" +version = "0.24.2" description = "Kanban project manager integrated with Gitea" requires-python = ">=3.11" dependencies = [ diff --git a/static/css/style.css b/static/css/style.css index 6444dab..b48f740 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -60,6 +60,28 @@ a:hover { text-decoration: underline; } button, input, select, textarea { font: inherit; } +/* — Base des champs de saisie (#29) : sans règle de fond, tout + champ hors d'un contexte stylé (.login-form, .capture-form, + .admin-form…) gardait le fond BLANC du navigateur — vu sur la + réinitialisation de mot de passe (Administration), la sélection + de projets (Espaces, textarea jamais couverte) et les valeurs + du panneau (Paramètres). Sélecteur en :where() = spécificité + zéro : cette base ne peut écraser AUCUNE règle de contexte + existante, elle ne fait que combler les vides. */ +:root { color-scheme: dark; } +:where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="range"]), + textarea, select) { + background: var(--surface-2); + color: var(--text); + border: 1px solid var(--border); + border-radius: var(--radius-sm); + padding: 8px 10px; +} +:where(input, textarea, select):focus-visible { + outline: 2px solid rgba(124, 92, 252, 0.55); + outline-offset: 0; +} + /* ── App header ─────────────────────────────── */ .app-header, header { position: sticky; diff --git a/tests/test_v242.py b/tests/test_v242.py new file mode 100644 index 0000000..4ec0eb0 --- /dev/null +++ b/tests/test_v242.py @@ -0,0 +1,20 @@ +"""0.24.2 — #29 : base sombre pour tous les champs de saisie. + +Sans règle de fond, les champs hors contexte stylé gardaient le +fond blanc du navigateur (réinitialisation de mot de passe, +textarea des espaces, valeurs du panneau des paramètres). +""" +from pathlib import Path + +R = Path(__file__).resolve().parents[1] + + +def test_base_champs_sombre(): + css = (R / "static/css/style.css").read_text(encoding="utf-8") + assert "color-scheme: dark" in css + assert ":where(input:not([type=\"checkbox\"])" in css + assert "textarea, select" in css + assert "background: var(--surface-2);" in css + # la base est en spécificité zéro : les contextes restent maîtres + assert ".palette-input-row input" in css + assert ".login-form input" in css