---
suivi: 1318
date: 2026-08-13
sujet: marche_barre_jointive_taux
chantier: marches_compta
type: fix
statut: poussé
hash: b7d57534
fichiers:
  - resources/js/Pages/Marches/Show.vue
  - resources/js/Components/Marches/MarcheResumeWidgets.vue
  - resources/js/Layouts/AppShell.vue
  - resources/js/Composables/useFormatters.js
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1318_barre_jointive_taux.md
---

## PROMPT ENVOYÉ

Corriger #1317 : (1) barre blanche jointive sous barre programme, sans chevauchement
au scroll ; (2) taux CP 2,5 % affiché 3 % (formatPct …, 0). HEAD attendu #1317
mais origin/main = #1311 (a9b15b37) — rebasé dessus.

## SYNTHÈSE

### Fiches lues
- `#1317` LEÇON : sticky -mt-8/pt-10 = compensation, pas correction.
- `#1316` : AppShell évité si possible ; `#1270` Teleport dépôt = précédent utile.
- `#1315` / `#1314` : non défaits.

### Solution barre (retenue)
**Bloc commun hors main** : hôte `#marche-subnav-host` dans AppShell juste sous la
barre programme ; Teleport depuis `Marches/Show.vue`. Les deux barres sont AU-DESSUS
du `main` qui seul défile → jointives au repos, jamais de sticky qui recouvre la
ligne d’identité. `pt-10` / `-mt-8` / `sticky top-0` **supprimés**.

Pourquoi AppShell : le sticky local dans le `p-8` du main ne peut pas être jointif
et non chevauchant sans compensation fragile. Même pattern que #1270 (dépôt).
Impact : hôte `v-if="Marches/Show"` seulement ; tone `gold` inchangé ailleurs.

### Taux
`formatPct(x, 0)` arrondissait 2,5 → « 3 % ». Nouveau `formatTauxPct` (décimales
significatives). Appliqué au tableau Retenues à date, Infos (CP/RG/OPC/TVA), onglet
Retenues (taux RG/CP/OPC). Progressions restent en `formatPct` (1 décimale).

### Vérification écran
**NON** — pas de session navigateur prod. Lot **non validé** au défilement réel.

## DÉPLOIEMENT-TEST

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

## LEÇON

Un sticky dans un conteneur paddé ne se corrige pas par un padding de compensation :
au scroll, le contenu repasse sous la barre. Sortir la barre du flux scrollable
(Teleport hors main, comme #1270) traite la cause. `formatPct(…, 0)` est interdit
pour un taux métier à décimales.
