feat(lecteur): menu FAB partage /watch et /shorts
CI / build-and-test (push) Successful in 14m48s

- PlayerMenuComponent : FAB circulaire translucide (haut-gauche) + panneau
  deroulant, commun aux deux pages (position, style, open/close, clic exterieur)
- /shorts : consolidation de tous les boutons (fournisseurs, langue, actions)
  dans le menu FAB ; suppression du rail a droite et de la rangee du haut
- /watch : actions (cinema, qualite, j'aime, playlist, transcription,
  telechargement, partage, ouvrir) deplacees dans le menu FAB
- AddToPlaylistComponent : variante menuItem pour s'integrer au menu
- styles .pm-item/.pm-sep/.pm-section-label dans index.css
This commit is contained in:
2026-09-30 22:50:46 -04:00
parent 2bcc7321aa
commit 01e0671de9
7 changed files with 301 additions and 240 deletions
+31
View File
@@ -572,6 +572,37 @@ body {
touch-action: none;
}
/* --- Player FAB menu (shared /watch & /shorts) ---------------------------- */
/* Items/coque du panneau du menu flottant : petits, translucides, harmonisés
avec les commandes overlay des players YouTube/Dailymotion. */
.pm-section-label {
padding: 0.375rem 0.75rem 0.25rem;
font-size: 0.6875rem; /* 11px */
font-weight: 600;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--muted);
}
.pm-item {
display: flex;
align-items: center;
gap: 0.625rem;
width: 100%;
padding: 0.5rem 0.75rem;
border-radius: 0.5rem;
font-size: 0.8125rem; /* 13px */
color: var(--text);
text-align: left;
line-height: 1.25;
transition: background-color .15s ease;
}
.pm-item:hover { background-color: rgba(255, 255, 255, .08); }
.pm-item:disabled { opacity: .4; cursor: not-allowed; }
.pm-item svg { flex-shrink: 0; }
.pm-item .pm-item-label { flex: 1; min-width: 0; }
.pm-item .pm-item-hint { font-size: 0.6875rem; color: var(--muted); }
.pm-sep { height: 1px; margin: 0.375rem 0.5rem; background: rgba(255, 255, 255, .12); }
/* --- Drawer / overlay plumbing -------------------------------------------- */
/* Applied to <body> while a full-screen drawer or modal owns the viewport.
Note: deliberately NOT `touch-action: none` — touch-action is intersected up