server_photo_s85js/public/css/bottomSheet.css.ok
2026-08-11 08:45:04 +02:00

269 lines
6.1 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* =========================================
Variabili globali
========================================= */
:root {
--header-height: 60px; /* cambia se il tuo header è più alto/basso */
}
/* =========================================
MAPPA GLOBALE (contenitore sotto lheader)
========================================= */
.global-map {
position: fixed;
top: var(--header-height);
left: 0;
right: 0;
bottom: 0;
width: 100%;
display: none; /* visibile solo con .open */
z-index: 10; /* sotto a bottom-sheet (9999) e modal (10000) */
background: #000; /* evita flash bianco durante init */
}
.global-map.open {
display: block;
}
/* Leaflet riempie il contenitore */
.global-map .leaflet-container {
width: 100%;
height: 100%;
}
/* Marker immagine (miniatura) */
.leaflet-marker-icon.photo-marker {
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.25);
border: 2px solid rgba(255,255,255,0.9);
background: #fff;
}
/* Nascondi la gallery quando la mappa è aperta */
.gallery.hidden {
display: none !important;
}
/* =========================================
BOTTOM SHEET — struttura base comune
========================================= */
.bottom-sheet {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: rgba(255,255,255,0.95);
backdrop-filter: blur(6px);
border-top: 1px solid #ddd;
box-shadow: 0 -2px 10px rgba(0,0,0,0.15);
display: none; /* diventa flex con .open */
flex-direction: column;
z-index: 9999; /* molto alto: il modal starà sopra (10000) */
}
/* =========================================================
MODALITÀ ACTIVITIES — override minimale
========================================================= */
/* Strip attività */
body.activities .photo-strip {
height: 120px; /* più compatta */
background: var(--panel-bg);
}
/* Contenitore elementi */
body.activities #sheetGallery,
body.activities .sheet-gallery {
gap: 8px;
padding: 10px;
background: var(--panel-bg);
}
/* Tile attività */
body.activities .sheet-item {
width: 80px;
height: 80px;
border-radius: 10px;
background: var(--tile-bg);
border: 1px solid var(--tile-border);
box-shadow: none;
display: flex;
align-items: center;
justify-content: center;
}
/* Icona/mappa attività */
body.activities .sheet-item img {
width: var(--tile-thumb-size);
height: var(--tile-thumb-size);
object-fit: contain;
filter: grayscale(40%);
padding: 8px;
}
/* Nascondi miniature foto */
body.activities .sheet-thumb {
display: none !important;
}
/* Nascondi layout foto */
body.activities .sheet-item img[style*="object-fit: cover"] {
object-fit: contain !important;
}
/* Header della sheet più coerente */
body.activities .sheet-header::before {
background: #007bff;
}
/* Opzioni sheet coerenti */
body.activities #optionsSheet h3 {
color: var(--panel-title-color);
}
body.activities .sheet-btn {
background: #eef4ff;
border: 1px solid #d0d8ff;
color: #0033aa;
}
body.activities .sheet-btn:hover {
background: #e0eaff;
}
.bottom-sheet.open {
display: flex;
}
/* Maniglia superiore */
.sheet-header {
height: 16px;
display: flex;
justify-content: center;
align-items: center;
}
.sheet-header::before {
content: "";
width: 40px;
height: 4px;
background: #bbb;
border-radius: 4px;
}
/* =========================================
BOTTOM SHEET FOTO (strip bassa come nel vecchio)
========================================= */
.photo-strip {
height: 140px; /* altezza originale della strip */
overflow-y: hidden; /* niente scroll verticale */
overflow-x: auto; /* scroll orizzontale per le foto */
}
/* Contenitore elementi della strip — compatibile con id e class */
#sheetGallery,
.sheet-gallery {
display: flex;
flex-direction: row;
overflow-x: auto;
padding: 10px;
gap: 10px;
-webkit-overflow-scrolling: touch;
scroll-snap-type: x proximity;
}
/* Singolo elemento della strip */
.sheet-item {
width: 90px;
height: 90px;
border-radius: 10px;
overflow: hidden;
flex-shrink: 0;
box-shadow: 0 2px 6px rgba(0,0,0,0.25);
background: #eee;
scroll-snap-align: start;
}
/* Miniatura della foto nella strip */
.sheet-thumb,
.sheet-item img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 8px; /* alias; la .sheet-item ha già 10px */
}
/* =========================================
BOTTOM SHEET OPZIONI (⋮) — menu grande
========================================= */
.options-sheet {
height: auto;
max-height: 80vh;
overflow-y: auto;
}
.sheet-content {
padding: 20px;
}
.sheet-btn {
width: 100%;
padding: 12px;
margin-bottom: 8px;
text-align: left;
background: #f5f5f5;
border: none;
border-radius: 8px;
font-size: 15px;
cursor: pointer;
}
.sheet-btn:hover {
background: #e8e8e8;
}
#optionsSheet h3 {
margin-top: 20px;
margin-bottom: 10px;
font-size: 16px;
color: #444;
}
/* =========================================
OVERLAY per chiusura sheet/option
========================================= */
.sheet-overlay {
position: fixed;
inset: 0;
background: rgba(0,0,0,0.0); /* invisibile ma cliccabile */
display: none;
z-index: 80; /* appena sotto il bottom sheet */
}
.sheet-overlay.open {
display: block;
}
/* =========================================
MODAL sopra allo sheet
========================================= */
.modal.open {
z-index: 10000 !important; /* sopra al bottom sheet (9999) */
}
/* =========================================
Piccoli affinamenti facoltativi
========================================= */
/* scrollbar sottile solo per la strip (opzionale) */
#sheetGallery::-webkit-scrollbar,
.sheet-gallery::-webkit-scrollbar {
height: 8px;
}
#sheetGallery::-webkit-scrollbar-thumb,
.sheet-gallery::-webkit-scrollbar-thumb {
background: rgba(0,0,0,0.25);
border-radius: 4px;
}