fix(planning): la grille remplit l'écran, une case ne grandit plus (#110) #113

Merged
kyuno merged 1 commit from fix/planning-grid-fluid-height into main 2026-09-08 02:08:55 +02:00
Owner

Contexte

Closes #110.

table.planning-grid (planning-page.scss) a height: 100% mais des hauteurs de ligne pilotées par le contenu : un créneau avec plusieurs recettes étirait son <td>, donc toute la ligne (les autres cases de la ligne gagnant la même hauteur morte sous vertical-align: top), puis la table débordait de .planning-grid-wrapper en scroll vertical. .planning-grid-wrapper (flex: 1; min-height: 0; overflow: auto) était déjà correct — le problème était le contenu des cases.

Changements (apps/web/src/pages/planning/planning-page.scss)

  • tbody tr { height: 1px } — les 5 lignes se partagent la hauteur du wrapper à parts égales (une hauteur de ligne de tableau est un minimum que le navigateur étire pour absorber la hauteur restante de la table), au lieu d'être aussi hautes que la colonne la plus chargée.
  • .meal-cell__recipes { max-height: 8.5rem; overflow-y: auto } — au-delà d'une poignée de recettes la liste scrolle dans la case. Cap en rem et pas en % de la cellule : les hauteurs en pourcentage sur un <td> ne se résolvent pas de façon fiable selon le moteur de rendu. flex: 1; min-height: 0 laisse la liste utiliser la hauteur libre de la ligne jusqu'à ce cap. .add-recipe-btn est un frère flex (hors de cette boîte) et reste épinglé juste en dessous.
  • min-width: 62rem laissé tel quel : les 7 colonnes ont besoin d'un plancher pour rester lisibles, et le scroll horizontal en dessous est déjà couvert par layout.cy.ts. Le breakpoint phone (vue PlanningDayView dédiée, issue #88) n'est pas concerné.

Tests

  • apps/web/cypress/e2e/planning-page.cy.ts : nouveau cas dans describe("Planning grid") — planning avec un créneau à 14 recettes, à 1600×900 : la .meal-cell__recipes de ce créneau a overflow-y: auto, scrolle réellement (scrollHeight > clientHeight), reste bornée (clientHeight < 200), et .planning-grid-wrapper ne s'emballe pas (scrollHeight < clientHeight * 1.25).
  • Local : pnpm lint OK, pnpm --filter web build OK, cypress run --spec cypress/e2e/planning-page.cy.ts → 12/12.
  • Suite complète (biome / tsc / build / e2e) : via la CI.

🤖 Generated with Claude Code

## Contexte `Closes #110`. `table.planning-grid` (`planning-page.scss`) a `height: 100%` mais des hauteurs de ligne pilotées par le contenu : un créneau avec plusieurs recettes étirait son `<td>`, donc toute la ligne (les autres cases de la ligne gagnant la même hauteur morte sous `vertical-align: top`), puis la table débordait de `.planning-grid-wrapper` en scroll vertical. `.planning-grid-wrapper` (`flex: 1; min-height: 0; overflow: auto`) était déjà correct — le problème était le contenu des cases. ## Changements (`apps/web/src/pages/planning/planning-page.scss`) - `tbody tr { height: 1px }` — les 5 lignes se partagent la hauteur du wrapper à parts égales (une hauteur de ligne de tableau est un minimum que le navigateur étire pour absorber la hauteur restante de la table), au lieu d'être aussi hautes que la colonne la plus chargée. - `.meal-cell__recipes { max-height: 8.5rem; overflow-y: auto }` — au-delà d'une poignée de recettes la liste scrolle dans la case. Cap en `rem` et pas en `%` de la cellule : les hauteurs en pourcentage sur un `<td>` ne se résolvent pas de façon fiable selon le moteur de rendu. `flex: 1; min-height: 0` laisse la liste utiliser la hauteur libre de la ligne jusqu'à ce cap. `.add-recipe-btn` est un frère flex (hors de cette boîte) et reste épinglé juste en dessous. - `min-width: 62rem` **laissé tel quel** : les 7 colonnes ont besoin d'un plancher pour rester lisibles, et le scroll horizontal en dessous est déjà couvert par `layout.cy.ts`. Le breakpoint phone (vue `PlanningDayView` dédiée, issue #88) n'est pas concerné. ## Tests - `apps/web/cypress/e2e/planning-page.cy.ts` : nouveau cas dans `describe("Planning grid")` — planning avec un créneau à 14 recettes, à 1600×900 : la `.meal-cell__recipes` de ce créneau a `overflow-y: auto`, scrolle réellement (`scrollHeight > clientHeight`), reste bornée (`clientHeight < 200`), et `.planning-grid-wrapper` ne s'emballe pas (`scrollHeight < clientHeight * 1.25`). - Local : `pnpm lint` OK, `pnpm --filter web build` OK, `cypress run --spec cypress/e2e/planning-page.cy.ts` → 12/12. - Suite complète (biome / tsc / build / e2e) : via la CI. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
kyuno added the
bug
planned
Medium
labels 2026-09-08 01:37:37 +02:00
kyuno added 1 commit 2026-09-08 01:37:38 +02:00
fix(planning): la grille remplit l'écran, une case ne grandit plus (#110)
All checks were successful
CI / lint (push) Successful in 2m23s
CI / build (push) Successful in 5m41s
CI / intent-service-test (push) Successful in 7m13s
CI / e2e (push) Successful in 10m50s
CI / test (push) Successful in 29m0s
CI / build-android (push) Has been skipped
c4c2c2ae39
`table.planning-grid` a `height: 100%` mais des hauteurs de ligne pilotées
par le contenu : un créneau avec plusieurs recettes étirait son `<td>`,
donc toute la ligne (les autres cases gagnant la même hauteur morte sous
`vertical-align: top`), puis la table débordait de `.planning-grid-wrapper`
en scroll vertical.

- `tbody tr { height: 1px }` : les cinq lignes se partagent la hauteur du
  wrapper à parts égales (une hauteur de ligne est un minimum que le
  navigateur étire pour absorber la hauteur restante de la table), au lieu
  d'être aussi hautes que la colonne la plus chargée.
- `.meal-cell__recipes` : `max-height: 8.5rem; overflow-y: auto` — au-delà
  d'une poignée de recettes la liste scrolle dans la case. Cap en `rem` et
  pas en `%` : les hauteurs en pourcentage sur un `<td>` ne se résolvent
  pas de façon fiable selon le moteur. `.add-recipe-btn` (frère flex hors
  de cette boîte) reste épinglé juste en dessous.
- `min-width: 62rem` laissé tel quel : les 7 colonnes ont besoin d'un
  plancher pour rester lisibles, et le scroll horizontal dessous est
  couvert par `layout.cy.ts`. Le breakpoint phone (vue `PlanningDayView`)
  n'est pas concerné.

Closes #110

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
kyuno merged commit d4d1b9eb3a into main 2026-09-08 02:08:55 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: kyuno/batchCooking#113
No description provided.