lumiere mobile: fix overflow, style ⋮ button, show tile actions on touch
Build and Deploy Verso / deploy (push) Successful in 16m58s

1. Page width overflow: stack lumiere-header as column on mobile so
   lumiere-header-actions (flex-shrink:0) no longer forces the container
   wider than the viewport. Search form and new-project button each take
   full width on their own line.

2. ⋮ button in compact row: override dropdown-table-button-toggle inside
   lumiere-compact-actions with Lumière-palette colours and tighter
   padding, replacing the table-context styling.

3. Tile view action strip: add @media (hover: none) rule so
   lumiere-card-actions is always opacity:1 on touch devices (phones have
   no cursor, so the hover-reveal pattern is unusable).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
claude
2026-06-18 10:00:50 +00:00
parent 6f419477df
commit d12a39329b
@@ -863,6 +863,25 @@ $lum-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' wi
background: rgba($lum-teal, 0.09) !important; background: rgba($lum-teal, 0.09) !important;
} }
} }
// ⋮ dropdown toggle — restyled from the table variant to match Lumière
.dropdown-table-button-toggle {
padding: 0.2rem 0.35rem;
border-radius: 6px;
background: transparent;
border: none;
color: $lum-text-muted;
line-height: 1;
transition: background-color 0.15s ease, color 0.15s ease;
&:hover,
&:focus,
&[aria-expanded='true'] {
background: rgba($lum-teal, 0.09);
color: $lum-teal;
outline: none;
}
}
} }
.lumiere-compact-row:hover .lumiere-compact-actions .action-btn, .lumiere-compact-row:hover .lumiere-compact-actions .action-btn,
@@ -874,6 +893,26 @@ $lum-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' wi
@media (max-width: 767px) { @media (max-width: 767px) {
// Stack the header vertically so nothing overflows the viewport width.
// Without this, lumiere-header-actions (flex-shrink:0) forces the flex
// container wider than the screen.
.lumiere-header {
flex-direction: column;
align-items: stretch;
gap: 0.5rem;
}
.lumiere-header-actions {
width: 100%;
flex-shrink: 1;
min-width: 0;
form.project-search {
flex: 1;
min-width: 0;
}
}
// Compact row: 2-line layout // Compact row: 2-line layout
// Row 1: [checkbox] [name+tags] [⋮ action] // Row 1: [checkbox] [name+tags] [⋮ action]
// Row 2: [checkbox] [format · owner · date] // Row 2: [checkbox] [format · owner · date]
@@ -930,6 +969,14 @@ $lum-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' wi
} }
} }
// ── Touch devices: card actions always visible (no hover cursor on phones) ──
@media (hover: none) {
.lumiere-card-actions {
opacity: 1;
}
}
// ── Mobile toolbar: filter pills + zoom control ─────────────────────────── // ── Mobile toolbar: filter pills + zoom control ───────────────────────────
.lumiere-mobile-toolbar { .lumiere-mobile-toolbar {