diff --git a/index.css b/index.css index 1845a0c..b21c891 100644 --- a/index.css +++ b/index.css @@ -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
while a full-screen drawer or modal owns the viewport. Note: deliberately NOT `touch-action: none` — touch-action is intersected up diff --git a/src/app/shared/components/player-menu/player-menu.component.ts b/src/app/shared/components/player-menu/player-menu.component.ts new file mode 100644 index 0000000..434ec9e --- /dev/null +++ b/src/app/shared/components/player-menu/player-menu.component.ts @@ -0,0 +1,65 @@ +import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +/** + * Bouton-menu flottant (FAB) partagé entre /watch et /shorts. + * + * Pastille circulaire translucide en haut à gauche du lecteur, façon + * commandes overlay des players YouTube/Dailymotion : elle ouvre un panneau + * déroulant qui reçoit son contenu par projection (`ng-content`) — chaque page + * fournit ses propres options, la coque (position, style, open/close, clic + * extérieur) est identique partout. + * + * Usage : `