feat(web): accueil — rendre scrollable la liste des livres en cours après 6 éléments visibles (hauteur de .continue-grid bornée à 6 tuiles de 118px, overflow-y auto, scrollbar-gutter stable, tuiles à block-size fixe — évolution #44)
This commit is contained in:
18
apps/web/src/pages/HomePageProgressScroll.test.ts
Normal file
18
apps/web/src/pages/HomePageProgressScroll.test.ts
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
import { readFileSync } from "node:fs";
|
||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
describe("home progress list layout", () => {
|
||||||
|
it("keeps the continue reading list scrollable after six visible books", () => {
|
||||||
|
const styles = readFileSync(new URL("../styles/app.css", import.meta.url), "utf8");
|
||||||
|
const continueGrid = styles.match(/\.continue-grid\s*\{[^}]+\}/)?.[0] ?? "";
|
||||||
|
const continueTile = styles.match(/\.continue-tile\s*\{[^}]+\}/)?.[0] ?? "";
|
||||||
|
|
||||||
|
expect(continueGrid).toContain("--continue-visible-rows: 6");
|
||||||
|
expect(continueGrid).toContain("--continue-tile-block-size: 118px");
|
||||||
|
expect(continueGrid).toContain("max-height: calc((var(--continue-tile-block-size) * var(--continue-visible-rows)) + (10px * (var(--continue-visible-rows) - 1)))");
|
||||||
|
expect(continueGrid).toContain("overflow-y: auto");
|
||||||
|
expect(continueGrid).toContain("scrollbar-gutter: stable");
|
||||||
|
expect(continueTile).toContain("block-size: var(--continue-tile-block-size)");
|
||||||
|
expect(continueTile).toContain("overflow: hidden");
|
||||||
|
});
|
||||||
|
});
|
||||||
@ -363,6 +363,15 @@ h2 {
|
|||||||
gap: 10px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.continue-grid {
|
||||||
|
--continue-visible-rows: 6;
|
||||||
|
--continue-tile-block-size: 118px;
|
||||||
|
max-height: calc((var(--continue-tile-block-size) * var(--continue-visible-rows)) + (10px * (var(--continue-visible-rows) - 1)));
|
||||||
|
overflow-y: auto;
|
||||||
|
padding-right: 4px;
|
||||||
|
scrollbar-gutter: stable;
|
||||||
|
}
|
||||||
|
|
||||||
.job-list {
|
.job-list {
|
||||||
max-height: 350px;
|
max-height: 350px;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
@ -409,6 +418,8 @@ h2 {
|
|||||||
.continue-tile {
|
.continue-tile {
|
||||||
grid-template-columns: 52px minmax(0, 1fr);
|
grid-template-columns: 52px minmax(0, 1fr);
|
||||||
align-items: start;
|
align-items: start;
|
||||||
|
block-size: var(--continue-tile-block-size);
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.continue-cover {
|
.continue-cover {
|
||||||
|
|||||||
Reference in New Issue
Block a user