diff --git a/frontend/src/views/ShopfloorDashboard.vue b/frontend/src/views/ShopfloorDashboard.vue index f98521f..c603555 100644 --- a/frontend/src/views/ShopfloorDashboard.vue +++ b/frontend/src/views/ShopfloorDashboard.vue @@ -252,9 +252,10 @@ const recertDescriptions = computed(() => { return out }) -// Recertification shows as a single rotating row: one page of tiles at a time -// so it stays compact on any screen, cycling through everyone due. -const RECERT_PAGE_SIZE = 8 +// Recertification shows a rotating 2x2 block: one page of tiles at a time so it +// stays compact on any screen, cycling through everyone due. Eight across left +// each tile too narrow to read at floor distance. +const RECERT_PAGE_SIZE = 4 const currentRecertPage = ref(0) const recertPageCount = computed(() => Math.max(1, Math.ceil(recertifications.value.length / RECERT_PAGE_SIZE)) @@ -577,26 +578,29 @@ function handlePhotoError(e) { margin: -4px 0 14px; line-height: 1.35; } -/* Single row that cycles through pages of employees */ +/* 2x2 block that cycles through pages of employees */ .recert-row { display: grid; - grid-template-columns: repeat(8, 1fr); + grid-template-columns: repeat(2, 1fr); gap: 14px; } .recert-tile { background: linear-gradient(135deg, #1e3a5f 0%, #0d2137 100%); border: 2px solid #0d6efd; border-radius: 10px; - padding: 14px 10px; + padding: 14px 18px; + /* Photo beside the name rather than above it: two rows of stacked tiles + would double the section's height, and the whole board is scaled to fit + one screen, so height here shrinks everything else. */ display: flex; - flex-direction: column; align-items: center; - gap: 10px; - text-align: center; + gap: 18px; + text-align: left; } .recert-photo { - width: 90px; - height: 90px; + width: 120px; + height: 120px; + flex: none; border-radius: 50%; object-fit: cover; border: 3px solid #0d6efd; @@ -608,7 +612,9 @@ function handlePhotoError(e) { background: #fff; } .recert-name { - font-size: 20px; + flex: 1; + min-width: 0; + font-size: 26px; font-weight: 700; line-height: 1.15; /* Always reserve two lines so a name that wraps does not make its tile