---
suivi: 1669
date: 2026-09-23
sujet: Barre KPI — jauges lisibles (segments séparés, curseur visible)
chantier: Foncier / Faisabilité
type: feature
statut: poussé
hash: 356a6783
fichiers:
    - resources/js/Components/Foncier/ScenarioKpiBar.vue
    - tests/Unit/ScenarioKpiBarJaugesLisibles1669SourceTest.php
    - tests/Unit/ScenarioKpiBarJauges1668SourceTest.php
    - tests/Unit/ScenarioKpiBarLisere1658SourceTest.php
    - tests/Unit/ScenarioKpiBarCompacte1663SourceTest.php
    - tests/Unit/ScenarioSeuilsCouleurBarreKpi1654SourceTest.php
    - tests/Unit/ScenarioBarreKpiEtUnites1640SourceTest.php
    - tests/Unit/ScenarioKpiBar1634SourceTest.php
    - database/data/journal_mises_a_jour_post_2026_06_12.php
    - public/build/
    - docs/suivi/SUIVI_1669_barre_kpi_jauges_lisibles.md
---

# SUIVI #1669 — jauges KPI lisibles

## PROMPT ENVOYÉ

Lot PUREMENT VISUEL. Ajuster la barre à jauges #1668 : 2 px de
blanc entre segments, curseur 4×18 marine + liseré blanc qui
dépasse, moins gras. Convention de position #1668 inchangée
(pas les 62,8 / 90 / 97 de la spec visuelle). Aucun verdict
textuel. Show.vue et AppShell intouchés. #1667 en attente.

## FICHES LUES

- **#1668 LEÇON** — curseur = segment puis proportion ; plafond
  2 × dernière borne. Conservé tel quel (`positionCurseurJauge`
  non modifié). Abandonné : `overflow-hidden` sur la piste
  (il CLIPPAIT le curseur, cause du « trait invisible ») et
  segments collés (dégradé continu).
- **#1663 LEÇON** — `flex-wrap` sans `overflow-x-hidden`. Conservé.
  `gap-x-10` (40 px) à la place de `gap-x-3`.
- **#1658 / #1654** — `CLASSES_PALIER_LISERE.filet` pour les
  segments ; `CLASSES_PALIER_SEUIL` intact (étude Fi + tableau).
  2e palier ORANGE (lot) vs VERT-JAUNE (%), non uniformisé.

Anti-collision : dernier poussé = **#1668**. **#1667** journal en
attente → rebase avant Vite. **#1669 est libre.**

## SYNTHÈSE

### Jauge
Piste 6 px (`h-1.5`), `gap-0.5` (2 px blanc). Coins 3 px
uniquement `first` / `last`. Curseur `w-1` `h-[18px]`
`bg-[#1B2B4B]` `rounded-[2px]` `shadow-[0_0_0_2px_#fff]`,
centré, dépasse 6 px au-dessus et en dessous. Pas de clip.

### Positions V1 (convention #1668)
Consolidé / lot 25 145,83 € : segment 2, t = 0,5146 → **62,86 %**
(arrondi 62,9 %). Bénéfice / CA HT 18,01 % : segment 3,
t = 0,2007 → **80,02 %** (arrondi 80 %). Consolidé / CA HT
30,6 % : segment 3, t = 0,224 → **80,6 %**.

### Hauteur
Avant #1668 ≈ 96 px. Après ≈ **118 px** (+22 px). Le curseur
18 px et le consolidé 32 px l'imposent. En dessous des 132 px
de la spec visuelle. Dit ici plutôt que laissé passer.

### Show.vue / PHP / seuils JS
Aucun. `lectureJauge` inchangé.

## DÉPLOIEMENT-TEST

```
git pull origin main
php artisan optimize:clear
php artisan view:clear
php artisan journal:sync
```

Pas de migrate. `route:clear` inutile.

## LEÇON

`overflow-hidden` sur une jauge rend le curseur illisible dès
qu'il doit dépasser la piste. Les segments collés se lisent
comme un dégradé : 2 px de blanc entre chacun cassent l'effet
sans toucher aux couleurs. Ne pas reprendre des positions
« à vue » d'une spec : la convention #1668 (plafond 2 × borne)
est la règle, les 90 % / 97 % de la maquette étaient faux.
